Skip to content

Commit

Permalink
feat: adds application integrations api client (#1125)
Browse files Browse the repository at this point in the history
## Features

- Adds Application Integrations API client

Co-authored-by: nguyentoanit <[email protected]>
Co-authored-by: Toan Nguyen <[email protected]>
  • Loading branch information
3 people authored Oct 1, 2024
1 parent ee442e8 commit 51758f9
Show file tree
Hide file tree
Showing 8 changed files with 788 additions and 0 deletions.
14 changes: 14 additions & 0 deletions src/api-clients/application-integrations-api-client.ts
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)
}
}
1 change: 1 addition & 0 deletions src/api-clients/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
export * from './amazon-warehousing-and-distribution-client'
export * from './aplus-content-api-client'
export * from './application-integrations-api-client'
export * from './application-management-api-client'
export * from './catalog-items-api-client'
export * from './catalog-items-api-client-v20201201'
Expand Down
439 changes: 439 additions & 0 deletions src/api-models/application-integrations-api-model/api.ts

Large diffs are not rendered by default.

71 changes: 71 additions & 0 deletions src/api-models/application-integrations-api-model/base.ts
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 src/api-models/application-integrations-api-model/common.ts
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 src/api-models/application-integrations-api-model/configuration.ts
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 src/api-models/application-integrations-api-model/index.ts
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";

13 changes: 13 additions & 0 deletions src/api-models/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,19 @@ export {
AplusContentApiUpdateContentDocumentRequest as AplusContentApiModelAplusContentApiUpdateContentDocumentRequest,
AplusContentApiValidateContentDocumentAsinRelationsRequest as AplusContentApiModelAplusContentApiValidateContentDocumentAsinRelationsRequest,
} from './aplus-content-api-model'
export {
DeleteNotificationsRequestDeletionReasonEnum as ApplicationIntegrationsApiModelDeleteNotificationsRequestDeletionReasonEnum,
RecordActionFeedbackRequestFeedbackActionCodeEnum as ApplicationIntegrationsApiModelRecordActionFeedbackRequestFeedbackActionCodeEnum,
CreateNotificationRequest as ApplicationIntegrationsApiModelCreateNotificationRequest,
CreateNotificationResponse as ApplicationIntegrationsApiModelCreateNotificationResponse,
DeleteNotificationsRequest as ApplicationIntegrationsApiModelDeleteNotificationsRequest,
ErrorList as ApplicationIntegrationsApiModelErrorList,
ModelError as ApplicationIntegrationsApiModelModelError,
RecordActionFeedbackRequest as ApplicationIntegrationsApiModelRecordActionFeedbackRequest,
AppIntegrationsApiCreateNotificationRequest as ApplicationIntegrationsApiModelAppIntegrationsApiCreateNotificationRequest,
AppIntegrationsApiDeleteNotificationsRequest as ApplicationIntegrationsApiModelAppIntegrationsApiDeleteNotificationsRequest,
AppIntegrationsApiRecordActionFeedbackRequest as ApplicationIntegrationsApiModelAppIntegrationsApiRecordActionFeedbackRequest,
} from './application-integrations-api-model'
export {
ErrorList as ApplicationManagementApiModelErrorList,
ModelError as ApplicationManagementApiModelModelError,
Expand Down

0 comments on commit 51758f9

Please sign in to comment.