195 lines
5.9 KiB
TypeScript
195 lines
5.9 KiB
TypeScript
/* tslint:disable */
|
|
/* eslint-disable */
|
|
/**
|
|
* IDMesh-Dev
|
|
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
|
|
*
|
|
* The version of the OpenAPI document: 1.0.0
|
|
*
|
|
*
|
|
* 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";
|
|
import { SDKConfig } from "./base";
|
|
import { AxiosRequestConfig } from "axios";
|
|
import * as sm3 from "sm3";
|
|
|
|
/**
|
|
*
|
|
* @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
|
|
}
|
|
|
|
const randomStr = (len: number) => {
|
|
if (!Number.isInteger(len)) {
|
|
return 'due';
|
|
}
|
|
let r = '';
|
|
if (len === 0) {
|
|
return r;
|
|
}
|
|
const s = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM';
|
|
for (let i = 0; i < len; i++) {
|
|
r += s[Math.floor(Math.random() * s.length)];
|
|
}
|
|
return r;
|
|
}
|
|
|
|
const signWithSm3 = (ak: string, sk: string, reqConfig: AxiosRequestConfig, url: string) => {
|
|
const nonce = randomStr(20);
|
|
const timestamp = Date.now();
|
|
if(!["POST","PUT","PATCH"].includes((reqConfig.method ?? 'GET').toUpperCase())){
|
|
if (!reqConfig.params) {
|
|
reqConfig.params = {};
|
|
}
|
|
reqConfig.params["nonce"] = nonce;
|
|
reqConfig.params["timestamp"] = timestamp;
|
|
} else {
|
|
if (!reqConfig.data) {
|
|
reqConfig.data = {};
|
|
}
|
|
reqConfig.data["nonce"] = nonce;
|
|
reqConfig.data["timestamp"] = timestamp;
|
|
}
|
|
let str = `${url}`;
|
|
str += `nonce=${nonce}&`;
|
|
str += `timestamp=${timestamp}`;
|
|
str += `${sk}`;
|
|
const s = `${ak}$sm3$${sm3(str)}`;
|
|
const headers = reqConfig.headers;
|
|
reqConfig.headers = { ...headers, 'X-Idmesh-Signature': s };
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @export
|
|
*/
|
|
export const createRequestFunction = function (axiosArgs: RequestArgs, globalAxios: AxiosInstance, configuration?: Configuration) {
|
|
return <T = unknown, R = AxiosResponse<T>>(axios: AxiosInstance = globalAxios, sdkConfig: SDKConfig) => {
|
|
const axiosRequestArgs = {...axiosArgs.options, url: sdkConfig.basePath + axiosArgs.url};
|
|
signWithSm3(sdkConfig.ak!, sdkConfig.sk!, axiosRequestArgs, axiosArgs.url);
|
|
return axios.request<T, R>(axiosRequestArgs);
|
|
};
|
|
}
|