UNPKG

@ringer-tel/ivy

Version:
184 lines (159 loc) 6.86 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 { CallRecordError, CallRecordListResponse, } from '../models/index'; import { CallRecordErrorFromJSON, CallRecordErrorToJSON, CallRecordListResponseFromJSON, CallRecordListResponseToJSON, } from '../models/index'; export interface ListCallRecordsRequest { startTime: Date; pageNumber: number; pageSize: number; endTime?: Date; sortColumn?: ListCallRecordsSortColumnEnum; sortType?: ListCallRecordsSortTypeEnum; filterColumn?: ListCallRecordsFilterColumnEnum; filterType?: ListCallRecordsFilterTypeEnum; filterValue?: string; } /** * */ export class CallRecordsApi extends runtime.BaseAPI { /** * Retrieves a list of Call Detail Records (CDRs) based on specified criteria. Allows for time-based querying, pagination, sorting, and filtering by call attributes like DNI, ANI, duration, etc. The scope of returned records may depend on the authenticated user\'s role (e.g., account admin vs. individual user). A maximum of 30 days worth of data can be queried at a time. * List Call Records */ async listCallRecordsRaw(requestParameters: ListCallRecordsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CallRecordListResponse>> { if (requestParameters['startTime'] == null) { throw new runtime.RequiredError( 'startTime', 'Required parameter "startTime" was null or undefined when calling listCallRecords().' ); } if (requestParameters['pageNumber'] == null) { throw new runtime.RequiredError( 'pageNumber', 'Required parameter "pageNumber" was null or undefined when calling listCallRecords().' ); } if (requestParameters['pageSize'] == null) { throw new runtime.RequiredError( 'pageSize', 'Required parameter "pageSize" was null or undefined when calling listCallRecords().' ); } const queryParameters: any = {}; if (requestParameters['startTime'] != null) { queryParameters['start_time'] = (requestParameters['startTime'] as any).toISOString(); } if (requestParameters['endTime'] != null) { queryParameters['end_time'] = (requestParameters['endTime'] as any).toISOString(); } if (requestParameters['pageNumber'] != null) { queryParameters['page[number]'] = requestParameters['pageNumber']; } if (requestParameters['pageSize'] != null) { queryParameters['page[size]'] = requestParameters['pageSize']; } if (requestParameters['sortColumn'] != null) { queryParameters['sort[column]'] = requestParameters['sortColumn']; } if (requestParameters['sortType'] != null) { queryParameters['sort[type]'] = requestParameters['sortType']; } if (requestParameters['filterColumn'] != null) { queryParameters['filter[column]'] = requestParameters['filterColumn']; } if (requestParameters['filterType'] != null) { queryParameters['filter[type]'] = requestParameters['filterType']; } if (requestParameters['filterValue'] != null) { queryParameters['filter[value]'] = requestParameters['filterValue']; } 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: `/call-records`, method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => CallRecordListResponseFromJSON(jsonValue)); } /** * Retrieves a list of Call Detail Records (CDRs) based on specified criteria. Allows for time-based querying, pagination, sorting, and filtering by call attributes like DNI, ANI, duration, etc. The scope of returned records may depend on the authenticated user\'s role (e.g., account admin vs. individual user). A maximum of 30 days worth of data can be queried at a time. * List Call Records */ async listCallRecords(requestParameters: ListCallRecordsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CallRecordListResponse> { const response = await this.listCallRecordsRaw(requestParameters, initOverrides); return await response.value(); } } /** * @export */ export const ListCallRecordsSortColumnEnum = { Dni: 'dni', DniName: 'dni_name', RawAni: 'raw_ani', Direction: 'direction', AnswerStamp: 'answer_stamp', Duration: 'duration', CustomerBalanceAdjustment: 'customer_balance_adjustment', CreatedAt: 'created_at' } as const; export type ListCallRecordsSortColumnEnum = typeof ListCallRecordsSortColumnEnum[keyof typeof ListCallRecordsSortColumnEnum]; /** * @export */ export const ListCallRecordsSortTypeEnum = { Asc: 'ASC', Desc: 'DESC' } as const; export type ListCallRecordsSortTypeEnum = typeof ListCallRecordsSortTypeEnum[keyof typeof ListCallRecordsSortTypeEnum]; /** * @export */ export const ListCallRecordsFilterColumnEnum = { Dni: 'dni', DniName: 'dni_name', RawAni: 'raw_ani', Direction: 'direction', AnswerStamp: 'answer_stamp', Duration: 'duration', CustomerBalanceAdjustment: 'customer_balance_adjustment' } as const; export type ListCallRecordsFilterColumnEnum = typeof ListCallRecordsFilterColumnEnum[keyof typeof ListCallRecordsFilterColumnEnum]; /** * @export */ export const ListCallRecordsFilterTypeEnum = { GreaterThan: 'greater_than', LessThan: 'less_than', EqualTo: 'equal_to', StartsWith: 'starts_with', EndsWith: 'ends_with', Contains: 'contains' } as const; export type ListCallRecordsFilterTypeEnum = typeof ListCallRecordsFilterTypeEnum[keyof typeof ListCallRecordsFilterTypeEnum];