mirror of
https://github.com/jlengrand/adyen-node-api-library.git
synced 2026-03-10 08:01:20 +00:00
* update recurringService to v68 * remove actual api calls from unit tests and remove superfluous file headers
198 lines
7.6 KiB
TypeScript
198 lines
7.6 KiB
TypeScript
/*
|
|
* The version of the OpenAPI document: v68
|
|
* Contact: developer-experience@adyen.com
|
|
*
|
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
* https://openapi-generator.tech
|
|
* Do not edit this class manually.
|
|
*/
|
|
|
|
|
|
export * from './address';
|
|
export * from './amount';
|
|
export * from './bankAccount';
|
|
export * from './card';
|
|
export * from './disableRequest';
|
|
export * from './disableResult';
|
|
export * from './name';
|
|
export * from './notifyShopperRequest';
|
|
export * from './notifyShopperResult';
|
|
export * from './recurring';
|
|
export * from './recurringDetail';
|
|
export * from './recurringDetailsRequest';
|
|
export * from './recurringDetailsResult';
|
|
export * from './scheduleAccountUpdaterRequest';
|
|
export * from './scheduleAccountUpdaterResult';
|
|
export * from './serviceError';
|
|
export * from './tokenDetails';
|
|
|
|
|
|
import { Address } from './address';
|
|
import { Amount } from './amount';
|
|
import { BankAccount } from './bankAccount';
|
|
import { Card } from './card';
|
|
import { DisableRequest } from './disableRequest';
|
|
import { DisableResult } from './disableResult';
|
|
import { Name } from './name';
|
|
import { NotifyShopperRequest } from './notifyShopperRequest';
|
|
import { NotifyShopperResult } from './notifyShopperResult';
|
|
import { Recurring } from './recurring';
|
|
import { RecurringDetail } from './recurringDetail';
|
|
import { RecurringDetailsRequest } from './recurringDetailsRequest';
|
|
import { RecurringDetailsResult } from './recurringDetailsResult';
|
|
import { ScheduleAccountUpdaterRequest } from './scheduleAccountUpdaterRequest';
|
|
import { ScheduleAccountUpdaterResult } from './scheduleAccountUpdaterResult';
|
|
import { ServiceError } from './serviceError';
|
|
import { TokenDetails } from './tokenDetails';
|
|
|
|
/* tslint:disable:no-unused-variable */
|
|
let primitives = [
|
|
"string",
|
|
"boolean",
|
|
"double",
|
|
"integer",
|
|
"long",
|
|
"float",
|
|
"number",
|
|
"any"
|
|
];
|
|
|
|
let enumsMap: {[index: string]: any} = {
|
|
"Recurring.ContractEnum": Recurring.ContractEnum,
|
|
"Recurring.TokenServiceEnum": Recurring.TokenServiceEnum,
|
|
}
|
|
|
|
let typeMap: {[index: string]: any} = {
|
|
"Address": Address,
|
|
"Amount": Amount,
|
|
"BankAccount": BankAccount,
|
|
"Card": Card,
|
|
"DisableRequest": DisableRequest,
|
|
"DisableResult": DisableResult,
|
|
"Name": Name,
|
|
"NotifyShopperRequest": NotifyShopperRequest,
|
|
"NotifyShopperResult": NotifyShopperResult,
|
|
"Recurring": Recurring,
|
|
"RecurringDetail": RecurringDetail,
|
|
"RecurringDetailsRequest": RecurringDetailsRequest,
|
|
"RecurringDetailsResult": RecurringDetailsResult,
|
|
"ScheduleAccountUpdaterRequest": ScheduleAccountUpdaterRequest,
|
|
"ScheduleAccountUpdaterResult": ScheduleAccountUpdaterResult,
|
|
"ServiceError": ServiceError,
|
|
"TokenDetails": TokenDetails,
|
|
}
|
|
|
|
export class ObjectSerializer {
|
|
public static findCorrectType(data: any, expectedType: string) {
|
|
if (data == undefined) {
|
|
return expectedType;
|
|
} else if (primitives.indexOf(expectedType.toLowerCase()) !== -1) {
|
|
return expectedType;
|
|
} else if (expectedType === "Date") {
|
|
return expectedType;
|
|
} else {
|
|
if (enumsMap[expectedType]) {
|
|
return expectedType;
|
|
}
|
|
|
|
if (!typeMap[expectedType]) {
|
|
return expectedType; // w/e we don't know the type
|
|
}
|
|
|
|
// Check the discriminator
|
|
let discriminatorProperty = typeMap[expectedType].discriminator;
|
|
if (discriminatorProperty == null) {
|
|
return expectedType; // the type does not have a discriminator. use it.
|
|
} else {
|
|
if (data[discriminatorProperty]) {
|
|
var discriminatorType = data[discriminatorProperty];
|
|
if(typeMap[discriminatorType]){
|
|
return discriminatorType; // use the type given in the discriminator
|
|
} else {
|
|
return expectedType; // discriminator did not map to a type
|
|
}
|
|
} else {
|
|
return expectedType; // discriminator was not present (or an empty string)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public static serialize(data: any, type: string) {
|
|
if (data == undefined) {
|
|
return data;
|
|
} else if (primitives.indexOf(type.toLowerCase()) !== -1) {
|
|
return data;
|
|
} else if (type.lastIndexOf("Array<", 0) === 0) { // string.startsWith pre es6
|
|
let subType: string = type.replace("Array<", ""); // Array<Type> => Type>
|
|
subType = subType.substring(0, subType.length - 1); // Type> => Type
|
|
let transformedData: any[] = [];
|
|
for (let index = 0; index < data.length; index++) {
|
|
let datum = data[index];
|
|
transformedData.push(ObjectSerializer.serialize(datum, subType));
|
|
}
|
|
return transformedData;
|
|
} else if (type === "Date") {
|
|
return data.toISOString();
|
|
} else if (type === "SaleToAcquirerData") {
|
|
const dataString = JSON.stringify(data);
|
|
return Buffer.from(dataString).toString("base64");
|
|
} else {
|
|
if (enumsMap[type]) {
|
|
return data;
|
|
}
|
|
if (!typeMap[type]) { // in case we dont know the type
|
|
return data;
|
|
}
|
|
|
|
// Get the actual type of this object
|
|
type = this.findCorrectType(data, type);
|
|
|
|
// get the map for the correct type.
|
|
let attributeTypes = typeMap[type].getAttributeTypeMap();
|
|
let instance: {[index: string]: any} = {};
|
|
for (let index = 0; index < attributeTypes.length; index++) {
|
|
let attributeType = attributeTypes[index];
|
|
instance[attributeType.baseName] = ObjectSerializer.serialize(data[attributeType.name], attributeType.type);
|
|
}
|
|
return instance;
|
|
}
|
|
}
|
|
|
|
public static deserialize(data: any, type: string) {
|
|
// polymorphism may change the actual type.
|
|
type = ObjectSerializer.findCorrectType(data, type);
|
|
if (data == undefined) {
|
|
return data;
|
|
} else if (primitives.indexOf(type.toLowerCase()) !== -1) {
|
|
return data;
|
|
} else if (type.lastIndexOf("Array<", 0) === 0) { // string.startsWith pre es6
|
|
let subType: string = type.replace("Array<", ""); // Array<Type> => Type>
|
|
subType = subType.substring(0, subType.length - 1); // Type> => Type
|
|
let transformedData: any[] = [];
|
|
for (let index = 0; index < data.length; index++) {
|
|
let datum = data[index];
|
|
transformedData.push(ObjectSerializer.deserialize(datum, subType));
|
|
}
|
|
return transformedData;
|
|
} else if (type === "Date") {
|
|
return new Date(data);
|
|
} else {
|
|
if (enumsMap[type]) {// is Enum
|
|
return data;
|
|
}
|
|
|
|
if (!typeMap[type]) { // dont know the type
|
|
return data;
|
|
}
|
|
let instance = new typeMap[type]();
|
|
let attributeTypes = typeMap[type].getAttributeTypeMap();
|
|
for (let index = 0; index < attributeTypes.length; index++) {
|
|
let attributeType = attributeTypes[index];
|
|
instance[attributeType.name] = ObjectSerializer.deserialize(data[attributeType.baseName], attributeType.type);
|
|
}
|
|
return instance;
|
|
}
|
|
}
|
|
}
|