-
Notifications
You must be signed in to change notification settings - Fork 0
/
BasisTheoryAtomicBanks.ts
59 lines (53 loc) · 1.64 KB
/
BasisTheoryAtomicBanks.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import type { AxiosTransformer } from 'axios';
import {
createRequestConfig,
dataExtractor,
transformAtomicRequestSnakeCase,
transformAtomicResponseCamelCase,
} from '@/common';
import type { BasisTheoryServiceOptions } from '@/service';
import { BasisTheoryService } from '@/service';
import { CrudBuilder } from '@/service/CrudBuilder';
import type {
AtomicBank,
CreateAtomicBank,
UpdateAtomicBank,
} from '@/types/models';
import type { PaginatedQuery, RequestOptions } from '@/types/sdk';
export const BasisTheoryAtomicBanks = new CrudBuilder(
class BasisTheoryAtomicBanks extends BasisTheoryService {
public constructor(options: BasisTheoryServiceOptions) {
const _options = {
...options,
};
// eslint-disable-next-line unicorn/prefer-spread
_options.transformRequest = ([] as AxiosTransformer[]).concat(
transformAtomicRequestSnakeCase,
options.transformRequest || []
);
// eslint-disable-next-line unicorn/prefer-spread
_options.transformResponse = ([] as AxiosTransformer[]).concat(
transformAtomicResponseCamelCase,
options.transformResponse || []
);
super(_options);
}
public update(
id: string,
request: UpdateAtomicBank,
options?: RequestOptions
): Promise<AtomicBank> {
return this.client
.patch(`/${id}`, request, createRequestConfig(options))
.then(dataExtractor);
}
}
)
.create<AtomicBank, CreateAtomicBank>()
.retrieve<AtomicBank>()
.delete()
.list<AtomicBank, PaginatedQuery>()
.build();
export type BasisTheoryAtomicBanks = InstanceType<
typeof BasisTheoryAtomicBanks
>;