SeasonPassStore.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import {
  2. APP_SEASON_PASS_INFO,
  3. APP_SEASON_PASS_PRIZE_CLAIM,
  4. APP_SEASON_PASS_TASKS_CLAIM,
  5. } from '../../api';
  6. import { success } from '@scripts/api/ApiHelper';
  7. import { ApiEnvelope, Http } from '../../request';
  8. import { AppKernel } from '@scripts/app/AppKernel';
  9. class SeasonPassStore {
  10. private _seasonPassData = {};
  11. public get seasonPassData() { return this._seasonPassData; }
  12. async reqSeasonPassInfo() {
  13. const res = await Http.call(APP_SEASON_PASS_INFO);
  14. if (success(res)) {
  15. this._seasonPassData = res.data;
  16. AppKernel.events.emit('seasonPass:update');
  17. return true;
  18. }
  19. return false;
  20. }
  21. async reqSeasonPassTasksClaim(task_id: number) {
  22. const params = {
  23. task_id,
  24. }
  25. const res = await Http.call(APP_SEASON_PASS_TASKS_CLAIM, params);
  26. if (success(res)) {
  27. this.reqSeasonPassInfo();
  28. return true;
  29. }
  30. return false;
  31. }
  32. async reqSeasonPassPrizeClaim(reward_id: number) {
  33. const params = {
  34. reward_id,
  35. }
  36. const res = await Http.call(APP_SEASON_PASS_PRIZE_CLAIM, params);
  37. if (success(res)) {
  38. this.reqSeasonPassInfo();
  39. return true;
  40. }
  41. return false;
  42. }
  43. clear() {
  44. this._seasonPassData = null;
  45. }
  46. }
  47. export const seasonPassStore = new SeasonPassStore();