123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 |
- import { request } from '../../../utils';
- import { API } from '../../../types';
- import { ResponseType } from '../response-type';
- import { AxiosRequestConfig } from 'axios';
- export interface PostGetEventsListReturn extends ResponseType {
- data: SingleEvent[];
- }
- export type SingleEvent = {
- id: number;
- active: 0 | 1;
- full: 0 | 1;
- name: string;
- url: string;
- date: string;
- date_from: string;
- date_to: string;
- address1: string;
- location: string;
- capacity?: number;
- participants?: number;
- registrations_info: 1 | 2 | 3 | 4 | 5;
- type: 1 | 2 | 3;
- photo: 0 | 1;
- available?: number;
- joined: 0 | 1;
- visible?: 0 | 1;
- archived: 0 | 1;
- time?: string;
- time_from?: string;
- time_to?: string;
- };
- export type Participants = {
- uid: number;
- name: string;
- avatar: string | null;
- flag: string | null;
- };
- export type EventSettings = {
- name: string;
- url: string;
- date: string;
- date_from: string;
- date_to: string;
- address1: string;
- location: string;
- capacity: number;
- type: 1 | 2 | 3;
- registrations_info: 1 | 2 | 3 | 4 | 5;
- address2: string;
- details: string;
- free: 0 | 1;
- host: string;
- host_profile: number | null;
- price: string;
- shop_url: string;
- chat_token: string | null;
- all_participants_visible: 0 | 1;
- participants_can_add_photos: 0 | 1 | null;
- participants_can_add_files: 0 | 1 | null;
- host_data: {
- first_name: string;
- last_name: string;
- avatar: string | null;
- nm: number | null;
- un: number | null;
- };
- nm_region?: number;
- };
- export type EventAttachments = {
- id: number;
- filename: string;
- filetype: string;
- description: string;
- data: 0 | 1;
- preview: 0 | 1;
- type: 1 | 2 | 3;
- };
- export type EventPhotos = {
- id: number;
- filetype: string;
- data: 0 | 1;
- preview: 0 | 1;
- uid: number;
- name: string;
- avatar: string | null;
- };
- export type EventData = SingleEvent & {
- event_chat: string | null;
- settings: EventSettings;
- participants_data: Participants[];
- joined: 0 | 1;
- attachments: EventAttachments[];
- files: EventAttachments[];
- photos: EventPhotos[];
- user_id: number | boolean;
- photo_available: 0 | 1;
- photo_main: 0 | 1;
- photos_left: number;
- };
- export interface PostGetEventReturn extends ResponseType {
- data: EventData;
- }
- export interface PostGetMorePhotosReturn extends ResponseType {
- photos: EventPhotos[];
- photos_left: number;
- }
- export interface PostUploadTempFileReturn extends ResponseType {
- filetype: string;
- name: string;
- temp_name: string;
- }
- export interface PostGetCanAddEventReturn extends ResponseType {
- can: boolean;
- }
- export interface PostGetPhotosForRegionReturn extends ResponseType {
- photos: number[];
- }
- export interface PostGetEventForEditingReturn {
- address1: string;
- address2: string;
- capacity: number | null;
- date: string;
- details: string;
- lat: number | null;
- lon: number;
- region: number;
- time_from: string;
- time_to: string;
- title: string;
- result: string;
- }
- export interface PostJoinEvent {
- token: string;
- id: number;
- }
- export interface PostUploadTemp {
- token: string;
- file: {
- type: string;
- uri: string;
- name: string;
- };
- }
- export interface PostUploadPhoto {
- token: string;
- event_id: number;
- file: {
- type: string;
- uri: string;
- name: string;
- };
- }
- export interface PostEventAddFile {
- token: string;
- type: 1 | 2 | 3;
- description: string;
- event_id: number;
- filetype: string;
- filename: string;
- temp_filename: string;
- }
- export interface PostDeleteFile {
- token: string;
- id: number;
- event_id: number;
- }
- export interface PostAddEvent {
- token: string;
- event: any;
- }
- export interface PostUpdateEvent {
- token: string;
- event_id: number;
- event: any;
- }
- export const eventsApi = {
- getEventsList: (token: string, past: number) =>
- request.postForm<PostGetEventsListReturn>(API.GET_EVENTS_LIST, { token, past }),
- getEvent: (token: string, url: string) =>
- request.postForm<PostGetEventReturn>(API.GET_EVENT, { token, url }),
- joinEvent: (data: PostJoinEvent) => request.postForm<ResponseType>(API.JOIN_EVENT, data),
- unjoinEvent: (data: PostJoinEvent) => request.postForm<ResponseType>(API.UNJOIN_EVENT, data),
- uploadTempFile: (data: PostUploadTemp, config?: AxiosRequestConfig) => {
- const formData = new FormData();
- formData.append('token', data.token);
- formData.append('file', {
- ...data.file
- } as unknown as Blob);
- return request.postForm<PostUploadTempFileReturn>(API.UPLOAD_TEMP_FILE, formData, {
- ...config
- });
- },
- eventAddFile: (data: PostEventAddFile) =>
- request.postForm<ResponseType>(API.EVENT_ADD_FILE, data),
- deleteFile: (data: PostDeleteFile) => request.postForm<ResponseType>(API.DELETE_FILE, data),
- uploadPhoto: (data: PostUploadPhoto, config?: AxiosRequestConfig) => {
- const formData = new FormData();
- formData.append('token', data.token);
- formData.append('event_id', JSON.stringify(data.event_id));
- formData.append('file', {
- ...data.file
- } as unknown as Blob);
- return request.postForm<PostUploadTempFileReturn>(API.UPLOAD_PHOTO_EVENT, formData, {
- ...config
- });
- },
- getMorePhotos: (token: string, event_id: number, last_id: number) =>
- request.postForm<PostGetMorePhotosReturn>(API.GET_MORE_PHOTOS, { token, event_id, last_id }),
- canAddEvent: (token: string) =>
- request.postForm<PostGetCanAddEventReturn>(API.CAN_ADD_EVENT, { token }),
- getPhotosForRegion: (region_id: number) =>
- request.postForm<PostGetPhotosForRegionReturn>(API.GET_PHOTOS_FOR_REGION, { region_id }),
- addEvent: (data: PostAddEvent) => request.postForm<ResponseType>(API.ADD_EVENT, data),
- getEventForEditing: (token: string, event_id: number) =>
- request.postForm<PostGetEventForEditingReturn>(API.GET_EVENT_FOR_EDITING, { token, event_id }),
- updateEvent: (data: PostUpdateEvent) => request.postForm<ResponseType>(API.UPDATE_EVENT, data),
- cancelEvent: (token: string, event_id: number) =>
- request.postForm<ResponseType>(API.CANCEL_EVENT, { token, event_id })
- };
|