@hapl/api-queries 0.2.52 → 0.2.53

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.
@@ -0,0 +1,49 @@
1
+ import { AxiosResponse, AxiosError } from 'axios';
2
+ import { ExpertCategory, ExpertCategoryCategory, ExpertCategoryExpertType } from '../../types';
3
+ declare type SuccessData = {
4
+ success: true;
5
+ data: ExpertCategory[];
6
+ pageParams: {
7
+ page: number;
8
+ length: number;
9
+ };
10
+ meta: {
11
+ cntRed: number;
12
+ cntYellow: number;
13
+ cntGreen: number;
14
+ cntNoCategory: number;
15
+ };
16
+ };
17
+ declare type ResultData = {
18
+ ids: number[];
19
+ byId: Record<string, ExpertCategory>;
20
+ meta: SuccessData['meta'] & {
21
+ total: number;
22
+ };
23
+ };
24
+ declare type ResultError = string;
25
+ export declare type FindExpertCategoriesHeaders = {
26
+ 'x-auth-hc': string;
27
+ };
28
+ export declare type FindExpertCategoriesParams = {
29
+ filter?: {
30
+ 'expert.id'?: number;
31
+ 'supervisor.id'?: number;
32
+ category?: ExpertCategoryCategory;
33
+ expertType?: ExpertCategoryExpertType;
34
+ needAttention?: boolean;
35
+ };
36
+ limits?: {
37
+ page?: number;
38
+ count: number | 'all';
39
+ };
40
+ };
41
+ export declare type FindExpertCategoriesData = AxiosResponse<ResultData>;
42
+ export declare type FindExpertCategoriesError = AxiosError<ResultError>;
43
+ export declare type FindExpertCategoriesConfig = {
44
+ baseURL?: string;
45
+ headers: FindExpertCategoriesHeaders;
46
+ params: FindExpertCategoriesParams;
47
+ };
48
+ export declare function findExpertCategoriesRequest({ baseURL, headers, params, }: FindExpertCategoriesConfig): Promise<FindExpertCategoriesData>;
49
+ export {};
@@ -0,0 +1,37 @@
1
+ import { AxiosResponse, AxiosError } from 'axios';
2
+ import { ExpertCategoryCategory, ExpertCategoryExpertType } from '../../types';
3
+ declare type HistoryData = {
4
+ createdAt: string;
5
+ cntRed: number;
6
+ cntYellow: number;
7
+ cntGreen: number;
8
+ cntNoCategory: number;
9
+ };
10
+ declare type ResultData = {
11
+ ids: string[];
12
+ byId: Record<string, HistoryData & {
13
+ _id: string;
14
+ }>;
15
+ };
16
+ declare type ResultError = string;
17
+ export declare type FindExpertCategoryHistoryHeaders = {
18
+ 'x-auth-hc': string;
19
+ };
20
+ export declare type FindExpertCategoryHistoryParams = {
21
+ filter?: {
22
+ 'expert.id'?: number;
23
+ 'supervisor.id'?: number;
24
+ category?: ExpertCategoryCategory;
25
+ expertType?: ExpertCategoryExpertType;
26
+ needAttention?: boolean;
27
+ };
28
+ };
29
+ export declare type FindExpertCategoryHistoryData = AxiosResponse<ResultData>;
30
+ export declare type FindExpertCategoryHistoryError = AxiosError<ResultError>;
31
+ export declare type FindExpertCategoryHistoryConfig = {
32
+ baseURL?: string;
33
+ headers: FindExpertCategoryHistoryHeaders;
34
+ params: FindExpertCategoryHistoryParams;
35
+ };
36
+ export declare function findExpertCategoryHistoryRequest({ baseURL, headers, params, }: FindExpertCategoryHistoryConfig): Promise<FindExpertCategoryHistoryData>;
37
+ export {};
@@ -105,6 +105,8 @@ export * from './expert/findExperts';
105
105
  export * from './expert/findPublishedExperts';
106
106
  export * from './expert/updateExpertCase';
107
107
  export * from './expert/updateExpertReview';
108
+ export * from './expertCategory/findExpertCategories';
109
+ export * from './expertCategory/findExpertCategoryHistory';
108
110
  export * from './file/uploadFiles';
109
111
  export * from './income/createIncome';
110
112
  export * from './income/deleteIncome';
@@ -0,0 +1,13 @@
1
+ import { ExpertCategoryExpertType, ExpertCategoryCategory } from '../types';
2
+ export declare const ExpertCategoryDictionary: {
3
+ ExpertType: {
4
+ new_expert: string;
5
+ experience_expert: string;
6
+ };
7
+ Category: {
8
+ 1: string;
9
+ 2: string;
10
+ 3: string;
11
+ 4: string;
12
+ };
13
+ };
@@ -14,6 +14,7 @@ export * from './Deal';
14
14
  export * from './DealCategorizedFile';
15
15
  export * from './DealParticipant';
16
16
  export * from './Debt';
17
+ export * from './ExpertCategory';
17
18
  export * from './File';
18
19
  export * from './GalleryImage';
19
20
  export * from './LeadAssignmentBlock';
@@ -109,6 +109,8 @@ export declare class Api {
109
109
  findPublishedExperts: (params: api.FindPublishedExpertsParams) => Promise<api.FindPublishedExpertsData>;
110
110
  updateExpertCase: (urlParams: api.UpdateExpertCaseUrlParams, body: api.UpdateExpertCaseBody, headers: api.UpdateExpertCaseHeaders) => Promise<api.UpdateExpertCaseData>;
111
111
  updateExpertReview: (urlParams: api.UpdateExpertReviewUrlParams, body: api.UpdateExpertReviewBody, headers: api.UpdateExpertReviewHeaders) => Promise<api.UpdateExpertReviewData>;
112
+ findExpertCategories: (params: api.FindExpertCategoriesParams, headers: api.FindExpertCategoriesHeaders) => Promise<api.FindExpertCategoriesData>;
113
+ findExpertCategoryHistory: (params: api.FindExpertCategoryHistoryParams, headers: api.FindExpertCategoryHistoryHeaders) => Promise<api.FindExpertCategoryHistoryData>;
112
114
  uploadFiles: (body: api.UploadFilesBody, headers: api.UploadFilesHeaders) => Promise<api.UploadFilesData>;
113
115
  createIncome: (body: api.CreateIncomeBody, headers: api.CreateIncomeHeaders) => Promise<api.CreateIncomeData>;
114
116
  deleteIncome: (urlParams: api.DeleteIncomeUrlParams, headers: api.DeleteIncomeHeaders) => Promise<api.DeleteIncomeData>;
@@ -0,0 +1,20 @@
1
+ import { User } from './User';
2
+ export declare enum ExpertCategoryExpertType {
3
+ NewExpert = "new_expert",
4
+ ExperienceExpert = "experience_expert"
5
+ }
6
+ export declare enum ExpertCategoryCategory {
7
+ Red = "1",
8
+ Yellow = "2",
9
+ Green = "3",
10
+ NoCategory = "4"
11
+ }
12
+ export declare type ExpertCategory = {
13
+ category: ExpertCategoryCategory;
14
+ cntDaysInCurrentCategory: number;
15
+ expert: Partial<User> & Required<Pick<User, 'id'>>;
16
+ expertType: ExpertCategoryExpertType;
17
+ id: number;
18
+ needAttention: boolean;
19
+ supervisor: Partial<User> & Required<Pick<User, 'id'>>;
20
+ };
@@ -25,6 +25,7 @@ export * from './DealParticipant';
25
25
  export * from './Debt';
26
26
  export * from './Event';
27
27
  export * from './EventRequest';
28
+ export * from './ExpertCategory';
28
29
  export * from './ExpertReview';
29
30
  export * from './File';
30
31
  export * from './GalleryImage';
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.2.52",
2
+ "version": "0.2.53",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -0,0 +1,78 @@
1
+ import axios, { AxiosResponse, AxiosError, AxiosResponseTransformer } from 'axios';
2
+ import qs from 'qs';
3
+ import { ExpertCategory, ExpertCategoryCategory, ExpertCategoryExpertType } from '../../types';
4
+
5
+ type SuccessData = {
6
+ success: true;
7
+ data: ExpertCategory[];
8
+ pageParams: { page: number; length: number };
9
+ meta: {
10
+ cntRed: number;
11
+ cntYellow: number;
12
+ cntGreen: number;
13
+ cntNoCategory: number;
14
+ };
15
+ };
16
+ type ErrorData = { success: false; data: Record<'error' | 'message', string> };
17
+
18
+ type ResultData = {
19
+ ids: number[];
20
+ byId: Record<string, ExpertCategory>;
21
+ meta: SuccessData['meta'] & { total: number };
22
+ };
23
+ type ResultError = string;
24
+
25
+ export type FindExpertCategoriesHeaders = { 'x-auth-hc': string };
26
+ export type FindExpertCategoriesParams = {
27
+ filter?: {
28
+ 'expert.id'?: number;
29
+ 'supervisor.id'?: number;
30
+ category?: ExpertCategoryCategory;
31
+ expertType?: ExpertCategoryExpertType;
32
+ needAttention?: boolean;
33
+ };
34
+ limits?: { page?: number; count: number | 'all' };
35
+ };
36
+ export type FindExpertCategoriesData = AxiosResponse<ResultData>;
37
+ export type FindExpertCategoriesError = AxiosError<ResultError>;
38
+ export type FindExpertCategoriesConfig = {
39
+ baseURL?: string;
40
+ headers: FindExpertCategoriesHeaders;
41
+ params: FindExpertCategoriesParams;
42
+ };
43
+
44
+ export function findExpertCategoriesRequest({
45
+ baseURL = 'https://clients.homeapp.ru',
46
+ headers,
47
+ params,
48
+ }: FindExpertCategoriesConfig) {
49
+ return axios
50
+ .get('/api/expert-category/list', {
51
+ baseURL,
52
+ params,
53
+ paramsSerializer: params => qs.stringify(params, { arrayFormat: 'brackets' }),
54
+ headers: { Accept: 'application/json', ...headers },
55
+ transformResponse: [
56
+ ...(axios.defaults.transformResponse as AxiosResponseTransformer[]),
57
+ (data: SuccessData | ErrorData): ResultData | ResultError => {
58
+ if (data.success) {
59
+ const ids: ResultData['ids'] = [];
60
+ const byId: ResultData['byId'] = {};
61
+
62
+ data.data.forEach(entity => {
63
+ byId[entity.id] = entity;
64
+ ids.push(entity.id);
65
+ });
66
+
67
+ return { ids, byId, meta: { ...data.meta, total: data.pageParams?.length ?? 0 } };
68
+ }
69
+
70
+ return data.data.error || data.data.message;
71
+ },
72
+ ],
73
+ })
74
+ .then((res: FindExpertCategoriesData) => res)
75
+ .catch((err: FindExpertCategoriesError) => {
76
+ throw err;
77
+ });
78
+ }
@@ -0,0 +1,73 @@
1
+ import axios, { AxiosResponse, AxiosError, AxiosResponseTransformer } from 'axios';
2
+ import { nanoid } from 'nanoid/non-secure';
3
+ import qs from 'qs';
4
+ import { ExpertCategoryCategory, ExpertCategoryExpertType } from '../../types';
5
+
6
+ type HistoryData = {
7
+ createdAt: string;
8
+ cntRed: number;
9
+ cntYellow: number;
10
+ cntGreen: number;
11
+ cntNoCategory: number;
12
+ };
13
+
14
+ type SuccessData = { success: true; data: Array<HistoryData> };
15
+ type ErrorData = { success: false; data: Record<'error' | 'message', string> };
16
+
17
+ type ResultData = { ids: string[]; byId: Record<string, HistoryData & { _id: string }> };
18
+ type ResultError = string;
19
+
20
+ export type FindExpertCategoryHistoryHeaders = { 'x-auth-hc': string };
21
+ export type FindExpertCategoryHistoryParams = {
22
+ filter?: {
23
+ 'expert.id'?: number;
24
+ 'supervisor.id'?: number;
25
+ category?: ExpertCategoryCategory;
26
+ expertType?: ExpertCategoryExpertType;
27
+ needAttention?: boolean;
28
+ };
29
+ };
30
+ export type FindExpertCategoryHistoryData = AxiosResponse<ResultData>;
31
+ export type FindExpertCategoryHistoryError = AxiosError<ResultError>;
32
+ export type FindExpertCategoryHistoryConfig = {
33
+ baseURL?: string;
34
+ headers: FindExpertCategoryHistoryHeaders;
35
+ params: FindExpertCategoryHistoryParams;
36
+ };
37
+
38
+ export function findExpertCategoryHistoryRequest({
39
+ baseURL = 'https://clients.homeapp.ru',
40
+ headers,
41
+ params,
42
+ }: FindExpertCategoryHistoryConfig) {
43
+ return axios
44
+ .get('/api/expert-category/history', {
45
+ baseURL,
46
+ params,
47
+ paramsSerializer: params => qs.stringify(params, { arrayFormat: 'brackets' }),
48
+ headers: { Accept: 'application/json', ...headers },
49
+ transformResponse: [
50
+ ...(axios.defaults.transformResponse as AxiosResponseTransformer[]),
51
+ (data: SuccessData | ErrorData): ResultData | ResultError => {
52
+ if (data.success) {
53
+ const ids: ResultData['ids'] = [];
54
+ const byId: ResultData['byId'] = {};
55
+
56
+ data.data.forEach(entity => {
57
+ const _id = nanoid();
58
+ byId[_id] = { ...entity, _id };
59
+ ids.push(_id);
60
+ });
61
+
62
+ return { ids, byId };
63
+ }
64
+
65
+ return data.data.error || data.data.message;
66
+ },
67
+ ],
68
+ })
69
+ .then((res: FindExpertCategoryHistoryData) => res)
70
+ .catch((err: FindExpertCategoryHistoryError) => {
71
+ throw err;
72
+ });
73
+ }
@@ -123,6 +123,9 @@ export * from './expert/findPublishedExperts';
123
123
  export * from './expert/updateExpertCase';
124
124
  export * from './expert/updateExpertReview';
125
125
 
126
+ export * from './expertCategory/findExpertCategories';
127
+ export * from './expertCategory/findExpertCategoryHistory';
128
+
126
129
  export * from './file/uploadFiles';
127
130
 
128
131
  export * from './income/createIncome';
@@ -0,0 +1,14 @@
1
+ import { ExpertCategoryExpertType, ExpertCategoryCategory } from '../types';
2
+
3
+ export const ExpertCategoryDictionary = {
4
+ ExpertType: {
5
+ [ExpertCategoryExpertType.NewExpert]: 'Новичок',
6
+ [ExpertCategoryExpertType.ExperienceExpert]: 'Опытный',
7
+ },
8
+ Category: {
9
+ [ExpertCategoryCategory.Red]: 'Красная',
10
+ [ExpertCategoryCategory.Yellow]: 'Желтая',
11
+ [ExpertCategoryCategory.Green]: 'Зеленая',
12
+ [ExpertCategoryCategory.NoCategory]: 'Нет категории',
13
+ },
14
+ };
@@ -14,6 +14,7 @@ export * from './Deal';
14
14
  export * from './DealCategorizedFile';
15
15
  export * from './DealParticipant';
16
16
  export * from './Debt';
17
+ export * from './ExpertCategory';
17
18
  export * from './File';
18
19
  export * from './GalleryImage';
19
20
  export * from './LeadAssignmentBlock';
@@ -645,6 +645,19 @@ export class Api {
645
645
  return api.updateExpertReviewRequest({ urlParams, body, headers, baseURL: await this.baseURL });
646
646
  };
647
647
 
648
+ // expertCategory
649
+
650
+ findExpertCategories = async (params: api.FindExpertCategoriesParams, headers: api.FindExpertCategoriesHeaders) => {
651
+ return api.findExpertCategoriesRequest({ params, headers, baseURL: await this.baseURL });
652
+ };
653
+
654
+ findExpertCategoryHistory = async (
655
+ params: api.FindExpertCategoryHistoryParams,
656
+ headers: api.FindExpertCategoryHistoryHeaders
657
+ ) => {
658
+ return api.findExpertCategoryHistoryRequest({ params, headers, baseURL: await this.baseURL });
659
+ };
660
+
648
661
  // file
649
662
 
650
663
  uploadFiles = async (body: api.UploadFilesBody, headers: api.UploadFilesHeaders) => {
@@ -0,0 +1,23 @@
1
+ import { User } from './User';
2
+
3
+ export enum ExpertCategoryExpertType {
4
+ NewExpert = 'new_expert',
5
+ ExperienceExpert = 'experience_expert',
6
+ }
7
+
8
+ export enum ExpertCategoryCategory {
9
+ Red = '1',
10
+ Yellow = '2',
11
+ Green = '3',
12
+ NoCategory = '4',
13
+ }
14
+
15
+ export type ExpertCategory = {
16
+ category: ExpertCategoryCategory;
17
+ cntDaysInCurrentCategory: number;
18
+ expert: Partial<User> & Required<Pick<User, 'id'>>;
19
+ expertType: ExpertCategoryExpertType;
20
+ id: number;
21
+ needAttention: boolean;
22
+ supervisor: Partial<User> & Required<Pick<User, 'id'>>;
23
+ };
@@ -25,6 +25,7 @@ export * from './DealParticipant';
25
25
  export * from './Debt';
26
26
  export * from './Event';
27
27
  export * from './EventRequest';
28
+ export * from './ExpertCategory';
28
29
  export * from './ExpertReview';
29
30
  export * from './File';
30
31
  export * from './GalleryImage';