index.js 3.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  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. // 測試用
  23. // return Promise.resolve(profile);
  24. return profile;
  25. }).catch((error) => {
  26. alert('Liff Init Error \n Message:' + error.message);
  27. console.log('[GameService] Liff Init Error \n Name:' + error.name + '\n Message:' + error.message);
  28. });
  29. }
  30. /**
  31. * 用戶登入
  32. * @returns {TypeUserResponse} Promise
  33. */
  34. function userLogin() {
  35. console.log("userLogin")
  36. return m_UserModel.loginUser().then((response) => {
  37. m_data = response.data;
  38. getUserData();
  39. console.log(response)
  40. return response;
  41. });
  42. }
  43. // 測試用
  44. // function userLogin() {
  45. // console.log("userLogin")
  46. // return new Promise(resolve => {
  47. // getUserData();
  48. // resolve({
  49. // m_data
  50. // });
  51. // })
  52. // }
  53. /**
  54. * 用戶註冊
  55. * @param {object} _formdata
  56. * @returns {TypeUserResponse} Promise
  57. */
  58. function userRegister(_formdata) {
  59. return m_UserModel.registerUser(_formdata);
  60. }
  61. // 測試用
  62. // function userRegister(_formdata) {
  63. // // console.log(JSON.stringify(_formdata))
  64. // return new Promise(resolve => {
  65. // resolve("userRegister success");
  66. // })
  67. // }
  68. /**
  69. * 用戶更新照片
  70. * @returns {TypeUserResponse} Promise
  71. */
  72. function userUpdatePhoto(base64Image) {
  73. return m_UserModel.updatePhoto(base64Image);
  74. }
  75. // 測試
  76. // function userUpdatePhoto(base64Image) {
  77. // return new Promise(resolve => {
  78. // resolve ('success');
  79. // })
  80. // }
  81. function getUserData() {
  82. return m_data;
  83. }
  84. /**
  85. * 驗證表單
  86. * @param {object} _formdata
  87. * @returns { boolean | error }
  88. */
  89. function verifyUserForm(_formdata) {
  90. return m_UserModel.verifyUserForm(_formdata);
  91. }
  92. function sendMessage(_theMessage) {
  93. return liff.sendMessages([
  94. {
  95. type: 'text',
  96. text: _theMessage
  97. }
  98. ]).then(() => {
  99. console.log('message sent');
  100. return 'message sent';
  101. }).catch((err) => {
  102. throw new Error(err);
  103. });
  104. }
  105. function sendCompleteMessage() {
  106. return sendMessage('健康護照填寫完成!').then(() => {
  107. return 'message sent';
  108. });
  109. }
  110. {
  111. // init();
  112. }
  113. return {
  114. init,
  115. userLogin,
  116. userRegister,
  117. verifyUserForm,
  118. getUserData,
  119. userUpdatePhoto,
  120. sendCompleteMessage
  121. }
  122. }
  123. let _inatance
  124. const GameService = {
  125. getInstanse: () => {
  126. if (!_inatance) {
  127. _inatance = new Service();
  128. }
  129. return _inatance;
  130. }
  131. }