@hapl/api-queries 0.2.3 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -13,12 +13,13 @@ export declare type FindEventsHeaders = {
13
13
  };
14
14
  export declare type FindEventsParams = {
15
15
  filter?: {
16
+ hasFiles?: boolean;
17
+ id?: number;
16
18
  name?: string;
17
19
  scheduledAt?: {
18
20
  from?: string;
19
21
  to?: string;
20
22
  };
21
- hasFiles?: boolean;
22
23
  };
23
24
  limits?: {
24
25
  page?: number;
@@ -0,0 +1,51 @@
1
+ import { AxiosResponse, AxiosError } from 'axios';
2
+ import { EventRequest } from '../../../types';
3
+ declare type ResultData = {
4
+ ids: number[];
5
+ byId: Record<string, EventRequest>;
6
+ meta: {
7
+ total: number;
8
+ };
9
+ };
10
+ declare type ResultError = string;
11
+ export declare type FindEventRequestsHeaders = {
12
+ 'x-auth-hc'?: string;
13
+ };
14
+ export declare type FindEventRequestsParams = {
15
+ filter?: {
16
+ 'event.id'?: number;
17
+ 'event.scheduledAt'?: {
18
+ from?: string;
19
+ to?: string;
20
+ };
21
+ createdAt?: {
22
+ from?: string;
23
+ to?: string;
24
+ };
25
+ isArrivalConfirmed?: boolean;
26
+ isCame?: boolean;
27
+ isEmployed?: boolean;
28
+ member?: string;
29
+ phoneNumber?: string;
30
+ utmCampaign?: string;
31
+ utmContent?: string;
32
+ utmMedium?: string;
33
+ };
34
+ limits?: {
35
+ page?: number;
36
+ count?: number | 'all';
37
+ };
38
+ sorting?: {
39
+ type: 'createdAt' | 'event.scheduledAt' | 'referrer';
40
+ direction: 'asc' | 'desc';
41
+ };
42
+ };
43
+ export declare type FindEventRequestsData = AxiosResponse<ResultData>;
44
+ export declare type FindEventRequestsError = AxiosError<ResultError>;
45
+ export declare type FindEventRequestsConfig = {
46
+ baseURL?: string;
47
+ headers?: FindEventRequestsHeaders;
48
+ params: FindEventRequestsParams;
49
+ };
50
+ export declare function findEventRequestsRequest({ baseURL, headers, params, }: FindEventRequestsConfig): Promise<FindEventRequestsData>;
51
+ export {};
@@ -0,0 +1,36 @@
1
+ import { AxiosResponse, AxiosError } from 'axios';
2
+ import { EventRequest } from '../../../types';
3
+ declare type SuccessData = {
4
+ success: true;
5
+ data: EventRequest;
6
+ };
7
+ declare type ErrorData = {
8
+ success: false;
9
+ data: {
10
+ error: string;
11
+ };
12
+ };
13
+ declare type ResultData = SuccessData['data'];
14
+ declare type ResultError = ErrorData['data']['error'];
15
+ export declare type UpdateEventRequestUrlParams = {
16
+ id: number;
17
+ };
18
+ export declare type UpdateEventRequestHeaders = {
19
+ 'x-auth-hc': string;
20
+ };
21
+ export declare type UpdateEventRequestBody = {
22
+ comment?: NonNullable<EventRequest['comment']> | null;
23
+ isArrivalConfirmed?: EventRequest['isArrivalConfirmed'];
24
+ isCame?: EventRequest['isCame'];
25
+ isEmployed?: EventRequest['isEmployed'];
26
+ };
27
+ export declare type UpdateEventRequestData = AxiosResponse<ResultData>;
28
+ export declare type UpdateEventRequestError = AxiosError<ResultError>;
29
+ export declare type UpdateEventRequestConfig = {
30
+ baseURL?: string;
31
+ urlParams: UpdateEventRequestUrlParams;
32
+ headers: UpdateEventRequestHeaders;
33
+ body: UpdateEventRequestBody;
34
+ };
35
+ export declare function updateEventRequestRequest({ baseURL, urlParams, body, headers, }: UpdateEventRequestConfig): Promise<UpdateEventRequestData>;
36
+ export {};
@@ -56,6 +56,8 @@ export * from './event/findEventById';
56
56
  export * from './event/findEvents';
57
57
  export * from './event/updateEvent';
58
58
  export * from './eventRequest/createEventRequest';
59
+ export * from './eventRequest/findEventRequests';
60
+ export * from './eventRequest/updateEventRequest';
59
61
  export * from './expert/createExpertCase';
60
62
  export * from './expert/createExpertReview';
61
63
  export * from './expert/findExpertById';
@@ -60,6 +60,8 @@ export declare class Api {
60
60
  findEvents: (params: api.FindEventsParams, headers?: api.FindEventsHeaders | undefined) => Promise<api.FindEventsData>;
61
61
  updateEvent: (urlParams: api.UpdateEventUrlParams, body: api.UpdateEventBody, headers: api.UpdateEventHeaders) => Promise<api.UpdateEventData>;
62
62
  createEventRequest: (body: api.CreateEventRequestBody) => Promise<api.CreateEventRequestData>;
63
+ findEventRequests: (params: api.FindEventRequestsParams, headers?: api.FindEventRequestsHeaders | undefined) => Promise<api.FindEventRequestsData>;
64
+ updateEventRequest: (urlParams: api.UpdateEventRequestUrlParams, body: api.UpdateEventRequestBody, headers: api.UpdateEventRequestHeaders) => Promise<api.UpdateEventRequestData>;
63
65
  createExpertCase: (body: api.CreateExpertCaseBody, headers?: api.CreateExpertCaseHeaders | undefined) => Promise<api.CreateExpertCaseData>;
64
66
  createExpertReview: (urlParams: api.CreateExpertReviewUrlParams, body: api.CreateExpertReviewBody, headers: api.CreateExpertReviewHeaders) => Promise<api.CreateExpertReviewData>;
65
67
  findExpertById: (urlParams: api.FindExpertByIdUrlParams, headers: api.FindExpertByIdHeaders) => Promise<api.FindExpertByIdData>;
@@ -1,15 +1,17 @@
1
1
  import { Event } from './Event';
2
2
  export declare type EventRequest = {
3
+ createdAt: string;
3
4
  email: string;
4
5
  event: Pick<Event, 'id' | 'name' | 'scheduledAt'>;
5
6
  experience: string;
7
+ id: number;
8
+ isArrivalConfirmed: boolean;
9
+ isCame: boolean;
10
+ isEmployed: boolean;
6
11
  member: string;
7
12
  originSource: string;
8
13
  phoneNumber: string;
9
14
  comment?: string;
10
- isArrivalConfirmed?: boolean;
11
- isCame?: boolean;
12
- isEmployed?: boolean;
13
15
  referrer?: string;
14
16
  utmCampaign?: string;
15
17
  utmContent?: string;
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.2.3",
2
+ "version": "0.2.4",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -11,9 +11,10 @@ type ResultError = string;
11
11
  export type FindEventsHeaders = { 'x-auth-hc'?: string };
12
12
  export type FindEventsParams = {
13
13
  filter?: {
14
+ hasFiles?: boolean;
15
+ id?: number;
14
16
  name?: string;
15
17
  scheduledAt?: { from?: string; to?: string };
16
- hasFiles?: boolean;
17
18
  };
18
19
  limits?: { page?: number; count?: number | 'all' };
19
20
  sorting?: { type: 'id' | 'scheduledAt'; direction: 'asc' | 'desc' };
@@ -0,0 +1,71 @@
1
+ import axios, { AxiosResponse, AxiosError, AxiosTransformer } from 'axios';
2
+ import qs from 'qs';
3
+ import { EventRequest } from '../../../types';
4
+
5
+ type SuccessData = { success: true; data: EventRequest[]; pageParams: { length: number; page: number } };
6
+ type ErrorData = { success: false; data: { error: string } };
7
+
8
+ type ResultData = { ids: number[]; byId: Record<string, EventRequest>; meta: { total: number } };
9
+ type ResultError = string;
10
+
11
+ export type FindEventRequestsHeaders = { 'x-auth-hc'?: string };
12
+ export type FindEventRequestsParams = {
13
+ filter?: {
14
+ 'event.id'?: number;
15
+ 'event.scheduledAt'?: { from?: string; to?: string };
16
+ createdAt?: { from?: string; to?: string };
17
+ isArrivalConfirmed?: boolean;
18
+ isCame?: boolean;
19
+ isEmployed?: boolean;
20
+ member?: string;
21
+ phoneNumber?: string;
22
+ utmCampaign?: string;
23
+ utmContent?: string;
24
+ utmMedium?: string;
25
+ };
26
+ limits?: { page?: number; count?: number | 'all' };
27
+ sorting?: { type: 'createdAt' | 'event.scheduledAt' | 'referrer'; direction: 'asc' | 'desc' };
28
+ };
29
+ export type FindEventRequestsData = AxiosResponse<ResultData>;
30
+ export type FindEventRequestsError = AxiosError<ResultError>;
31
+ export type FindEventRequestsConfig = {
32
+ baseURL?: string;
33
+ headers?: FindEventRequestsHeaders;
34
+ params: FindEventRequestsParams;
35
+ };
36
+
37
+ export function findEventRequestsRequest({
38
+ baseURL = 'https://clients.homeapp.ru',
39
+ headers,
40
+ params,
41
+ }: FindEventRequestsConfig) {
42
+ return axios
43
+ .get('/api/site/event/request', {
44
+ baseURL,
45
+ params,
46
+ paramsSerializer: params => qs.stringify(params, { arrayFormat: 'brackets' }),
47
+ headers: { Accept: 'application/json', ...headers },
48
+ transformResponse: [
49
+ ...(axios.defaults.transformResponse as AxiosTransformer[]),
50
+ (data: SuccessData | ErrorData): ResultData | ResultError => {
51
+ if (data.success) {
52
+ const ids: ResultData['ids'] = [];
53
+ const byId: ResultData['byId'] = {};
54
+
55
+ data.data.forEach(entity => {
56
+ byId[entity.id] = entity;
57
+ ids.push(entity.id);
58
+ });
59
+
60
+ return { ids, byId, meta: { total: data.pageParams.length } };
61
+ }
62
+
63
+ return data.data.error;
64
+ },
65
+ ],
66
+ })
67
+ .then((res: FindEventRequestsData) => res)
68
+ .catch((err: FindEventRequestsError) => {
69
+ throw err;
70
+ });
71
+ }
@@ -0,0 +1,46 @@
1
+ import axios, { AxiosResponse, AxiosError, AxiosTransformer } from 'axios';
2
+ import { EventRequest } from '../../../types';
3
+
4
+ type SuccessData = { success: true; data: EventRequest };
5
+ type ErrorData = { success: false; data: { error: string } };
6
+
7
+ type ResultData = SuccessData['data'];
8
+ type ResultError = ErrorData['data']['error'];
9
+
10
+ export type UpdateEventRequestUrlParams = { id: number };
11
+ export type UpdateEventRequestHeaders = { 'x-auth-hc': string };
12
+ export type UpdateEventRequestBody = {
13
+ comment?: NonNullable<EventRequest['comment']> | null;
14
+ isArrivalConfirmed?: EventRequest['isArrivalConfirmed'];
15
+ isCame?: EventRequest['isCame'];
16
+ isEmployed?: EventRequest['isEmployed'];
17
+ };
18
+ export type UpdateEventRequestData = AxiosResponse<ResultData>;
19
+ export type UpdateEventRequestError = AxiosError<ResultError>;
20
+ export type UpdateEventRequestConfig = {
21
+ baseURL?: string;
22
+ urlParams: UpdateEventRequestUrlParams;
23
+ headers: UpdateEventRequestHeaders;
24
+ body: UpdateEventRequestBody;
25
+ };
26
+
27
+ export function updateEventRequestRequest({
28
+ baseURL = 'https://clients.homeapp.ru',
29
+ urlParams,
30
+ body,
31
+ headers,
32
+ }: UpdateEventRequestConfig) {
33
+ return axios
34
+ .patch(`/api/site/event/request/${urlParams.id}`, body, {
35
+ baseURL,
36
+ headers: { Accept: 'application/json', 'Content-Type': 'application/json', ...headers },
37
+ transformResponse: [
38
+ ...(axios.defaults.transformResponse as AxiosTransformer[]),
39
+ (data: SuccessData | ErrorData): ResultData | ResultError => (data.success ? data.data : data.data.error),
40
+ ],
41
+ })
42
+ .then((res: UpdateEventRequestData) => res)
43
+ .catch((err: UpdateEventRequestError) => {
44
+ throw err;
45
+ });
46
+ }
@@ -67,6 +67,8 @@ export * from './event/findEvents';
67
67
  export * from './event/updateEvent';
68
68
 
69
69
  export * from './eventRequest/createEventRequest';
70
+ export * from './eventRequest/findEventRequests';
71
+ export * from './eventRequest/updateEventRequest';
70
72
 
71
73
  export * from './expert/createExpertCase';
72
74
  export * from './expert/createExpertReview';
@@ -349,6 +349,18 @@ export class Api {
349
349
  return api.createEventRequestRequest({ body, baseURL: await this.baseURL });
350
350
  };
351
351
 
352
+ findEventRequests = async (params: api.FindEventRequestsParams, headers?: api.FindEventRequestsHeaders) => {
353
+ return api.findEventRequestsRequest({ params, headers, baseURL: await this.baseURL });
354
+ };
355
+
356
+ updateEventRequest = async (
357
+ urlParams: api.UpdateEventRequestUrlParams,
358
+ body: api.UpdateEventRequestBody,
359
+ headers: api.UpdateEventRequestHeaders
360
+ ) => {
361
+ return api.updateEventRequestRequest({ urlParams, body, headers, baseURL: await this.baseURL });
362
+ };
363
+
352
364
  // expert
353
365
 
354
366
  createExpertCase = async (body: api.CreateExpertCaseBody, headers?: api.CreateExpertCaseHeaders) => {
@@ -1,17 +1,19 @@
1
1
  import { Event } from './Event';
2
2
 
3
3
  export type EventRequest = {
4
+ createdAt: string;
4
5
  email: string;
5
6
  event: Pick<Event, 'id' | 'name' | 'scheduledAt'>;
6
7
  experience: string;
8
+ id: number;
9
+ isArrivalConfirmed: boolean;
10
+ isCame: boolean;
11
+ isEmployed: boolean;
7
12
  member: string;
8
13
  originSource: string;
9
14
  phoneNumber: string;
10
15
 
11
16
  comment?: string;
12
- isArrivalConfirmed?: boolean;
13
- isCame?: boolean;
14
- isEmployed?: boolean;
15
17
  referrer?: string;
16
18
  utmCampaign?: string;
17
19
  utmContent?: string;