UNPKG

@azure/communication-call-automation

Version:
226 lines 8.04 kB
/* * Copyright (c) Microsoft Corporation. * Licensed under the MIT License. * * Code generated by Microsoft (R) AutoRest Code Generator. * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ import * as coreClient from "@azure/core-client"; import { CallConnectionImpl, CallMediaImpl, CallRecordingImpl, } from "./operations/index.js"; import * as Parameters from "./models/parameters.js"; import * as Mappers from "./models/mappers.js"; export class CallAutomationApiClient extends coreClient.ServiceClient { /** * Initializes a new instance of the CallAutomationApiClient class. * @param endpoint The endpoint of the Azure Communication resource. * @param options The parameter options */ constructor(endpoint, options) { var _a, _b; if (endpoint === undefined) { throw new Error("'endpoint' cannot be null"); } // Initializing default values for options if (!options) { options = {}; } const defaults = { requestContentType: "application/json; charset=utf-8", }; const packageDetails = `azsdk-js-communication-call-automation/1.4.0`; const userAgentPrefix = options.userAgentOptions && options.userAgentOptions.userAgentPrefix ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}` : `${packageDetails}`; const optionsWithDefaults = Object.assign(Object.assign(Object.assign({}, defaults), options), { userAgentOptions: { userAgentPrefix, }, endpoint: (_b = (_a = options.endpoint) !== null && _a !== void 0 ? _a : options.baseUri) !== null && _b !== void 0 ? _b : "{endpoint}" }); super(optionsWithDefaults); // Parameter assignments this.endpoint = endpoint; // Assigning values to Constant parameters this.apiVersion = options.apiVersion || "2025-05-15"; this.callConnection = new CallConnectionImpl(this); this.callMedia = new CallMediaImpl(this); this.callRecording = new CallRecordingImpl(this); this.addCustomApiVersionPolicy(options.apiVersion); } /** A function that adds a policy that sets the api-version (or equivalent) to reflect the library version. */ addCustomApiVersionPolicy(apiVersion) { if (!apiVersion) { return; } const apiVersionPolicy = { name: "CustomApiVersionPolicy", async sendRequest(request, next) { const param = request.url.split("?"); if (param.length > 1) { const newParams = param[1].split("&").map((item) => { if (item.indexOf("api-version") > -1) { return "api-version=" + apiVersion; } else { return item; } }); request.url = param[0] + "?" + newParams.join("&"); } return next(request); }, }; this.pipeline.addPolicy(apiVersionPolicy); } /** * Create an outbound call. * @param createCallRequest The create call request. * @param options The options parameters. */ createCall(createCallRequest, options) { return this.sendOperationRequest({ createCallRequest, options }, createCallOperationSpec); } /** * Answer a call using the IncomingCallContext from Event Grid. * @param answerCallRequest The answer call request. * @param options The options parameters. */ answerCall(answerCallRequest, options) { return this.sendOperationRequest({ answerCallRequest, options }, answerCallOperationSpec); } /** * Redirect a call. * @param redirectCallRequest The redirect call request. * @param options The options parameters. */ redirectCall(redirectCallRequest, options) { return this.sendOperationRequest({ redirectCallRequest, options }, redirectCallOperationSpec); } /** * Reject the call. * @param rejectCallRequest The reject call request. * @param options The options parameters. */ rejectCall(rejectCallRequest, options) { return this.sendOperationRequest({ rejectCallRequest, options }, rejectCallOperationSpec); } /** * Create a connection to a CallLocator. * @param connectRequest The create connection request. * @param options The options parameters. */ connect(connectRequest, options) { return this.sendOperationRequest({ connectRequest, options }, connectOperationSpec); } } // Operation Specifications const serializer = coreClient.createSerializer(Mappers, /* isXml */ false); const createCallOperationSpec = { path: "/calling/callConnections", httpMethod: "POST", responses: { 201: { bodyMapper: Mappers.CallConnectionPropertiesInternal, }, default: { bodyMapper: Mappers.CommunicationErrorResponse, }, }, requestBody: Parameters.createCallRequest, queryParameters: [Parameters.apiVersion], urlParameters: [Parameters.endpoint], headerParameters: [ Parameters.contentType, Parameters.accept, Parameters.repeatabilityRequestID, Parameters.repeatabilityFirstSent, ], mediaType: "json", serializer, }; const answerCallOperationSpec = { path: "/calling/callConnections:answer", httpMethod: "POST", responses: { 200: { bodyMapper: Mappers.CallConnectionPropertiesInternal, }, default: { bodyMapper: Mappers.CommunicationErrorResponse, }, }, requestBody: Parameters.answerCallRequest, queryParameters: [Parameters.apiVersion], urlParameters: [Parameters.endpoint], headerParameters: [ Parameters.contentType, Parameters.accept, Parameters.repeatabilityRequestID, Parameters.repeatabilityFirstSent, ], mediaType: "json", serializer, }; const redirectCallOperationSpec = { path: "/calling/callConnections:redirect", httpMethod: "POST", responses: { 204: {}, default: { bodyMapper: Mappers.CommunicationErrorResponse, }, }, requestBody: Parameters.redirectCallRequest, queryParameters: [Parameters.apiVersion], urlParameters: [Parameters.endpoint], headerParameters: [ Parameters.contentType, Parameters.accept, Parameters.repeatabilityRequestID, Parameters.repeatabilityFirstSent, ], mediaType: "json", serializer, }; const rejectCallOperationSpec = { path: "/calling/callConnections:reject", httpMethod: "POST", responses: { 204: {}, default: { bodyMapper: Mappers.CommunicationErrorResponse, }, }, requestBody: Parameters.rejectCallRequest, queryParameters: [Parameters.apiVersion], urlParameters: [Parameters.endpoint], headerParameters: [ Parameters.contentType, Parameters.accept, Parameters.repeatabilityRequestID, Parameters.repeatabilityFirstSent, ], mediaType: "json", serializer, }; const connectOperationSpec = { path: "/calling/callConnections:connect", httpMethod: "POST", responses: { 200: { bodyMapper: Mappers.CallConnectionPropertiesInternal, }, default: { bodyMapper: Mappers.CommunicationErrorResponse, }, }, requestBody: Parameters.connectRequest, queryParameters: [Parameters.apiVersion], urlParameters: [Parameters.endpoint], headerParameters: [ Parameters.contentType, Parameters.accept, Parameters.repeatabilityRequestID, Parameters.repeatabilityFirstSent, ], mediaType: "json", serializer, }; //# sourceMappingURL=callAutomationApiClient.js.map