1- import axios , { AxiosInstance } from 'axios' ;
2-
3- import { extractDataFromResponse } from '../../smsapi/httpClient/extractDataFromResponse' ;
41import { BaseModule } from '../baseModule' ;
52import { ApiCollection } from '../../types/ApiCollection' ;
63import { mapKeys } from '../../helpers/mapKeys' ;
74import { snakeCase } from '../../helpers/snakeCase' ;
5+ import { HttpClient } from '../../smsapi/httpClient' ;
86
97import { Contact } from './types/Contact' ;
108import { NewContact } from './types/NewContact' ;
@@ -18,45 +16,31 @@ import { UpdateContact } from './types/UpdateContact';
1816import { Fields } from './modules/fields' ;
1917
2018export class Contacts extends BaseModule {
21- private contactHttpClient : AxiosInstance ;
22-
2319 public fields : Fields ;
2420 public groups : Groups ;
2521
26- constructor ( httpClient : AxiosInstance ) {
22+ constructor ( httpClient : HttpClient ) {
2723 super ( httpClient ) ;
2824
29- this . contactHttpClient = axios . create ( {
30- adapter : httpClient . defaults . adapter ,
31- baseURL : httpClient . defaults . baseURL ,
32- headers : httpClient . defaults . headers ,
33- } ) ;
34-
35- this . contactHttpClient . interceptors . request . use ( prepareParamsForRequest ) ;
36- this . contactHttpClient . interceptors . response . use ( formatResponseDates ) ;
37- this . contactHttpClient . interceptors . response . use ( extractDataFromResponse ) ;
25+ this . httpClient . addRequestInterceptor ( prepareParamsForRequest ) ;
26+ this . httpClient . addResponseInterceptor ( formatResponseDates ) ;
3827
39- this . fields = new Fields ( this . contactHttpClient ) ;
40- this . groups = new Groups ( this . contactHttpClient ) ;
28+ this . fields = new Fields ( this . httpClient ) ;
29+ this . groups = new Groups ( this . httpClient ) ;
4130 }
4231
4332 async get ( params ?: GetContactsQueryParams ) : Promise < ApiCollection < Contact > > {
44- return await this . contactHttpClient . get <
45- ApiCollection < Contact > ,
46- ApiCollection < Contact >
47- > ( '/contacts' , {
33+ return await this . httpClient . get < ApiCollection < Contact > > ( '/contacts' , {
4834 params,
4935 } ) ;
5036 }
5137
5238 async getById ( contactId : string ) : Promise < Contact > {
53- return await this . contactHttpClient . get < Contact , Contact > (
54- `/contacts/${ contactId } ` ,
55- ) ;
39+ return await this . httpClient . get < Contact > ( `/contacts/${ contactId } ` ) ;
5640 }
5741
5842 async create ( phoneNumber : string , details ?: NewContact ) : Promise < Contact > {
59- return await this . contactHttpClient . post < Contact , Contact > ( '/contacts' , {
43+ return await this . httpClient . post < Contact > ( '/contacts' , {
6044 phone_number : phoneNumber ,
6145 ...this . formatContactDetails ( details || { } ) ,
6246 } ) ;
@@ -66,27 +50,23 @@ export class Contacts extends BaseModule {
6650 contactId : string ,
6751 updateContact : UpdateContact ,
6852 ) : Promise < Contact > {
69- return await this . contactHttpClient . put < Contact , Contact > (
70- `/contacts/${ contactId } ` ,
71- {
72- ...this . formatContactDetails ( updateContact || { } ) ,
73- } ,
74- ) ;
53+ return await this . httpClient . put < Contact > ( `/contacts/${ contactId } ` , {
54+ ...this . formatContactDetails ( updateContact || { } ) ,
55+ } ) ;
7556 }
7657
7758 async remove ( contactId : string ) : Promise < void > {
78- await this . contactHttpClient . delete ( `/contacts/${ contactId } ` ) ;
59+ await this . httpClient . delete ( `/contacts/${ contactId } ` ) ;
7960 }
8061
8162 async getGroups ( contactId : string ) : Promise < ApiCollection < Group > > {
82- return await this . contactHttpClient . get <
83- ApiCollection < Group > ,
84- ApiCollection < Group >
85- > ( `/contacts/${ contactId } /groups` ) ;
63+ return await this . httpClient . get < ApiCollection < Group > > (
64+ `/contacts/${ contactId } /groups` ,
65+ ) ;
8666 }
8767
8868 async getGroupById ( contactId : string , groupId : string ) : Promise < Group > {
89- return await this . contactHttpClient . get < Group , Group > (
69+ return await this . httpClient . get < Group > (
9070 `/contacts/${ contactId } /groups/${ groupId } ` ,
9171 ) ;
9272 }
@@ -95,19 +75,16 @@ export class Contacts extends BaseModule {
9575 contactId : string ,
9676 groupId : string ,
9777 ) : Promise < ApiCollection < Group > > {
98- return await this . contactHttpClient . put <
99- ApiCollection < Group > ,
100- ApiCollection < Group >
101- > ( `/contacts/${ contactId } /groups/${ groupId } ` ) ;
78+ return await this . httpClient . put < ApiCollection < Group > > (
79+ `/contacts/${ contactId } /groups/${ groupId } ` ,
80+ ) ;
10281 }
10382
10483 async unpinContactFromGroup (
10584 contactId : string ,
10685 groupId : string ,
10786 ) : Promise < void > {
108- await this . contactHttpClient . delete (
109- `/contacts/${ contactId } /groups/${ groupId } ` ,
110- ) ;
87+ await this . httpClient . delete ( `/contacts/${ contactId } /groups/${ groupId } ` ) ;
11188 }
11289
11390 private formatContactDetails ( details : NewContact ) : Record < string , unknown > {
0 commit comments