account.api.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import PharmacyHttpClient from '@request/pharmacy.request.ts';
  2. import SystemHttpClient from '@request/system.request.ts';
  3. import type { ResponseData } from 'alova';
  4. import { requestMethodFactory } from '@/platform/request.ts';
  5. import type { AccountModel } from '@model/account.model.ts';
  6. export function loginMethod(data: { username: string; password: string }) {
  7. return requestMethodFactory(
  8. PharmacyHttpClient.Post<string, ResponseData>(`/login/v2`, data, {
  9. transform(data) {
  10. return data?.token ?? '';
  11. },
  12. }),
  13. );
  14. }
  15. export function getAccountMethod(token: string) {
  16. return requestMethodFactory(
  17. SystemHttpClient.Get<{ token: string; account: AccountModel }, ResponseData>(`/user/getInfo`, {
  18. headers: { Authorization: token },
  19. transform(data) {
  20. const user = data?.user;
  21. return {
  22. token,
  23. account: {
  24. id: user?.userId?.toString(),
  25. name: user?.nickName ?? user?.userName ?? '',
  26. username: user?.userName,
  27. nickname: user?.nickName
  28. },
  29. };
  30. },
  31. }),
  32. );
  33. }