-
Notifications
You must be signed in to change notification settings - Fork 28
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: adds application integrations api client (#1125)
## Features - Adds Application Integrations API client Co-authored-by: nguyentoanit <[email protected]> Co-authored-by: Toan Nguyen <[email protected]>
- Loading branch information
1 parent
ee442e8
commit 51758f9
Showing
8 changed files
with
788 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
import { AppIntegrationsApi, Configuration } from '../api-models/application-integrations-api-model' | ||
import { ApiClientHelpers } from '../helpers' | ||
import { DEFAULT_API_BASE_PATH } from '../types' | ||
import { APIConfigurationParameters } from '../types/api-clients/api-configuration-parameters' | ||
|
||
export class ApplicationIntegrationsApiClient extends AppIntegrationsApi { | ||
constructor(parameters: APIConfigurationParameters) { | ||
const axios = ApiClientHelpers.getAxiosInstance(parameters) | ||
|
||
const configuration = new Configuration(parameters) | ||
|
||
super(configuration, DEFAULT_API_BASE_PATH, axios) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
439 changes: 439 additions & 0 deletions
439
src/api-models/application-integrations-api-model/api.ts
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
/* tslint:disable */ | ||
/* eslint-disable */ | ||
/** | ||
* The Selling Partner API for third party application integrations. | ||
* With the AppIntegrations API v2024-04-01, you can send notifications to Amazon Selling Partners and display the notifications in Seller Central. | ||
* | ||
* The version of the OpenAPI document: 2024-04-01 | ||
* | ||
* | ||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). | ||
* https://openapi-generator.tech | ||
* Do not edit the class manually. | ||
*/ | ||
|
||
|
||
import { Configuration } from "./configuration"; | ||
// Some imports not used depending on template conditions | ||
// @ts-ignore | ||
import globalAxios, { AxiosPromise, AxiosInstance } from 'axios'; | ||
|
||
export const BASE_PATH = "https://sellingpartnerapi-na.amazon.com".replace(/\/+$/, ""); | ||
|
||
/** | ||
* | ||
* @export | ||
*/ | ||
export const COLLECTION_FORMATS = { | ||
csv: ",", | ||
ssv: " ", | ||
tsv: "\t", | ||
pipes: "|", | ||
}; | ||
|
||
/** | ||
* | ||
* @export | ||
* @interface RequestArgs | ||
*/ | ||
export interface RequestArgs { | ||
url: string; | ||
options: any; | ||
} | ||
|
||
/** | ||
* | ||
* @export | ||
* @class BaseAPI | ||
*/ | ||
export class BaseAPI { | ||
protected configuration: Configuration | undefined; | ||
|
||
constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) { | ||
if (configuration) { | ||
this.configuration = configuration; | ||
this.basePath = configuration.basePath || this.basePath; | ||
} | ||
} | ||
}; | ||
|
||
/** | ||
* | ||
* @export | ||
* @class RequiredError | ||
* @extends {Error} | ||
*/ | ||
export class RequiredError extends Error { | ||
name: "RequiredError" = "RequiredError"; | ||
constructor(public field: string, msg?: string) { | ||
super(msg); | ||
} | ||
} |
131 changes: 131 additions & 0 deletions
131
src/api-models/application-integrations-api-model/common.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,131 @@ | ||
/* tslint:disable */ | ||
/* eslint-disable */ | ||
/** | ||
* The Selling Partner API for third party application integrations. | ||
* With the AppIntegrations API v2024-04-01, you can send notifications to Amazon Selling Partners and display the notifications in Seller Central. | ||
* | ||
* The version of the OpenAPI document: 2024-04-01 | ||
* | ||
* | ||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). | ||
* https://openapi-generator.tech | ||
* Do not edit the class manually. | ||
*/ | ||
|
||
|
||
import { Configuration } from "./configuration"; | ||
import { RequiredError, RequestArgs } from "./base"; | ||
import { AxiosInstance } from 'axios'; | ||
|
||
/** | ||
* | ||
* @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; | ||
} | ||
} | ||
|
||
/** | ||
* | ||
* @export | ||
*/ | ||
export const setSearchParams = function (url: URL, ...objects: any[]) { | ||
const searchParams = new URLSearchParams(url.search); | ||
for (const object of objects) { | ||
for (const key in object) { | ||
searchParams.set(key, object[key]); | ||
} | ||
} | ||
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 (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { | ||
const axiosRequestArgs = {...axiosArgs.options, url: (configuration?.basePath || basePath) + axiosArgs.url}; | ||
return axios.request(axiosRequestArgs); | ||
}; | ||
} |
101 changes: 101 additions & 0 deletions
101
src/api-models/application-integrations-api-model/configuration.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
/* tslint:disable */ | ||
/* eslint-disable */ | ||
/** | ||
* The Selling Partner API for third party application integrations. | ||
* With the AppIntegrations API v2024-04-01, you can send notifications to Amazon Selling Partners and display the notifications in Seller Central. | ||
* | ||
* The version of the OpenAPI document: 2024-04-01 | ||
* | ||
* | ||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). | ||
* https://openapi-generator.tech | ||
* Do not edit the class manually. | ||
*/ | ||
|
||
|
||
export interface ConfigurationParameters { | ||
apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>); | ||
username?: string; | ||
password?: string; | ||
accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>); | ||
basePath?: string; | ||
baseOptions?: any; | ||
formDataCtor?: new () => any; | ||
} | ||
|
||
export class Configuration { | ||
/** | ||
* parameter for apiKey security | ||
* @param name security name | ||
* @memberof Configuration | ||
*/ | ||
apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>); | ||
/** | ||
* parameter for basic security | ||
* | ||
* @type {string} | ||
* @memberof Configuration | ||
*/ | ||
username?: string; | ||
/** | ||
* parameter for basic security | ||
* | ||
* @type {string} | ||
* @memberof Configuration | ||
*/ | ||
password?: string; | ||
/** | ||
* parameter for oauth2 security | ||
* @param name security name | ||
* @param scopes oauth2 scope | ||
* @memberof Configuration | ||
*/ | ||
accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>); | ||
/** | ||
* override base path | ||
* | ||
* @type {string} | ||
* @memberof Configuration | ||
*/ | ||
basePath?: string; | ||
/** | ||
* base options for axios calls | ||
* | ||
* @type {any} | ||
* @memberof Configuration | ||
*/ | ||
baseOptions?: any; | ||
/** | ||
* The FormData constructor that will be used to create multipart form data | ||
* requests. You can inject this here so that execution environments that | ||
* do not support the FormData class can still run the generated client. | ||
* | ||
* @type {new () => FormData} | ||
*/ | ||
formDataCtor?: new () => any; | ||
|
||
constructor(param: ConfigurationParameters = {}) { | ||
this.apiKey = param.apiKey; | ||
this.username = param.username; | ||
this.password = param.password; | ||
this.accessToken = param.accessToken; | ||
this.basePath = param.basePath; | ||
this.baseOptions = param.baseOptions; | ||
this.formDataCtor = param.formDataCtor; | ||
} | ||
|
||
/** | ||
* Check if the given MIME is a JSON MIME. | ||
* JSON MIME examples: | ||
* application/json | ||
* application/json; charset=UTF8 | ||
* APPLICATION/JSON | ||
* application/vnd.company+json | ||
* @param mime - MIME (Multipurpose Internet Mail Extensions) | ||
* @return True if the given MIME is JSON, false otherwise. | ||
*/ | ||
public isJsonMime(mime: string): boolean { | ||
const jsonMime: RegExp = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i'); | ||
return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json'); | ||
} | ||
} |
18 changes: 18 additions & 0 deletions
18
src/api-models/application-integrations-api-model/index.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
/* tslint:disable */ | ||
/* eslint-disable */ | ||
/** | ||
* The Selling Partner API for third party application integrations. | ||
* With the AppIntegrations API v2024-04-01, you can send notifications to Amazon Selling Partners and display the notifications in Seller Central. | ||
* | ||
* The version of the OpenAPI document: 2024-04-01 | ||
* | ||
* | ||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). | ||
* https://openapi-generator.tech | ||
* Do not edit the class manually. | ||
*/ | ||
|
||
|
||
export * from "./api"; | ||
export * from "./configuration"; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters