-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcommon.ts
150 lines (137 loc) · 7.8 KB
/
common.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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
/* tslint:disable */
/* eslint-disable */
/**
* Digiseg API
* ### Digiseg API documentation # Introduction This API let you harness the power of Digisegs powerful and tracking-free segmentation engine. Audiences by Digiseg are available in 50+ countries, probablistically mapping neighborhood characteristics to the IP addresses observed on the internet - Household targeting & measurement for the post-cookie world. ## Developer SDKs In addition to using these APIs directly through any HTTP client, we provide a set of API client SDKs for popular programming languages: <div class=\"api-clients\"> <a class=\"api-client-box\" href=\"https://github.com/digiseg-labs/api-client-python\"> <i class=\"api-client-sdk-logo devicon-python-plain\"></i> <p>API client for Python</p> </a> <a class=\"api-client-box\" href=\"https://github.com/digiseg-labs/api-client-ts\"> <i class=\"api-client-sdk-logo devicon-typescript-plain\"></i> <p>API client for TypeScript</p> </a> <a class=\"api-client-box\" href=\"https://github.com/digiseg-labs/api-client-go\"> <i class=\"api-client-sdk-logo devicon-go-original-wordmark\"></i> <p>API client for Go</p> </a> </div> <div class=\"api-clients-breaker\" /> ## Audience taxonomy Digiseg audiences are grouped into private and business audiences. In each group there are categories that then contain the audiences. The API endpoints that communicate audiences and household characteristics, audience codes are being used. The following table can be used as a reference for audience codes. Note that Digiseg will at times update names of audiences for purposes of internationalization, clarity or other such purposes - but the codes will remain as-is and should be considered a stable point of reference for the audience. | Group | Category | Audience Code | Audience Name | |-------|----------|---------------|---------------| | private | home_type | a1 | Apartment | | | | a2 | House | | | savings | b1 | No Savings | | | | b2 | Smaller Savings | | | | b3 | Larger Savings | | | lifecycle | c1 | Young couples and singles | | | | c2 | Early family life | | | | c3 | Middle-aged families | | | | c4 | Mature families | | | | c5 | Pensioners | | | cars | d1 | No cars | | | | d2 | 1 car | | | | d3 | 2 or more cars | | | children | e1 | No children | | | | e2 | 1 child | | | | e3 | 2 or more children | | | education | f1 | Basic | | | | f2 | Medium | | | | f3 | Higher | | | neighbourhood_type | g1 | Countryside | | | | g2 | Village | | | | g3 | Suburban | | | | g4 | City | | | income | h1 | Lowest 20% | | | | h2 | Lowest 20-40% | | | | h3 | Middle 40-60% | | | | h4 | Highest 60-80% | | | | h5 | Top 20% | | | home_ownership | j1 | Rent | | | | j2 | Own | | | building_age | k1 | Pre 1945 | | | | k2 | 1945-1989 | | | | k3 | 1990 until today | | | living_space | l1 | Small | | | | l2 | Medium | | | | l3 | Large | | | tech_level | n1 | Basic | | | | n2 | Medium | | | | n3 | High | | business | size | ba1 | Small Business | | | | ba2 | Medium Business | | | | ba3 | Larger Business | There is also an interactive [Audience builder](https://digiseg.io/cookieless-audience-builder/) which lets you discover the targeting reach and power of combining various household characteristics into composite audiences.
*
* The version of the OpenAPI document: 1.0.0
* Contact: support@digiseg.io
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import type { Configuration } from "./configuration";
import type { RequestArgs } from "./base";
import type { AxiosInstance, AxiosResponse } from 'axios';
import { RequiredError } from "./base";
/**
*
* @export
*/
export const DUMMY_BASE_URL = 'https://example.com'
/**
*
* @throws {RequiredError}
* @export
*/
export const assertParamExists = function (functionName: string, paramName: string, paramValue: unknown) {
if (paramValue === null || paramValue === undefined) {
throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`);
}
}
/**
*
* @export
*/
export const setApiKeyToObject = async function (object: any, keyParamName: string, configuration?: Configuration) {
if (configuration && configuration.apiKey) {
const localVarApiKeyValue = typeof configuration.apiKey === 'function'
? await configuration.apiKey(keyParamName)
: await configuration.apiKey;
object[keyParamName] = localVarApiKeyValue;
}
}
/**
*
* @export
*/
export const setBasicAuthToObject = function (object: any, configuration?: Configuration) {
if (configuration && (configuration.username || configuration.password)) {
object["auth"] = { username: configuration.username, password: configuration.password };
}
}
/**
*
* @export
*/
export const setBearerAuthToObject = async function (object: any, configuration?: Configuration) {
if (configuration && configuration.accessToken) {
const accessToken = typeof configuration.accessToken === 'function'
? await configuration.accessToken()
: await configuration.accessToken;
object["Authorization"] = "Bearer " + accessToken;
}
}
/**
*
* @export
*/
export const setOAuthToObject = async function (object: any, name: string, scopes: string[], configuration?: Configuration) {
if (configuration && configuration.accessToken) {
const localVarAccessTokenValue = typeof configuration.accessToken === 'function'
? await configuration.accessToken(name, scopes)
: await configuration.accessToken;
object["Authorization"] = "Bearer " + localVarAccessTokenValue;
}
}
function setFlattenedQueryParams(urlSearchParams: URLSearchParams, parameter: any, key: string = ""): void {
if (parameter == null) return;
if (typeof parameter === "object") {
if (Array.isArray(parameter)) {
(parameter as any[]).forEach(item => setFlattenedQueryParams(urlSearchParams, item, key));
}
else {
Object.keys(parameter).forEach(currentKey =>
setFlattenedQueryParams(urlSearchParams, parameter[currentKey], `${key}${key !== '' ? '.' : ''}${currentKey}`)
);
}
}
else {
if (urlSearchParams.has(key)) {
urlSearchParams.append(key, parameter);
}
else {
urlSearchParams.set(key, parameter);
}
}
}
/**
*
* @export
*/
export const setSearchParams = function (url: URL, ...objects: any[]) {
const searchParams = new URLSearchParams(url.search);
setFlattenedQueryParams(searchParams, objects);
url.search = searchParams.toString();
}
/**
*
* @export
*/
export const serializeDataIfNeeded = function (value: any, requestOptions: any, configuration?: Configuration) {
const nonString = typeof value !== 'string';
const needsSerialization = nonString && configuration && configuration.isJsonMime
? configuration.isJsonMime(requestOptions.headers['Content-Type'])
: nonString;
return needsSerialization
? JSON.stringify(value !== undefined ? value : {})
: (value || "");
}
/**
*
* @export
*/
export const toPathString = function (url: URL) {
return url.pathname + url.search + url.hash
}
/**
*
* @export
*/
export const createRequestFunction = function (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) {
return <T = unknown, R = AxiosResponse<T>>(axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs = {...axiosArgs.options, url: (axios.defaults.baseURL ? '' : configuration?.basePath ?? basePath) + axiosArgs.url};
return axios.request<T, R>(axiosRequestArgs);
};
}