/example/user.html

https://gitlab.com/rickmak/skygear-SDK-JS · HTML · 247 lines · 231 code · 16 blank · 0 comment · 0 complexity · 25d0110f55f2bb28efb1764bb461c24c MD5 · raw file

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Skygear-SDK-JS</title>
  6. </head>
  7. <body>
  8. <div id="main">
  9. <p>
  10. <label>End Point</label>
  11. <span id="endpoint"></span>
  12. </p>
  13. <p>
  14. <label>Token</label>
  15. <span id="accessToken">
  16. <a href="index.html">Go to Login</a>
  17. </span>
  18. </p>
  19. <p>
  20. <label>Username</label>
  21. <span id="currentUsername"></span>
  22. </p>
  23. <p>
  24. <label>Email</label>
  25. <span id="currentEmail"></span>
  26. </p>
  27. </div>
  28. <hr>
  29. <div id="whoami">
  30. <h4>Who am I?</h4>
  31. <form action="#" onsubmit="return false;">
  32. <p>
  33. <button onclick="whoami();">Me</button>
  34. </p>
  35. <p id="whoami-result"></p>
  36. </form>
  37. </div>
  38. <hr>
  39. <div id="user">
  40. <h4>Discover User</h4>
  41. <form action="#" onsubmit="return false;">
  42. <p>
  43. <label>Email</label>
  44. <input id="email" type="email" placeholder="user@skygear.io">
  45. <button onclick="getByEmail();">Get</button>
  46. </p>
  47. <p>
  48. <label>Username</label>
  49. <input id="username" type="username" placeholder="username">
  50. <button onclick="getByUsername();">Get</button>
  51. </p>
  52. <p id="user-result"></p>
  53. </form>
  54. </div>
  55. <hr>
  56. <div id="relation">
  57. <h4>Query user relation</h4>
  58. <form action="#" onsubmit="return false;">
  59. <p>
  60. <label>Relation</label>
  61. <select id="query-relation">
  62. <option value="Follower">Follower</option>
  63. <option value="Following">Following</option>
  64. <option value="Friend">Friend</option>
  65. </select>
  66. </p>
  67. <p id="relation-result"></p>
  68. <button onclick="queryRelation();">Query</button>
  69. </form>
  70. </div>
  71. <hr>
  72. <div>
  73. <h4>Add user relation</h4>
  74. <form action="#" onsubmit="return false;">
  75. <p>
  76. <label>Relation</label>
  77. <select id="add-relation">
  78. <option value="Follower">Follower</option>
  79. <option value="Following">Following</option>
  80. <option value="Friend">Friend</option>
  81. </select>
  82. </p>
  83. <p>
  84. <label>User id</label>
  85. <input id="add-id" type="text" placeholder="user id">
  86. </p>
  87. <p id="add-result"></p>
  88. <button onclick="addRelation();">Add</button>
  89. </form>
  90. </div>
  91. <hr>
  92. <div>
  93. <h4>Remove user relation</h4>
  94. <form action="#" onsubmit="return false;">
  95. <p>
  96. <label>Relation</label>
  97. <select id="remove-relation">
  98. <option value="Follower">Follower</option>
  99. <option value="Following">Following</option>
  100. <option value="Friend">Friend</option>
  101. </select>
  102. </p>
  103. <p>
  104. <label>User id</label>
  105. <input id="remove-id" type="text" placeholder="user id">
  106. </p>
  107. <p id="remove-result"></p>
  108. <button onclick="removeRelation();">Remove</button>
  109. </form>
  110. </div>
  111. <script src="/bundle.js"></script>
  112. <script type="text/javascript">
  113. var m = document.getElementById("endpoint");
  114. var token = document.getElementById("accessToken");
  115. var currentUsername = document.getElementById("currentUsername");
  116. var currentEmail = document.getElementById("currentEmail");
  117. skygear.config({
  118. 'endPoint': '{{ SKYGEAR_ENDPOINT }}',
  119. 'apiKey': '{{ SKYGEAR_API_KEY }}'
  120. }).then(function(container) {
  121. m.textContent = container.endPoint;
  122. token.innerText = skygear.auth.accessToken;
  123. if (skygear.auth.currentUser) {
  124. currentUsername.innerText = skygear.auth.currentUser.username;
  125. currentEmail.innerText = skygear.auth.currentUser.email;
  126. }
  127. }, function(err) {
  128. console.log(err);
  129. });
  130. function whoami () {
  131. console.log('Who am I?');
  132. var iam = document.getElementById("whoami-result");
  133. skygear.auth.whoami().then(function (user) {
  134. if (user.length == 0) {
  135. iam.innerText = "no user found";
  136. return
  137. }
  138. console.log(user);
  139. iam.innerText = JSON.stringify(user.toJSON(), null, 2);
  140. }, function(error) {
  141. console.log(error);
  142. iam.innerText = error;
  143. });
  144. }
  145. function getByEmail () {
  146. console.log('discoverUserByEmails');
  147. var email = document.getElementById("email").value;
  148. var userInfo = document.getElementById("user-result");
  149. skygear.auth.discoverUserByEmails([email]).then(function (users) {
  150. if (users.length == 0) {
  151. userInfo.innerText = "no user found";
  152. return
  153. }
  154. console.log(users[0]);
  155. userInfo.innerText = JSON.stringify(users[0].toJSON(), null, 2);
  156. }, function(error) {
  157. console.log(error);
  158. userInfo.innerText = error;
  159. });
  160. }
  161. function getByUsername () {
  162. console.log('discoverUserByUsernames');
  163. var username = document.getElementById("username").value;
  164. var userInfo = document.getElementById("user-result");
  165. skygear.auth.discoverUserByUsernames([username]).then(function (users) {
  166. if (users.length == 0) {
  167. userInfo.innerText = "no user found";
  168. return
  169. }
  170. console.log(users[0]);
  171. userInfo.innerText = JSON.stringify(users[0].toJSON(), null, 2);
  172. }, function(error) {
  173. console.log(error);
  174. userInfo.innerText = error;
  175. });
  176. }
  177. function queryRelation () {
  178. console.log('queryRelation');
  179. var type = document.getElementById("query-relation").value;
  180. var relationResult = document.getElementById("relation-result");
  181. var method = "query" + type;
  182. console.log(method);
  183. skygear.relation[method]().then(function (users) {
  184. console.log(users);
  185. relationResult.innerText = JSON.stringify(users);
  186. }, function (error) {
  187. console.log(error);
  188. relationResult.innerText = error;
  189. })
  190. }
  191. function addRelation() {
  192. console.log('addRelation');
  193. var type = document.getElementById("add-relation").value;
  194. var addResult = document.getElementById("add-result");
  195. var userID = document.getElementById("add-id").value;
  196. var user = new skygear.User({
  197. user_id: userID
  198. });
  199. console.log(type);
  200. console.log(user.id);
  201. var relation = new skygear.relation[type]([user]);
  202. skygear.relation.add(relation).then(function (result) {
  203. console.log(result.targets);
  204. addResult.innerText = JSON.stringify(result.success);
  205. }, function (error) {
  206. console.log(error);
  207. addResult.innerText = error;
  208. });
  209. }
  210. function removeRelation() {
  211. console.log('removeRelation');
  212. var type = document.getElementById("remove-relation").value;
  213. var removeResult = document.getElementById("remove-result");
  214. var userID = document.getElementById("remove-id").value;
  215. var user = new skygear.User({
  216. user_id: userID
  217. });
  218. console.log(type);
  219. console.log(user.id);
  220. var relation = new skygear.relation[type]([user]);
  221. skygear.relation.remove(relation).then(function (result) {
  222. console.log(result.success);
  223. removeResult.innerText = JSON.stringify(result.success);
  224. }, function (error) {
  225. console.log(error);
  226. removeResult.innerText = error;
  227. });
  228. }
  229. </script>
  230. </body>
  231. </html>