trips-api.tsx 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import { request } from '../../../utils';
  2. import { API } from '../../../types';
  3. import { ResponseType } from '../response-type';
  4. export interface PostGetTripsYearsReturn extends ResponseType {
  5. data: string[];
  6. }
  7. export interface PostGetTripsForYearReturn extends ResponseType {
  8. trips: {
  9. id: number;
  10. date_from: string;
  11. date_to: string;
  12. description: string;
  13. regions: {
  14. region_name: string;
  15. flag1: string;
  16. flag2: string | null;
  17. status: 0 | 1;
  18. id: number;
  19. }[];
  20. }[];
  21. }
  22. export interface RegionData {
  23. id: number;
  24. quality: number;
  25. status: 0 | 1;
  26. hidden: boolean;
  27. }
  28. export interface PostSetNewTrip {
  29. token: string;
  30. date_from: string;
  31. date_to: string;
  32. description: string;
  33. regions: RegionData[];
  34. }
  35. export interface PostSetNewTripReturn extends ResponseType {
  36. trip_id: number;
  37. }
  38. export interface PostUpdateTrip {
  39. token: string;
  40. trip_id: number;
  41. date_from: string;
  42. date_to: string;
  43. description: string;
  44. regions: RegionData[];
  45. }
  46. export interface PostGetTripReturn extends ResponseType {
  47. trip: {
  48. id: number;
  49. date_from: string;
  50. date_to: string;
  51. description: string;
  52. regions: {
  53. id: number;
  54. region_name: string;
  55. flag1: string;
  56. flag2: string | null;
  57. quality: number;
  58. status: 0 | 1;
  59. hidden: boolean;
  60. can_be_hidden: boolean;
  61. }[];
  62. };
  63. }
  64. export interface PostGetRegionsForTripsReturn extends ResponseType {
  65. regions: {
  66. id: number;
  67. region_name: string;
  68. flag1: string;
  69. flag2: string | null;
  70. hidden: boolean;
  71. }[];
  72. }
  73. export const tripsApi = {
  74. getTripsYears: (token: string) =>
  75. request.postForm<PostGetTripsYearsReturn>(API.GET_TRIPS_YEARS, { token }),
  76. getTripsForYear: (token: string, year: string) =>
  77. request.postForm<PostGetTripsForYearReturn>(API.GET_TRIPS_FOR_YEAR, { token, year }),
  78. setNewTrip: (data: PostSetNewTrip) =>
  79. request.postForm<PostSetNewTripReturn>(API.SET_NEW_TRIP, data),
  80. updateTrip: (data: PostUpdateTrip) => request.postForm<ResponseType>(API.UPDATE_TRIP, data),
  81. deleteTrip: (token: string, trip_id: number) =>
  82. request.postForm<ResponseType>(API.DELETE_TRIP, { token, trip_id }),
  83. getTrip: (token: string, trip_id: number) =>
  84. request.postForm<PostGetTripReturn>(API.GET_TRIP, { token, trip_id }),
  85. getRegionsForTrips: () => request.get<PostGetRegionsForTripsReturn>(API.GET_REGIONS_FOR_TRIPS)
  86. };