@azure/communication-call-automation
Version:
Azure client library for Azure Communication Call Automation services
226 lines • 8.04 kB
JavaScript
/*
* 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