UserApi.ts 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. import { DataModel, transformArrayDataModel } from '@imengyu/js-request-transform';
  2. import { AppServerRequestModule } from '../RequestModules';
  3. import ApiCofig from '@/common/config/ApiCofig';
  4. import AppCofig from '@/common/config/AppCofig';
  5. export class LoginResult extends DataModel<LoginResult> {
  6. constructor() {
  7. super(LoginResult, "登录结果");
  8. //this.setNameMapperCase('Camel', 'Snake');
  9. this._convertTable = {
  10. mainBodyUserInfo: { clientSide: 'object', clientSideRequired: true, clientSideChildDataModel: UserInfo },
  11. auth: {
  12. clientSide: 'object',
  13. clientSideRequired: true,
  14. clientSideChildDataModel: {
  15. nameMapperServer: {
  16. user_id: 'userId',
  17. expires_in: 'expiresIn',
  18. },
  19. convertTable: {
  20. token: { clientSide: 'string', clientSideRequired: true },
  21. userId: { clientSide: 'number' },
  22. expiresIn: { clientSide: 'number' },
  23. }
  24. }
  25. },
  26. }
  27. }
  28. auth !: {
  29. id: number,
  30. username: string,
  31. nickname: string,
  32. mobile: string,
  33. avatar: string,
  34. score: number,
  35. token: string,
  36. userId: number,
  37. createtime: Date,
  38. expiretime: Date,
  39. expiresIn: number,
  40. };
  41. mainBodyUserInfo !:UserInfo;
  42. }
  43. export class UserInfo extends DataModel<UserInfo> {
  44. constructor() {
  45. super(UserInfo, "用户信息");
  46. this.setNameMapperCase('Camel', 'Snake');
  47. this._convertTable = {
  48. id: { clientSide: 'number', serverSide: 'number', clientSideRequired: true },
  49. userId: { clientSide: 'number', serverSide: 'number', clientSideRequired: true },
  50. mainBodyId: { clientSide: 'number', serverSide: 'number', clientSideRequired: true },
  51. loginTime: { clientSide: 'date', serverSide: 'string' },
  52. }
  53. }
  54. id = 0;
  55. userId = 0;
  56. mainBodyId = 0;
  57. nickname = '';
  58. avatar = '';
  59. intro = '';
  60. fans = '';
  61. score = '';
  62. loginTime = null as null|Date;
  63. diyname = '';
  64. }
  65. export class UserApi extends AppServerRequestModule<DataModel> {
  66. constructor() {
  67. super();
  68. }
  69. async loginThird(data?: {
  70. code: string,
  71. platform: 'wechat',
  72. encrypted_data: string,
  73. iv: string,
  74. raw_data: string,
  75. signature: string,
  76. }) {
  77. return (await this.post('/content/main_body_user/third', {
  78. appid: AppCofig.appId,
  79. ...data,
  80. }, '登录', undefined, LoginResult)).data as LoginResult;
  81. }
  82. async loginWithMobile(data?: {
  83. mobile: string,
  84. password: string,
  85. }) {
  86. return (await this.post('/discover/User/login', {
  87. appid: AppCofig.appId,
  88. ...data,
  89. }, '登录', undefined, LoginResult)).data as LoginResult;
  90. }
  91. async getUserInfo(main_body_user_id: number) {
  92. return (await this.post('/content/main_body_user/getMainBodyUser', {
  93. main_body_user_id,
  94. }, '获取用户信息', undefined, UserInfo)).data as UserInfo;
  95. }
  96. async updateUserInfo(data: {
  97. nickname?: string,
  98. avatar?: string,
  99. intro?: string,
  100. password?: string,
  101. }) {
  102. return (await this.post('/content/main_body_user/editMainBodyUser', data, '更新用户信息'))
  103. }
  104. async refresh() {
  105. return (await this.post('/content/main_body_user/refreshUser', {
  106. }, '刷新用户', undefined, LoginResult)).data as LoginResult;
  107. }
  108. async checkUserAuthed(id: number) {
  109. return await this.post('/content/main_body_user/getMainBodyUser', {
  110. main_body_user_id: id,
  111. }, '检查用户是否登录');
  112. }
  113. }
  114. export default new UserApi();