UNPKG

@ringer-tel/ivy

Version:
645 lines (533 loc) 24.8 kB
/* tslint:disable */ /* eslint-disable */ /** * Ringer Business API * This API provides comprehensive endpoints for the Ringer Business system. It includes functionality for managing customer accounts, addresses, sites, phone numbers, payments, users, and other business resources. Operations typically require authentication and appropriate permissions. * * The version of the OpenAPI document: 1.0.6 * Contact: support@ringer.tel * * 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 type { MenuResponse, PaginatedMenuListResponse, } from '../models/index'; import { MenuResponseFromJSON, MenuResponseToJSON, PaginatedMenuListResponseFromJSON, PaginatedMenuListResponseToJSON, } from '../models/index'; export interface CreateSiteMenuRequest { siteId: number; name: string; failOverDestinationCode: string; pin?: string | null; greeting?: Blob | null; optionRoutes0?: string | null; optionRoutes1?: string | null; optionRoutes2?: string | null; optionRoutes3?: string | null; optionRoutes4?: string | null; optionRoutes5?: string | null; optionRoutes6?: string | null; optionRoutes7?: string | null; optionRoutes8?: string | null; optionRoutes9?: string | null; optionRoutes?: string | null; } export interface DeleteSiteMenuByIdRequest { siteId: number; id: number; } export interface GetSiteMenuByIdRequest { siteId: number; id: number; } export interface ListSiteMenusRequest { siteId: number; page?: number; pageSize?: number; } export interface TransferSiteMenuRequest { siteId: number; id: number; newSiteId: number; } export interface UpdateSiteMenuByIdRequest { siteId: number; id: number; name?: string | null; pin?: string | null; failOverDestinationCode?: string | null; greeting?: Blob | null; optionRoutes0?: string | null; optionRoutes1?: string | null; optionRoutes2?: string | null; optionRoutes3?: string | null; optionRoutes4?: string | null; optionRoutes5?: string | null; optionRoutes6?: string | null; optionRoutes7?: string | null; optionRoutes8?: string | null; optionRoutes9?: string | null; optionRoutes?: string | null; } export interface UploadSiteMenuGreetingRequest { siteId: number; id: number; greeting: Blob; } /** * */ export class SiteFeaturesMenusApi extends runtime.BaseAPI { /** * Add a new menu (auto attendant) to your site. Greeting can be uploaded. * Create Menu for a Site */ async createSiteMenuRaw(requestParameters: CreateSiteMenuRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<MenuResponse>> { if (requestParameters['siteId'] == null) { throw new runtime.RequiredError( 'siteId', 'Required parameter "siteId" was null or undefined when calling createSiteMenu().' ); } if (requestParameters['name'] == null) { throw new runtime.RequiredError( 'name', 'Required parameter "name" was null or undefined when calling createSiteMenu().' ); } if (requestParameters['failOverDestinationCode'] == null) { throw new runtime.RequiredError( 'failOverDestinationCode', 'Required parameter "failOverDestinationCode" was null or undefined when calling createSiteMenu().' ); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters["Authorization"] = await this.configuration.accessToken("oAuth2", []); } const consumes: runtime.Consume[] = [ { contentType: 'multipart/form-data' }, ]; // @ts-ignore: canConsumeForm may be unused const canConsumeForm = runtime.canConsumeForm(consumes); let formParams: { append(param: string, value: any): any }; let useForm = false; // use FormData to transmit files using content-type "multipart/form-data" useForm = canConsumeForm; if (useForm) { formParams = new FormData(); } else { formParams = new URLSearchParams(); } if (requestParameters['name'] != null) { formParams.append('name', requestParameters['name'] as any); } if (requestParameters['pin'] != null) { formParams.append('pin', requestParameters['pin'] as any); } if (requestParameters['failOverDestinationCode'] != null) { formParams.append('fail_over_destination_code', requestParameters['failOverDestinationCode'] as any); } if (requestParameters['greeting'] != null) { formParams.append('greeting', requestParameters['greeting'] as any); } if (requestParameters['optionRoutes0'] != null) { formParams.append('option_routes[0]', requestParameters['optionRoutes0'] as any); } if (requestParameters['optionRoutes1'] != null) { formParams.append('option_routes[1]', requestParameters['optionRoutes1'] as any); } if (requestParameters['optionRoutes2'] != null) { formParams.append('option_routes[2]', requestParameters['optionRoutes2'] as any); } if (requestParameters['optionRoutes3'] != null) { formParams.append('option_routes[3]', requestParameters['optionRoutes3'] as any); } if (requestParameters['optionRoutes4'] != null) { formParams.append('option_routes[4]', requestParameters['optionRoutes4'] as any); } if (requestParameters['optionRoutes5'] != null) { formParams.append('option_routes[5]', requestParameters['optionRoutes5'] as any); } if (requestParameters['optionRoutes6'] != null) { formParams.append('option_routes[6]', requestParameters['optionRoutes6'] as any); } if (requestParameters['optionRoutes7'] != null) { formParams.append('option_routes[7]', requestParameters['optionRoutes7'] as any); } if (requestParameters['optionRoutes8'] != null) { formParams.append('option_routes[8]', requestParameters['optionRoutes8'] as any); } if (requestParameters['optionRoutes9'] != null) { formParams.append('option_routes[9]', requestParameters['optionRoutes9'] as any); } if (requestParameters['optionRoutes'] != null) { formParams.append('option_routes[*]', requestParameters['optionRoutes'] as any); } const response = await this.request({ path: `/sites/{site_id}/menus`.replace(`{${"site_id"}}`, encodeURIComponent(String(requestParameters['siteId']))), method: 'POST', headers: headerParameters, query: queryParameters, body: formParams, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => MenuResponseFromJSON(jsonValue)); } /** * Add a new menu (auto attendant) to your site. Greeting can be uploaded. * Create Menu for a Site */ async createSiteMenu(requestParameters: CreateSiteMenuRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<MenuResponse> { const response = await this.createSiteMenuRaw(requestParameters, initOverrides); return await response.value(); } /** * Permanently delete a specific menu. * Delete Menu */ async deleteSiteMenuByIdRaw(requestParameters: DeleteSiteMenuByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> { if (requestParameters['siteId'] == null) { throw new runtime.RequiredError( 'siteId', 'Required parameter "siteId" was null or undefined when calling deleteSiteMenuById().' ); } if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling deleteSiteMenuById().' ); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters["Authorization"] = await this.configuration.accessToken("oAuth2", []); } const response = await this.request({ path: `/sites/{site_id}/menus/{id}`.replace(`{${"site_id"}}`, encodeURIComponent(String(requestParameters['siteId']))).replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), method: 'DELETE', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.VoidApiResponse(response); } /** * Permanently delete a specific menu. * Delete Menu */ async deleteSiteMenuById(requestParameters: DeleteSiteMenuByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> { await this.deleteSiteMenuByIdRaw(requestParameters, initOverrides); } /** * Retrieve the details of a specific menu. * Get Menu Details */ async getSiteMenuByIdRaw(requestParameters: GetSiteMenuByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<MenuResponse>> { if (requestParameters['siteId'] == null) { throw new runtime.RequiredError( 'siteId', 'Required parameter "siteId" was null or undefined when calling getSiteMenuById().' ); } if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling getSiteMenuById().' ); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters["Authorization"] = await this.configuration.accessToken("oAuth2", []); } const response = await this.request({ path: `/sites/{site_id}/menus/{id}`.replace(`{${"site_id"}}`, encodeURIComponent(String(requestParameters['siteId']))).replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => MenuResponseFromJSON(jsonValue)); } /** * Retrieve the details of a specific menu. * Get Menu Details */ async getSiteMenuById(requestParameters: GetSiteMenuByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<MenuResponse> { const response = await this.getSiteMenuByIdRaw(requestParameters, initOverrides); return await response.value(); } /** * Retrieve a paginated list of all menus (auto attendants) that belong to a site. * List Menus for a Site */ async listSiteMenusRaw(requestParameters: ListSiteMenusRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<PaginatedMenuListResponse>> { if (requestParameters['siteId'] == null) { throw new runtime.RequiredError( 'siteId', 'Required parameter "siteId" was null or undefined when calling listSiteMenus().' ); } const queryParameters: any = {}; if (requestParameters['page'] != null) { queryParameters['page'] = requestParameters['page']; } if (requestParameters['pageSize'] != null) { queryParameters['page_size'] = requestParameters['pageSize']; } const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters["Authorization"] = await this.configuration.accessToken("oAuth2", []); } const response = await this.request({ path: `/sites/{site_id}/menus`.replace(`{${"site_id"}}`, encodeURIComponent(String(requestParameters['siteId']))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => PaginatedMenuListResponseFromJSON(jsonValue)); } /** * Retrieve a paginated list of all menus (auto attendants) that belong to a site. * List Menus for a Site */ async listSiteMenus(requestParameters: ListSiteMenusRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PaginatedMenuListResponse> { const response = await this.listSiteMenusRaw(requestParameters, initOverrides); return await response.value(); } /** * Moves a menu from its current site (specified in the path) to a new target site (specified in the request body) within the same customer account. * Transfer Menu to Another Site */ async transferSiteMenuRaw(requestParameters: TransferSiteMenuRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<MenuResponse>> { if (requestParameters['siteId'] == null) { throw new runtime.RequiredError( 'siteId', 'Required parameter "siteId" was null or undefined when calling transferSiteMenu().' ); } if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling transferSiteMenu().' ); } if (requestParameters['newSiteId'] == null) { throw new runtime.RequiredError( 'newSiteId', 'Required parameter "newSiteId" was null or undefined when calling transferSiteMenu().' ); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters["Authorization"] = await this.configuration.accessToken("oAuth2", []); } const consumes: runtime.Consume[] = [ { contentType: 'application/x-www-form-urlencoded' }, ]; // @ts-ignore: canConsumeForm may be unused const canConsumeForm = runtime.canConsumeForm(consumes); let formParams: { append(param: string, value: any): any }; let useForm = false; if (useForm) { formParams = new FormData(); } else { formParams = new URLSearchParams(); } if (requestParameters['newSiteId'] != null) { formParams.append('new_site_id', requestParameters['newSiteId'] as any); } const response = await this.request({ path: `/sites/{site_id}/menus/{id}/transfer`.replace(`{${"site_id"}}`, encodeURIComponent(String(requestParameters['siteId']))).replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), method: 'POST', headers: headerParameters, query: queryParameters, body: formParams, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => MenuResponseFromJSON(jsonValue)); } /** * Moves a menu from its current site (specified in the path) to a new target site (specified in the request body) within the same customer account. * Transfer Menu to Another Site */ async transferSiteMenu(requestParameters: TransferSiteMenuRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<MenuResponse> { const response = await this.transferSiteMenuRaw(requestParameters, initOverrides); return await response.value(); } /** * Updates an existing menu. For `multipart/form-data`, provide only the fields to change. Audio files can be updated. * Update Menu Configuration */ async updateSiteMenuByIdRaw(requestParameters: UpdateSiteMenuByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<MenuResponse>> { if (requestParameters['siteId'] == null) { throw new runtime.RequiredError( 'siteId', 'Required parameter "siteId" was null or undefined when calling updateSiteMenuById().' ); } if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling updateSiteMenuById().' ); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters["Authorization"] = await this.configuration.accessToken("oAuth2", []); } const consumes: runtime.Consume[] = [ { contentType: 'multipart/form-data' }, ]; // @ts-ignore: canConsumeForm may be unused const canConsumeForm = runtime.canConsumeForm(consumes); let formParams: { append(param: string, value: any): any }; let useForm = false; // use FormData to transmit files using content-type "multipart/form-data" useForm = canConsumeForm; if (useForm) { formParams = new FormData(); } else { formParams = new URLSearchParams(); } if (requestParameters['name'] != null) { formParams.append('name', requestParameters['name'] as any); } if (requestParameters['pin'] != null) { formParams.append('pin', requestParameters['pin'] as any); } if (requestParameters['failOverDestinationCode'] != null) { formParams.append('fail_over_destination_code', requestParameters['failOverDestinationCode'] as any); } if (requestParameters['greeting'] != null) { formParams.append('greeting', requestParameters['greeting'] as any); } if (requestParameters['optionRoutes0'] != null) { formParams.append('option_routes[0]', requestParameters['optionRoutes0'] as any); } if (requestParameters['optionRoutes1'] != null) { formParams.append('option_routes[1]', requestParameters['optionRoutes1'] as any); } if (requestParameters['optionRoutes2'] != null) { formParams.append('option_routes[2]', requestParameters['optionRoutes2'] as any); } if (requestParameters['optionRoutes3'] != null) { formParams.append('option_routes[3]', requestParameters['optionRoutes3'] as any); } if (requestParameters['optionRoutes4'] != null) { formParams.append('option_routes[4]', requestParameters['optionRoutes4'] as any); } if (requestParameters['optionRoutes5'] != null) { formParams.append('option_routes[5]', requestParameters['optionRoutes5'] as any); } if (requestParameters['optionRoutes6'] != null) { formParams.append('option_routes[6]', requestParameters['optionRoutes6'] as any); } if (requestParameters['optionRoutes7'] != null) { formParams.append('option_routes[7]', requestParameters['optionRoutes7'] as any); } if (requestParameters['optionRoutes8'] != null) { formParams.append('option_routes[8]', requestParameters['optionRoutes8'] as any); } if (requestParameters['optionRoutes9'] != null) { formParams.append('option_routes[9]', requestParameters['optionRoutes9'] as any); } if (requestParameters['optionRoutes'] != null) { formParams.append('option_routes[*]', requestParameters['optionRoutes'] as any); } const response = await this.request({ path: `/sites/{site_id}/menus/{id}`.replace(`{${"site_id"}}`, encodeURIComponent(String(requestParameters['siteId']))).replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), method: 'PUT', headers: headerParameters, query: queryParameters, body: formParams, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => MenuResponseFromJSON(jsonValue)); } /** * Updates an existing menu. For `multipart/form-data`, provide only the fields to change. Audio files can be updated. * Update Menu Configuration */ async updateSiteMenuById(requestParameters: UpdateSiteMenuByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<MenuResponse> { const response = await this.updateSiteMenuByIdRaw(requestParameters, initOverrides); return await response.value(); } /** * Upload or update the greeting audio file for the specified menu. * Upload Menu Greeting */ async uploadSiteMenuGreetingRaw(requestParameters: UploadSiteMenuGreetingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<MenuResponse>> { if (requestParameters['siteId'] == null) { throw new runtime.RequiredError( 'siteId', 'Required parameter "siteId" was null or undefined when calling uploadSiteMenuGreeting().' ); } if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling uploadSiteMenuGreeting().' ); } if (requestParameters['greeting'] == null) { throw new runtime.RequiredError( 'greeting', 'Required parameter "greeting" was null or undefined when calling uploadSiteMenuGreeting().' ); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters["Authorization"] = await this.configuration.accessToken("oAuth2", []); } const consumes: runtime.Consume[] = [ { contentType: 'multipart/form-data' }, ]; // @ts-ignore: canConsumeForm may be unused const canConsumeForm = runtime.canConsumeForm(consumes); let formParams: { append(param: string, value: any): any }; let useForm = false; // use FormData to transmit files using content-type "multipart/form-data" useForm = canConsumeForm; if (useForm) { formParams = new FormData(); } else { formParams = new URLSearchParams(); } if (requestParameters['greeting'] != null) { formParams.append('greeting', requestParameters['greeting'] as any); } const response = await this.request({ path: `/sites/{site_id}/menus/{id}/upload`.replace(`{${"site_id"}}`, encodeURIComponent(String(requestParameters['siteId']))).replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), method: 'PATCH', headers: headerParameters, query: queryParameters, body: formParams, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => MenuResponseFromJSON(jsonValue)); } /** * Upload or update the greeting audio file for the specified menu. * Upload Menu Greeting */ async uploadSiteMenuGreeting(requestParameters: UploadSiteMenuGreetingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<MenuResponse> { const response = await this.uploadSiteMenuGreetingRaw(requestParameters, initOverrides); return await response.value(); } }