/* tslint:disable */ /* eslint-disable */ /** * Paystack * The OpenAPI specification of the Paystack API that merchants and developers can harness to build financial solutions in Africa. * * The version of the Paystack Node library: 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 { BaseAPI, RequiredError } from '../runtime'; import { Response, ResponseFromJSON } from '../models'; export interface DownloadRequest { perPage?: number; page?: number; status?: string; from?: Date; to?: Date; } export interface EvidenceRequest { id: string; customer_email: string; customer_name: string; customer_phone: string; service_details: string; delivery_address?: string; delivery_date?: Date; } export interface FetchRequest { id: string; } export interface ListRequest { perPage?: number; page?: number; status?: string; transaction?: string; from?: Date; to?: Date; } export interface ResolveRequest { id: string; resolution: string; message: string; refund_amount: string; uploaded_filename: string; evidence?: number; } export interface TransactionRequest { id: string; } export interface UpdateRequest { id: string; refund_amount: string; uploaded_filename?: string; } export interface UploadUrlRequest { id: string; } /** * */ export class Dispute extends BaseAPI { /** * Export Disputes */ async download(requestParameters: DownloadRequest): Promise { const queryParameters: any = {}; if (requestParameters.perPage !== undefined) { queryParameters['perPage'] = requestParameters.perPage; } if (requestParameters.page !== undefined) { queryParameters['page'] = requestParameters.page; } if (requestParameters.status !== undefined) { queryParameters['status'] = requestParameters.status; } if (requestParameters.from !== undefined) { queryParameters['from'] = (requestParameters.from as any).toISOString(); } if (requestParameters.to !== undefined) { queryParameters['to'] = (requestParameters.to as any).toISOString(); } const response = await this.request({ path: `/dispute/export`, method: 'GET', query: queryParameters, }); return ResponseFromJSON(response); } /** * Add Evidence */ async evidence(requestParameters: EvidenceRequest): Promise { if (requestParameters.id === null || requestParameters.id === undefined) { throw new RequiredError('id','Required parameter id was null or undefined when calling evidence.'); } if (requestParameters.customer_email === null || requestParameters.customer_email === undefined) { throw new RequiredError('customer_email','Required parameter customer_email was null or undefined when calling evidence.'); } if (requestParameters.customer_name === null || requestParameters.customer_name === undefined) { throw new RequiredError('customer_name','Required parameter customer_name was null or undefined when calling evidence.'); } if (requestParameters.customer_phone === null || requestParameters.customer_phone === undefined) { throw new RequiredError('customer_phone','Required parameter customer_phone was null or undefined when calling evidence.'); } if (requestParameters.service_details === null || requestParameters.service_details === undefined) { throw new RequiredError('service_details','Required parameter service_details was null or undefined when calling evidence.'); } const queryParameters: any = {}; let formParams: any = {}; if (requestParameters.customer_email !== undefined) { formParams['customer_email'] = requestParameters.customer_email; } if (requestParameters.customer_name !== undefined) { formParams['customer_name'] = requestParameters.customer_name; } if (requestParameters.customer_phone !== undefined) { formParams['customer_phone'] = requestParameters.customer_phone; } if (requestParameters.service_details !== undefined) { formParams['service_details'] = requestParameters.service_details; } if (requestParameters.delivery_address !== undefined) { formParams['delivery_address'] = requestParameters.delivery_address; } if (requestParameters.delivery_date !== undefined) { formParams['delivery_date'] = requestParameters.delivery_date; } const response = await this.request({ path: `/dispute/{id}/evidence`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters.id))), method: 'POST', query: queryParameters, body: formParams, }); return ResponseFromJSON(response); } /** * Fetch Dispute */ async fetch(requestParameters: FetchRequest): Promise { if (requestParameters.id === null || requestParameters.id === undefined) { throw new RequiredError('id','Required parameter id was null or undefined when calling fetch.'); } const queryParameters: any = {}; const response = await this.request({ path: `/dispute/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters.id))), method: 'GET', query: queryParameters, }); return ResponseFromJSON(response); } /** * List Disputes */ async list(requestParameters: ListRequest): Promise { const queryParameters: any = {}; if (requestParameters.perPage !== undefined) { queryParameters['perPage'] = requestParameters.perPage; } if (requestParameters.page !== undefined) { queryParameters['page'] = requestParameters.page; } if (requestParameters.status !== undefined) { queryParameters['status'] = requestParameters.status; } if (requestParameters.transaction !== undefined) { queryParameters['transaction'] = requestParameters.transaction; } if (requestParameters.from !== undefined) { queryParameters['from'] = (requestParameters.from as any).toISOString(); } if (requestParameters.to !== undefined) { queryParameters['to'] = (requestParameters.to as any).toISOString(); } const response = await this.request({ path: `/dispute`, method: 'GET', query: queryParameters, }); return ResponseFromJSON(response); } /** * Resolve a Dispute */ async resolve(requestParameters: ResolveRequest): Promise { if (requestParameters.id === null || requestParameters.id === undefined) { throw new RequiredError('id','Required parameter id was null or undefined when calling resolve.'); } if (requestParameters.resolution === null || requestParameters.resolution === undefined) { throw new RequiredError('resolution','Required parameter resolution was null or undefined when calling resolve.'); } if (requestParameters.message === null || requestParameters.message === undefined) { throw new RequiredError('message','Required parameter message was null or undefined when calling resolve.'); } if (requestParameters.refund_amount === null || requestParameters.refund_amount === undefined) { throw new RequiredError('refund_amount','Required parameter refund_amount was null or undefined when calling resolve.'); } if (requestParameters.uploaded_filename === null || requestParameters.uploaded_filename === undefined) { throw new RequiredError('uploaded_filename','Required parameter uploaded_filename was null or undefined when calling resolve.'); } const queryParameters: any = {}; let formParams: any = {}; if (requestParameters.resolution !== undefined) { formParams['resolution'] = requestParameters.resolution; } if (requestParameters.message !== undefined) { formParams['message'] = requestParameters.message; } if (requestParameters.refund_amount !== undefined) { formParams['refund_amount'] = requestParameters.refund_amount; } if (requestParameters.uploaded_filename !== undefined) { formParams['uploaded_filename'] = requestParameters.uploaded_filename; } if (requestParameters.evidence !== undefined) { formParams['evidence'] = requestParameters.evidence; } const response = await this.request({ path: `/dispute/{id}/resolve`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters.id))), method: 'PUT', query: queryParameters, body: formParams, }); return ResponseFromJSON(response); } /** * List Transaction Disputes */ async transaction(requestParameters: TransactionRequest): Promise { if (requestParameters.id === null || requestParameters.id === undefined) { throw new RequiredError('id','Required parameter id was null or undefined when calling transaction.'); } const queryParameters: any = {}; const response = await this.request({ path: `/dispute/transaction/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters.id))), method: 'GET', query: queryParameters, }); return ResponseFromJSON(response); } /** * Update Dispute */ async update(requestParameters: UpdateRequest): Promise { if (requestParameters.id === null || requestParameters.id === undefined) { throw new RequiredError('id','Required parameter id was null or undefined when calling update.'); } if (requestParameters.refund_amount === null || requestParameters.refund_amount === undefined) { throw new RequiredError('refund_amount','Required parameter refund_amount was null or undefined when calling update.'); } const queryParameters: any = {}; let formParams: any = {}; if (requestParameters.refund_amount !== undefined) { formParams['refund_amount'] = requestParameters.refund_amount; } if (requestParameters.uploaded_filename !== undefined) { formParams['uploaded_filename'] = requestParameters.uploaded_filename; } const response = await this.request({ path: `/dispute/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters.id))), method: 'PUT', query: queryParameters, body: formParams, }); return ResponseFromJSON(response); } /** * Get Upload URL */ async uploadUrl(requestParameters: UploadUrlRequest): Promise { if (requestParameters.id === null || requestParameters.id === undefined) { throw new RequiredError('id','Required parameter id was null or undefined when calling uploadUrl.'); } const queryParameters: any = {}; const response = await this.request({ path: `/dispute/{id}/upload_url`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters.id))), method: 'GET', query: queryParameters, }); return ResponseFromJSON(response); } }