location-api.ts 1.1 KB

1234567891011121314151617181920212223242526272829
  1. import { request } from '../../../utils';
  2. import { API } from '../../../types';
  3. import { ResponseType } from '../response-type';
  4. import { FeatureCollection } from '@turf/turf';
  5. export interface PostGetSettingsReturn extends ResponseType {
  6. sharing: 0 | 1;
  7. }
  8. export interface PostGetUsersLocationReturn extends ResponseType {
  9. geojson: GeoJSON.FeatureCollection;
  10. }
  11. export interface PostGetUserCountReturn extends ResponseType {
  12. count: number;
  13. }
  14. export const locationApi = {
  15. getSettings: (token: string) =>
  16. request.postForm<PostGetSettingsReturn>(API.GET_LOCATION_SETTINGS, { token }),
  17. setSettings: (token: string, sharing: 0 | 1) =>
  18. request.postForm<ResponseType>(API.SET_LOCATION_SETTINGS, { token, sharing }),
  19. updateLocation: (token: string, lat: number, lng: number) =>
  20. request.postForm<ResponseType>(API.UPDATE_LOCATION, { token, lat, lng }),
  21. getUsersLocation: (token: string) =>
  22. request.postForm<PostGetUsersLocationReturn>(API.GET_USERS_LOCATION, { token }),
  23. getUsersCount: (token: string) =>
  24. request.postForm<PostGetUserCountReturn>(API.GET_USERS_COUNT, { token })
  25. };