@or-sdk/identifiers 0.25.0-beta.848.0 → 0.25.0
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.
- package/CHANGELOG.md +129 -0
- package/dist/cjs/__tests__/identifiers.spec.js +44 -0
- package/dist/cjs/__tests__/identifiers.spec.js.map +1 -0
- package/dist/cjs/constants.js +1 -2
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/identifiers.errors.js +46 -0
- package/dist/cjs/identifiers.errors.js.map +1 -0
- package/dist/cjs/{Identifiers.js → identifiers.js} +52 -82
- package/dist/cjs/identifiers.js.map +1 -0
- package/dist/cjs/index.js +2 -2
- package/dist/esm/__tests__/identifiers.spec.js +43 -0
- package/dist/esm/__tests__/identifiers.spec.js.map +1 -0
- package/dist/esm/constants.js +0 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/identifiers.errors.js +19 -0
- package/dist/esm/identifiers.errors.js.map +1 -0
- package/dist/esm/{Identifiers.js → identifiers.js} +46 -58
- package/dist/esm/identifiers.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/types/__tests__/identifiers.spec.d.ts +2 -0
- package/dist/types/__tests__/identifiers.spec.d.ts.map +1 -0
- package/dist/types/constants.d.ts +0 -1
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/{Identifiers.d.ts → identifiers.d.ts} +8 -10
- package/dist/types/identifiers.d.ts.map +1 -0
- package/dist/types/identifiers.errors.d.ts +13 -0
- package/dist/types/identifiers.errors.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/types.d.ts +9 -24
- package/dist/types/types.d.ts.map +1 -1
- package/package.json +12 -6
- package/src/__tests__/identifiers.spec.ts +59 -0
- package/src/constants.ts +0 -1
- package/src/identifiers.errors.ts +20 -0
- package/src/identifiers.ts +338 -0
- package/src/index.ts +1 -1
- package/src/types.ts +20 -42
- package/vitest.config.js +24 -0
- package/dist/cjs/Identifiers.js.map +0 -1
- package/dist/esm/Identifiers.js.map +0 -1
- package/dist/types/Identifiers.d.ts.map +0 -1
- package/src/Identifiers.ts +0 -270
package/src/Identifiers.ts
DELETED
|
@@ -1,270 +0,0 @@
|
|
|
1
|
-
import { Base, List, makeList } from '@or-sdk/base';
|
|
2
|
-
import { SdkApi } from '@or-sdk/sdk-api';
|
|
3
|
-
import { SERVICE_KEY } from './constants';
|
|
4
|
-
import {
|
|
5
|
-
BuyIdentifierResponse, CreateIdentifierParams, DeleteIdentifierV2, Identifier, IdentifierGroup, IdentifierProvider, IdentifiersConfig, IdentifierV2, ListIdentifiersV2, ListProvidersResponse, ObtainableIdentifier, ObtainableIdentifierRequestParams, SingleIdentifier,
|
|
6
|
-
} from './types';
|
|
7
|
-
import {
|
|
8
|
-
extractIdentifierProvidersResponse, getGroupIdentifiers, getSingleIdentifiers, makeIdentifierGroups,
|
|
9
|
-
} from './utils';
|
|
10
|
-
|
|
11
|
-
export class Identifiers extends Base {
|
|
12
|
-
private readonly sdkApi: SdkApi;
|
|
13
|
-
|
|
14
|
-
constructor(params: IdentifiersConfig) {
|
|
15
|
-
const { token, discoveryUrl, accountId, sdkUrl, dataHubUrl } = params;
|
|
16
|
-
super({
|
|
17
|
-
token,
|
|
18
|
-
discoveryUrl,
|
|
19
|
-
serviceKey: SERVICE_KEY,
|
|
20
|
-
accountId,
|
|
21
|
-
serviceUrl: dataHubUrl,
|
|
22
|
-
});
|
|
23
|
-
this.sdkApi = new SdkApi({
|
|
24
|
-
token,
|
|
25
|
-
discoveryUrl,
|
|
26
|
-
accountId,
|
|
27
|
-
sdkUrl,
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
async init() {
|
|
32
|
-
await this.sdkApi.init();
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
private async fetchIdentifiers(id?: Identifier['id'], groupDetails = true): Promise<Identifier[]> {
|
|
36
|
-
const params = {
|
|
37
|
-
fullInfo: true,
|
|
38
|
-
groupDetails,
|
|
39
|
-
identifier: id ? id : undefined,
|
|
40
|
-
... this.sdkApi.isCrossAccount ? { accountId: this.sdkApi.currentAccountId } : {},
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
return this.sdkApi.makeRequest<Identifier[]>({
|
|
44
|
-
method: 'GET',
|
|
45
|
-
route: '/http/provider/identifiers',
|
|
46
|
-
params,
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* List identifiers
|
|
52
|
-
* ```typescript
|
|
53
|
-
* const identifierList = await identifiers.listIdentifiers();
|
|
54
|
-
* ```
|
|
55
|
-
*/
|
|
56
|
-
public async listIdentifiers(): Promise<List<SingleIdentifier>> {
|
|
57
|
-
const result = await this.fetchIdentifiers();
|
|
58
|
-
|
|
59
|
-
return makeList<SingleIdentifier>(getSingleIdentifiers(result));
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* List identifier groups
|
|
64
|
-
* ```typescript
|
|
65
|
-
* const identifierGroupList = await identifiers.listIdentifierGroups();
|
|
66
|
-
* ```
|
|
67
|
-
*/
|
|
68
|
-
public async listIdentifierGroups(): Promise<List<IdentifierGroup>> {
|
|
69
|
-
const result = await this.fetchIdentifiers();
|
|
70
|
-
|
|
71
|
-
return makeList<IdentifierGroup>(makeIdentifierGroups(result));
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Get identifier
|
|
76
|
-
* ```typescript
|
|
77
|
-
* const identifier = await identifiers.getIdentifier('identifier-id');
|
|
78
|
-
* ```
|
|
79
|
-
*/
|
|
80
|
-
public async getIdentifier(id: Identifier['id']): Promise<SingleIdentifier> {
|
|
81
|
-
const result = await this.fetchIdentifiers(id, false);
|
|
82
|
-
const singleIdentifiers = getSingleIdentifiers(result);
|
|
83
|
-
|
|
84
|
-
if (singleIdentifiers.length === 0) {
|
|
85
|
-
throw `Id ${id} doesn't belong to an identifier`;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
return singleIdentifiers[0];
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Get identifier group
|
|
93
|
-
* ```typescript
|
|
94
|
-
* const identifierGroup = await identifiers.getIdentifierGroup('identifier-group-id');
|
|
95
|
-
* ```
|
|
96
|
-
*/
|
|
97
|
-
public async getIdentifierGroup(id: Identifier['id']): Promise<IdentifierGroup> {
|
|
98
|
-
const result = await this.fetchIdentifiers(id);
|
|
99
|
-
const groupIdentifiers = getGroupIdentifiers(result);
|
|
100
|
-
|
|
101
|
-
if (groupIdentifiers.length === 0) {
|
|
102
|
-
throw `Id ${id} doesn't belong to an identifier group`;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
return makeIdentifierGroups(result)[0];
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* List obtainable identifiers
|
|
110
|
-
* ```typescript
|
|
111
|
-
* const obtainableIdentifiers = await identifiers.listObtainableIdentifiers({
|
|
112
|
-
* country: 'US',
|
|
113
|
-
* type: 'local',
|
|
114
|
-
* limit: 30,
|
|
115
|
-
* pattern: 'pattern',
|
|
116
|
-
* patternType: 'starts',
|
|
117
|
-
* capabilities: ['voice','sms','mms'],
|
|
118
|
-
* });
|
|
119
|
-
* ```
|
|
120
|
-
*/
|
|
121
|
-
public async listObtainableIdentifiers(params: ObtainableIdentifierRequestParams = {}): Promise<List<ObtainableIdentifier>> {
|
|
122
|
-
const result = await this.sdkApi.makeRequest<ObtainableIdentifier[]>({
|
|
123
|
-
method: 'GET',
|
|
124
|
-
route: '/http/provider/obtainable-identifiers',
|
|
125
|
-
params: {
|
|
126
|
-
...params,
|
|
127
|
-
... this.sdkApi.isCrossAccount ? { accountId: this.sdkApi.currentAccountId } : {},
|
|
128
|
-
},
|
|
129
|
-
});
|
|
130
|
-
|
|
131
|
-
return makeList<ObtainableIdentifier>(result);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Remove identifiers
|
|
136
|
-
* ```typescript
|
|
137
|
-
* await identifiers.releaseIdentifier('identifier-id');
|
|
138
|
-
* ```
|
|
139
|
-
*/
|
|
140
|
-
public async releaseIdentifier(id: Identifier['id']): Promise<void> {
|
|
141
|
-
const params = {
|
|
142
|
-
identifier: id,
|
|
143
|
-
... this.sdkApi.isCrossAccount ? { accountId: this.sdkApi.currentAccountId } : {},
|
|
144
|
-
};
|
|
145
|
-
|
|
146
|
-
await this.sdkApi.makeRequest<void>({
|
|
147
|
-
method: 'DELETE',
|
|
148
|
-
route: '/http/provider/identifiers',
|
|
149
|
-
params,
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* Buy identifiers
|
|
155
|
-
* ```typescript
|
|
156
|
-
* const identifiers = await identifiers.buyIdentifier([ { provider: 'providerName', phoneNumber: 'phoneNumber' } ]);
|
|
157
|
-
* ```
|
|
158
|
-
*/
|
|
159
|
-
public async buyIdentifier(identifiers: ObtainableIdentifier | ObtainableIdentifier[]): Promise<BuyIdentifierResponse> {
|
|
160
|
-
const data = {
|
|
161
|
-
identifiers: Array.isArray(identifiers) ? identifiers : [identifiers],
|
|
162
|
-
... this.sdkApi.isCrossAccount ? { accountId: this.sdkApi.currentAccountId } : {},
|
|
163
|
-
};
|
|
164
|
-
|
|
165
|
-
return this.sdkApi.makeRequest<BuyIdentifierResponse>({
|
|
166
|
-
method: 'POST',
|
|
167
|
-
route: '/http/provider/identifiers',
|
|
168
|
-
data,
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* Create new provider
|
|
174
|
-
* ```typescript
|
|
175
|
-
* await identifiers.createProvider('providerName', { settingKey: 'settingValue' });
|
|
176
|
-
* ```
|
|
177
|
-
*/
|
|
178
|
-
public async createProvider(provider: IdentifierProvider['name'], settings: IdentifierProvider['settings'] = {}): Promise<void> {
|
|
179
|
-
const data = {
|
|
180
|
-
provider,
|
|
181
|
-
settings,
|
|
182
|
-
... this.sdkApi.isCrossAccount ? { accountId: this.sdkApi.currentAccountId } : {},
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
await this.sdkApi.makeRequest<void>({
|
|
186
|
-
method: 'POST',
|
|
187
|
-
route: '/http/provider/identifier-providers',
|
|
188
|
-
data,
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
/**
|
|
193
|
-
* List providers
|
|
194
|
-
* ```typescript
|
|
195
|
-
* const providers = await identifiers.listProviders();
|
|
196
|
-
* ```
|
|
197
|
-
*/
|
|
198
|
-
public async listProviders(): Promise<IdentifierProvider[]> {
|
|
199
|
-
const params = this.sdkApi.isCrossAccount ? { accountId: this.sdkApi.currentAccountId } : {};
|
|
200
|
-
|
|
201
|
-
const data = await this.sdkApi.makeRequest<ListProvidersResponse>({
|
|
202
|
-
method: 'GET',
|
|
203
|
-
route: '/http/provider/identifier-providers',
|
|
204
|
-
params,
|
|
205
|
-
});
|
|
206
|
-
|
|
207
|
-
return extractIdentifierProvidersResponse(data);
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
/**
|
|
211
|
-
* Delete provider
|
|
212
|
-
* ```typescript
|
|
213
|
-
* await identifiers.deleteProvider('providerName');
|
|
214
|
-
* ```
|
|
215
|
-
*/
|
|
216
|
-
public async deleteProvider(provider: IdentifierProvider['name']): Promise<void> {
|
|
217
|
-
const params = {
|
|
218
|
-
provider,
|
|
219
|
-
... this.sdkApi.isCrossAccount ? { accountId: this.sdkApi.currentAccountId } : {},
|
|
220
|
-
};
|
|
221
|
-
|
|
222
|
-
await this.sdkApi.makeRequest<void>({
|
|
223
|
-
method: 'DELETE',
|
|
224
|
-
route: '/http/provider/identifier-providers',
|
|
225
|
-
params,
|
|
226
|
-
});
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
/**
|
|
230
|
-
* Create identifierV2
|
|
231
|
-
* ```typescript
|
|
232
|
-
* const id = await identifiers.createIdentifierV2({data, name, type});
|
|
233
|
-
* ```
|
|
234
|
-
*/
|
|
235
|
-
public async createIdentifierV2(data: CreateIdentifierParams): Promise<null> {
|
|
236
|
-
return this.callApiV2({
|
|
237
|
-
route: `/identifiers/${encodeURIComponent(data.name)}`,
|
|
238
|
-
method: 'post',
|
|
239
|
-
data,
|
|
240
|
-
});
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
/**
|
|
244
|
-
* Delete identifierV2
|
|
245
|
-
* ```typescript
|
|
246
|
-
* const id = await identifiers.deleteIdentifierV2({name});
|
|
247
|
-
* ```
|
|
248
|
-
*/
|
|
249
|
-
public async deleteIdentifierV2(data: DeleteIdentifierV2): Promise<null> {
|
|
250
|
-
return this.callApiV2({
|
|
251
|
-
route: `/identifiers/${encodeURIComponent(data.name)}`,
|
|
252
|
-
method: 'delete',
|
|
253
|
-
data,
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
/**
|
|
258
|
-
* List identifiersV2
|
|
259
|
-
* ```typescript
|
|
260
|
-
* const id = await identifiers.listIdentifiersV2({query, projection, sandbox, group, limit, offset, order});
|
|
261
|
-
* ```
|
|
262
|
-
*/
|
|
263
|
-
public async listIdentifiersV2(params: ListIdentifiersV2): Promise<IdentifierV2[]> {
|
|
264
|
-
return this.callApiV2({
|
|
265
|
-
route: '/identifiers',
|
|
266
|
-
method: 'get',
|
|
267
|
-
params,
|
|
268
|
-
});
|
|
269
|
-
}
|
|
270
|
-
}
|