/* tslint:disable */ /* eslint-disable */ /** * MailSlurp API * MailSlurp is an API for sending and receiving emails from dynamically allocated email addresses. It\'s designed for developers and QA teams to test applications, process inbound emails, send templated notifications, attachments, and more. ## Resources - [Homepage](https://www.mailslurp.com) - Get an [API KEY](https://app.mailslurp.com/sign-up/) - Generated [SDK Clients](https://www.mailslurp.com/docs/) - [Examples](https://github.com/mailslurp/examples) repository * * The version of the OpenAPI document: 6.5.2 * Contact: contact@mailslurp.dev * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import * as runtime from '../runtime'; import { ContactDto, ContactDtoFromJSON, ContactDtoToJSON, ContactProjection, ContactProjectionFromJSON, ContactProjectionToJSON, CreateContactOptions, CreateContactOptionsFromJSON, CreateContactOptionsToJSON, PageContactProjection, PageContactProjectionFromJSON, PageContactProjectionToJSON, } from '../models'; export interface CreateContactRequest { createContactOptions: CreateContactOptions; } export interface DeleteContactRequest { contactId: string; } export interface GetAllContactsRequest { page?: number; size?: number; sort?: GetAllContactsSortEnum; since?: Date; before?: Date; } export interface GetContactRequest { contactId: string; } export interface GetContactVCardRequest { contactId: string; } /** * ContactControllerApi - interface * * @export * @interface ContactControllerApiInterface */ export interface ContactControllerApiInterface { /** * * @summary Create a contact * @param {CreateContactOptions} createContactOptions * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof ContactControllerApiInterface */ createContactRaw(requestParameters: CreateContactRequest): Promise>; /** * Create a contact */ createContact(requestParameters: CreateContactRequest): Promise; /** * * @summary Delete contact * @param {string} contactId * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof ContactControllerApiInterface */ deleteContactRaw(requestParameters: DeleteContactRequest): Promise>; /** * Delete contact */ deleteContact(requestParameters: DeleteContactRequest): Promise; /** * * @summary Get all contacts * @param {number} [page] Optional page index in list pagination * @param {number} [size] Optional page size in list pagination * @param {'ASC' | 'DESC'} [sort] Optional createdAt sort direction ASC or DESC * @param {Date} [since] Filter by created at after the given timestamp * @param {Date} [before] Filter by created at before the given timestamp * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof ContactControllerApiInterface */ getAllContactsRaw(requestParameters: GetAllContactsRequest): Promise>; /** * Get all contacts */ getAllContacts(requestParameters: GetAllContactsRequest): Promise; /** * * @summary Get contact * @param {string} contactId * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof ContactControllerApiInterface */ getContactRaw(requestParameters: GetContactRequest): Promise>; /** * Get contact */ getContact(requestParameters: GetContactRequest): Promise; /** * * @summary Get contact vCard vcf file * @param {string} contactId * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof ContactControllerApiInterface */ getContactVCardRaw(requestParameters: GetContactVCardRequest): Promise>>; /** * Get contact vCard vcf file */ getContactVCard(requestParameters: GetContactVCardRequest): Promise>; /** * * @summary Get all contacts * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof ContactControllerApiInterface */ getContactsRaw(): Promise>>; /** * Get all contacts */ getContacts(): Promise>; } /** * */ export class ContactControllerApi extends runtime.BaseAPI implements ContactControllerApiInterface { /** * Create a contact */ async createContactRaw(requestParameters: CreateContactRequest): Promise> { if (requestParameters.createContactOptions === null || requestParameters.createContactOptions === undefined) { throw new runtime.RequiredError('createContactOptions','Required parameter requestParameters.createContactOptions was null or undefined when calling createContact.'); } const queryParameters: runtime.HTTPQuery = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.apiKey) { headerParameters["x-api-key"] = this.configuration.apiKey("x-api-key"); // API_KEY authentication } const response = await this.request({ path: `/contacts`, method: 'POST', headers: headerParameters, query: queryParameters, body: CreateContactOptionsToJSON(requestParameters.createContactOptions), }); return new runtime.JSONApiResponse(response, (jsonValue) => ContactDtoFromJSON(jsonValue)); } /** * Create a contact */ async createContact(requestParameters: CreateContactRequest): Promise { const response = await this.createContactRaw(requestParameters); return await response.value(); } /** * Delete contact */ async deleteContactRaw(requestParameters: DeleteContactRequest): Promise> { if (requestParameters.contactId === null || requestParameters.contactId === undefined) { throw new runtime.RequiredError('contactId','Required parameter requestParameters.contactId was null or undefined when calling deleteContact.'); } const queryParameters: runtime.HTTPQuery = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters["x-api-key"] = this.configuration.apiKey("x-api-key"); // API_KEY authentication } const response = await this.request({ path: `/contacts/{contactId}`.replace(`{${"contactId"}}`, encodeURIComponent(String(requestParameters.contactId))), method: 'DELETE', headers: headerParameters, query: queryParameters, }); return new runtime.VoidApiResponse(response); } /** * Delete contact */ async deleteContact(requestParameters: DeleteContactRequest): Promise { await this.deleteContactRaw(requestParameters); } /** * Get all contacts */ async getAllContactsRaw(requestParameters: GetAllContactsRequest): Promise> { const queryParameters: runtime.HTTPQuery = {}; if (requestParameters.page !== undefined) { queryParameters['page'] = requestParameters.page; } if (requestParameters.size !== undefined) { queryParameters['size'] = requestParameters.size; } if (requestParameters.sort !== undefined) { queryParameters['sort'] = requestParameters.sort; } if (requestParameters.since !== undefined) { queryParameters['since'] = (requestParameters.since as any).toISOString(); } if (requestParameters.before !== undefined) { queryParameters['before'] = (requestParameters.before as any).toISOString(); } const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters["x-api-key"] = this.configuration.apiKey("x-api-key"); // API_KEY authentication } const response = await this.request({ path: `/contacts/paginated`, method: 'GET', headers: headerParameters, query: queryParameters, }); return new runtime.JSONApiResponse(response, (jsonValue) => PageContactProjectionFromJSON(jsonValue)); } /** * Get all contacts */ async getAllContacts(requestParameters: GetAllContactsRequest): Promise { const response = await this.getAllContactsRaw(requestParameters); return await response.value(); } /** * Get contact */ async getContactRaw(requestParameters: GetContactRequest): Promise> { if (requestParameters.contactId === null || requestParameters.contactId === undefined) { throw new runtime.RequiredError('contactId','Required parameter requestParameters.contactId was null or undefined when calling getContact.'); } const queryParameters: runtime.HTTPQuery = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters["x-api-key"] = this.configuration.apiKey("x-api-key"); // API_KEY authentication } const response = await this.request({ path: `/contacts/{contactId}`.replace(`{${"contactId"}}`, encodeURIComponent(String(requestParameters.contactId))), method: 'GET', headers: headerParameters, query: queryParameters, }); return new runtime.JSONApiResponse(response, (jsonValue) => ContactDtoFromJSON(jsonValue)); } /** * Get contact */ async getContact(requestParameters: GetContactRequest): Promise { const response = await this.getContactRaw(requestParameters); return await response.value(); } /** * Get contact vCard vcf file */ async getContactVCardRaw(requestParameters: GetContactVCardRequest): Promise>> { if (requestParameters.contactId === null || requestParameters.contactId === undefined) { throw new runtime.RequiredError('contactId','Required parameter requestParameters.contactId was null or undefined when calling getContactVCard.'); } const queryParameters: runtime.HTTPQuery = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters["x-api-key"] = this.configuration.apiKey("x-api-key"); // API_KEY authentication } const response = await this.request({ path: `/contacts/{contactId}/download`.replace(`{${"contactId"}}`, encodeURIComponent(String(requestParameters.contactId))), method: 'GET', headers: headerParameters, query: queryParameters, }); return new runtime.JSONApiResponse(response); } /** * Get contact vCard vcf file */ async getContactVCard(requestParameters: GetContactVCardRequest): Promise> { const response = await this.getContactVCardRaw(requestParameters); return await response.value(); } /** * Get all contacts */ async getContactsRaw(): Promise>> { const queryParameters: runtime.HTTPQuery = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters["x-api-key"] = this.configuration.apiKey("x-api-key"); // API_KEY authentication } const response = await this.request({ path: `/contacts`, method: 'GET', headers: headerParameters, query: queryParameters, }); return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ContactProjectionFromJSON)); } /** * Get all contacts */ async getContacts(): Promise> { const response = await this.getContactsRaw(); return await response.value(); } } /** * @export * @enum {string} */ export enum GetAllContactsSortEnum { ASC = 'ASC', DESC = 'DESC' }