index.js 3.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. function Service() {
  2. let m_LineUserId;
  3. let m_LineName;
  4. let m_LinePicture;
  5. let m_UserModel;
  6. let m_data = {
  7. };
  8. function init() {
  9. console.log('GameService init')
  10. return liffInit().then((profile) => {
  11. // // 測試用資料
  12. // const profile = {
  13. // userId: "Ua89aacd560a328ece0fec5584435046f",
  14. // displayName: "Tim",
  15. // pictureUrl: "https://sprofile.line-scdn.net/0hAvrrYLRRHllfCwoU_RtgJi9bHTN8ekdLdWRZPmJYQGxnPFwLdG5Za29YSTkyb1AGID9XbzoLEmlTGGk_QV3ibVg7QG5mOVANdm5Uug",
  16. // }
  17. m_LineUserId = profile.userId || '';
  18. m_LineName = profile.displayName || '';
  19. m_LinePicture = profile.pictureUrl || '';
  20. m_UserModel = new UserModel( m_LineUserId);
  21. console.log('lineUserId:', m_LineUserId);
  22. if (['U1856545fb999ec7ca759f34685e81207', 'U7ce424b056a71ecd30d5d5f34d37873d', 'U7cc9097f3663b4176054f5e33e31e194'].includes(m_LineUserId)) {
  23. var vConsole = new VConsole();
  24. }
  25. // 測試用
  26. // return Promise.resolve(profile);
  27. return profile;
  28. }).catch((error) => {
  29. alert('Liff Init Error \n Message:' + error.message);
  30. console.log('[GameService] Liff Init Error \n Name:' + error.name + '\n Message:' + error.message);
  31. });
  32. }
  33. /**
  34. * 用戶登入
  35. * @returns {TypeUserResponse} Promise
  36. */
  37. function userLogin() {
  38. console.log("userLogin")
  39. return m_UserModel.loginUser().then((response) => {
  40. m_data = response.data;
  41. getUserData();
  42. console.log(response)
  43. return response;
  44. });
  45. }
  46. // 測試用
  47. // function userLogin() {
  48. // console.log("userLogin")
  49. // return new Promise(resolve => {
  50. // getUserData();
  51. // resolve({
  52. // m_data
  53. // });
  54. // })
  55. // }
  56. /**
  57. * 用戶註冊
  58. * @param {object} _formdata
  59. * @returns {TypeUserResponse} Promise
  60. */
  61. function userRegister(_formdata) {
  62. return m_UserModel.registerUser(_formdata);
  63. }
  64. // 測試用
  65. // function userRegister(_formdata) {
  66. // // console.log(JSON.stringify(_formdata))
  67. // return new Promise(resolve => {
  68. // resolve("userRegister success");
  69. // })
  70. // }
  71. /**
  72. * 用戶更新照片
  73. * @returns {TypeUserResponse} Promise
  74. */
  75. function userUpdatePhoto(base64Image) {
  76. return m_UserModel.updatePhoto(base64Image);
  77. }
  78. // 測試
  79. // function userUpdatePhoto(base64Image) {
  80. // return new Promise(resolve => {
  81. // resolve ('success');
  82. // })
  83. // }
  84. function getUserData() {
  85. return m_data;
  86. }
  87. /**
  88. * 驗證表單
  89. * @param {object} _formdata
  90. * @returns { boolean | error }
  91. */
  92. function verifyUserForm(_formdata) {
  93. return m_UserModel.verifyUserForm(_formdata);
  94. }
  95. function sendMessage(_theMessage) {
  96. return liff.sendMessages([
  97. {
  98. type: 'text',
  99. text: _theMessage
  100. }
  101. ]).then(() => {
  102. console.log('message sent');
  103. return 'message sent';
  104. }).catch((err) => {
  105. throw new Error(err);
  106. });
  107. }
  108. function sendCompleteMessage() {
  109. return sendMessage('健康護照填寫完成!').then(() => {
  110. return 'message sent';
  111. });
  112. }
  113. {
  114. // init();
  115. }
  116. return {
  117. init,
  118. userLogin,
  119. userRegister,
  120. verifyUserForm,
  121. getUserData,
  122. userUpdatePhoto,
  123. sendCompleteMessage
  124. }
  125. }
  126. let _inatance
  127. const GameService = {
  128. getInstanse: () => {
  129. if (!_inatance) {
  130. _inatance = new Service();
  131. }
  132. return _inatance;
  133. }
  134. }