regions-api.tsx 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. import { request } from '../../../utils';
  2. import { API } from '../../../types';
  3. import { ResponseType } from '../response-type';
  4. export interface PostGetRegionsReturn extends ResponseType {
  5. data: { id: number; name: string; flag: string }[];
  6. }
  7. export interface PostGetUserDataReturn extends ResponseType {
  8. first_visit_year: boolean;
  9. last_visit_year: boolean;
  10. no_of_visits: number;
  11. best_visit_quality: number;
  12. bbox: any;
  13. edit_in_trips: 0 | 1;
  14. }
  15. export interface PostGetUserDataDareReturn extends ResponseType {
  16. visited: boolean;
  17. first_visit_year: boolean;
  18. bbox: any;
  19. }
  20. export interface PostGetRegionDataReturn extends ResponseType {
  21. data: {
  22. region_name: string;
  23. region_flag: string;
  24. visited: boolean;
  25. best_visit_quality: -1;
  26. first_visit_year: number;
  27. last_visit_year: number;
  28. no_of_visits: number;
  29. edit_in_trips: 0 | 1;
  30. photos: {
  31. title: string;
  32. id: number;
  33. user_id: number;
  34. first_name: string;
  35. last_name: string;
  36. avatar: string | null;
  37. }[];
  38. users_who_visited_region_count: number;
  39. users_from_region_count: number;
  40. users_who_visited_region: string[];
  41. users_from_region: string[];
  42. series: {
  43. series_id: number;
  44. series_name: string;
  45. icon: string;
  46. items: {
  47. id: number;
  48. name: string;
  49. description: string | null;
  50. new: 0 | 1;
  51. visited: 0 | 1;
  52. double_point: 0 | 1;
  53. visited_double: 0 | 1;
  54. link: string;
  55. }[];
  56. }[];
  57. };
  58. }
  59. export interface User {
  60. score_nm: number;
  61. score_dare: number;
  62. score_un: number;
  63. score_unp: number;
  64. score_tcc: number;
  65. score_deep: number;
  66. score_whs: number | null;
  67. score_kye: number;
  68. score_tbt: number;
  69. score_yes: number;
  70. score_slow: number;
  71. rank_tbt: number;
  72. user_id: number;
  73. avatar: string | null;
  74. first_name: string;
  75. last_name: string;
  76. age: number;
  77. flag1: string;
  78. flag2: string | null;
  79. badge_1281: 0 | 1;
  80. badge_un: 0 | 1;
  81. badge_un_25: 0 | 1;
  82. badge_un_50: 0 | 1;
  83. badge_un_75: 0 | 1;
  84. badge_un_100: 0 | 1;
  85. badge_un_150: 0 | 1;
  86. badge_un_193: 0 | 1;
  87. badge_premium: 0 | 1;
  88. badge_supreme: 0 | 1;
  89. badge_tbt: 0 | 1;
  90. badge_offline: 0 | 1;
  91. patreon: 0 | 1;
  92. country: string;
  93. homebase: number;
  94. auth: 0 | 1;
  95. rank: number;
  96. country_rank: number;
  97. dod: 0 | 1;
  98. ukr: 0 | 1;
  99. badges: 0 | 1;
  100. arrow_nm: 0 | 1;
  101. arrow_un: 0 | 1;
  102. arrow_unp: 0 | 1;
  103. arrow_dare: 0 | 1;
  104. arrow_yes: 0 | 1;
  105. arrow_whs: 0 | 1;
  106. arrow_tcc: 0 | 1;
  107. arrow_tbt: 0 | 1;
  108. arrow_slow: 0 | 1;
  109. arrow_kye: 0 | 1;
  110. }
  111. export interface PostGetUsersFromRegionDataReturn extends ResponseType {
  112. data: {
  113. max_pages: number;
  114. users: User[];
  115. };
  116. }
  117. export interface PostGetUsersWhoVisitedDataReturn extends ResponseType {
  118. data: {
  119. max_pages: number;
  120. countries: {
  121. [key: string]: {
  122. country: string;
  123. flag: string;
  124. };
  125. };
  126. users: User[];
  127. };
  128. }
  129. export interface PostGetListRegionsReturn extends ResponseType {
  130. data: {
  131. id: number;
  132. name: string;
  133. bbox: any;
  134. flag: string;
  135. }[];
  136. }
  137. export const regionsApi = {
  138. getRegionsWithFlag: () => request.postForm<PostGetRegionsReturn>(API.GET_REGIONS_WITH_FLAGS),
  139. getUserData: (region_id: number, token: string) =>
  140. request.postForm<PostGetUserDataReturn>(API.GET_USER_DATA, { region_id, token }),
  141. getUserDataDare: (dare_id: number, token: string) =>
  142. request.postForm<PostGetUserDataDareReturn>(API.GET_USER_DATA_DARE, { dare_id, token }),
  143. getNmRegionData: (id: number, token?: string) =>
  144. request.postForm<PostGetRegionDataReturn>(API.GET_NM_REGION_DATA, { id, token }),
  145. getDareRegionData: (id: number, token?: string) =>
  146. request.postForm<PostGetRegionDataReturn>(API.GET_DARE_REGION_DATA, { id, token }),
  147. getUsersFromRegion: (id: number, page: number, sort?: string, age?: number) =>
  148. request.postForm<PostGetUsersFromRegionDataReturn>(API.GET_USERS_FROM_REGION, {
  149. id,
  150. page,
  151. sort,
  152. age
  153. }),
  154. getUsersWhoVisitedRegion: (
  155. id: number,
  156. page: number,
  157. sort?: string,
  158. age?: number,
  159. country?: string
  160. ) =>
  161. request.postForm<PostGetUsersWhoVisitedDataReturn>(API.GET_USERS_WHO_VISITED_REGION, {
  162. id,
  163. page,
  164. sort,
  165. age,
  166. country
  167. }),
  168. getUsersWhoVisitedDare: (
  169. id: number,
  170. page: number,
  171. sort?: string,
  172. age?: number,
  173. country?: string
  174. ) =>
  175. request.postForm<PostGetUsersWhoVisitedDataReturn>(API.GET_USERS_WHO_VISITED_DARE, {
  176. id,
  177. page,
  178. sort,
  179. age,
  180. country
  181. }),
  182. getListRegions: () => request.postForm<PostGetListRegionsReturn>(API.GET_LIST_REGIONS)
  183. };