/
convert.ts
34 lines (30 loc) · 1.12 KB
/
convert.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
import { ApiRequestSettings, makeApiRequest } from '../../makeApiRequest'
import { storeValueToString } from '../../tools/storeValueToString'
import { ConversionOptions } from '../../types/ConversionOptions'
import { ConversionResponse } from '../../types/ConversionResponse'
import { ConversionResult } from '../../types/ConversionResult'
import { ConversionType } from '../../types/ConversionType'
import { ValueOf } from '../../types/ValueOf'
import { handleApiRequest } from '../handleApiRequest'
export async function convert<T extends ValueOf<typeof ConversionType>>(
options: ConversionOptions<T>,
userSettings: ApiRequestSettings
): Promise<ConversionResponse<ConversionResult[T]>> {
const isDocument = options.type === ConversionType.DOCUMENT
const body = {
paths: options.paths,
store: storeValueToString(options.store)
}
if (isDocument) {
body['save_in_group'] = options?.saveInGroup?.toString()
}
const apiRequest = await makeApiRequest(
{
method: 'POST',
path: `/convert/${options.type}/`,
body
},
userSettings
)
return handleApiRequest({ apiRequest, okCodes: [200] })
}