1 |
|
2 |
|
3 |
|
4 | import { AgentSettings } from "../serviceClient";
|
5 | import {
|
6 | BaseRequestPolicy,
|
7 | RequestPolicy,
|
8 | RequestPolicyFactory,
|
9 | RequestPolicyOptionsLike,
|
10 | } from "./requestPolicy";
|
11 | import { HttpOperationResponse } from "../httpOperationResponse";
|
12 | import { WebResourceLike } from "../webResource";
|
13 |
|
14 | export function agentPolicy(agentSettings?: AgentSettings): RequestPolicyFactory {
|
15 | return {
|
16 | create: (nextPolicy: RequestPolicy, options: RequestPolicyOptionsLike) => {
|
17 | return new AgentPolicy(nextPolicy, options, agentSettings!);
|
18 | },
|
19 | };
|
20 | }
|
21 |
|
22 | export class AgentPolicy extends BaseRequestPolicy {
|
23 | agentSettings: AgentSettings;
|
24 |
|
25 | constructor(
|
26 | nextPolicy: RequestPolicy,
|
27 | options: RequestPolicyOptionsLike,
|
28 | agentSettings: AgentSettings
|
29 | ) {
|
30 | super(nextPolicy, options);
|
31 | this.agentSettings = agentSettings;
|
32 | }
|
33 |
|
34 | public sendRequest(request: WebResourceLike): Promise<HttpOperationResponse> {
|
35 | if (!request.agentSettings) {
|
36 | request.agentSettings = this.agentSettings;
|
37 | }
|
38 | return this._nextPolicy.sendRequest(request);
|
39 | }
|
40 | }
|