msal
Version:
Microsoft Authentication Library for js
86 lines (69 loc) • 3.18 kB
text/typescript
/*
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License.
*/
import TelemetryEvent from "./TelemetryEvent";
import { scrubTenantFromUri, prependEventNamePrefix } from "./TelemetryUtils";
import { ServerRequestParameters } from "../ServerRequestParameters";
import { StringDict } from "../MsalTypes";
export const EVENT_KEYS = {
HTTP_PATH: prependEventNamePrefix("http_path"),
USER_AGENT: prependEventNamePrefix("user_agent"),
QUERY_PARAMETERS: prependEventNamePrefix("query_parameters"),
API_VERSION: prependEventNamePrefix("api_version"),
RESPONSE_CODE: prependEventNamePrefix("response_code"),
O_AUTH_ERROR_CODE: prependEventNamePrefix("oauth_error_code"),
HTTP_METHOD: prependEventNamePrefix("http_method"),
REQUEST_ID_HEADER: prependEventNamePrefix("request_id_header"),
SPE_INFO: prependEventNamePrefix("spe_info"),
SERVER_ERROR_CODE: prependEventNamePrefix("server_error_code"),
SERVER_SUB_ERROR_CODE: prependEventNamePrefix("server_sub_error_code"),
URL: prependEventNamePrefix("url")
};
export default class HttpEvent extends TelemetryEvent {
constructor(correlationId: string, eventLabel: string) {
super(prependEventNamePrefix("http_event"), correlationId, eventLabel);
}
public set url(url: string) {
const scrubbedUri = scrubTenantFromUri(url);
this.event[EVENT_KEYS.URL] = scrubbedUri && scrubbedUri.toLowerCase();
}
public set httpPath(httpPath: string) {
this.event[EVENT_KEYS.HTTP_PATH] = scrubTenantFromUri(httpPath).toLowerCase();
}
public set userAgent(userAgent: string) {
this.event[EVENT_KEYS.USER_AGENT] = userAgent;
}
public set queryParams(queryParams: StringDict) {
this.event[EVENT_KEYS.QUERY_PARAMETERS] = ServerRequestParameters.generateQueryParametersString(queryParams);
}
public set apiVersion(apiVersion: string) {
this.event[EVENT_KEYS.API_VERSION] = apiVersion.toLowerCase();
}
public set httpResponseStatus(statusCode: number) {
this.event[EVENT_KEYS.RESPONSE_CODE] = statusCode;
}
public set oAuthErrorCode(errorCode: string) {
this.event[EVENT_KEYS.O_AUTH_ERROR_CODE] = errorCode;
}
public set httpMethod(httpMethod: string) {
this.event[EVENT_KEYS.HTTP_METHOD] = httpMethod;
}
public set requestIdHeader(requestIdHeader: string) {
this.event[EVENT_KEYS.REQUEST_ID_HEADER] = requestIdHeader;
}
/**
* Indicates whether the request was executed on a ring serving SPE traffic.
* An empty string indicates this occurred on an outer ring, and the string "I"
* indicates the request occurred on the inner ring
*/
public set speInfo(speInfo: string) {
this.event[EVENT_KEYS.SPE_INFO] = speInfo;
}
public set serverErrorCode(errorCode: string) {
this.event[EVENT_KEYS.SERVER_ERROR_CODE] = errorCode;
}
public set serverSubErrorCode(subErrorCode: string) {
this.event[EVENT_KEYS.SERVER_SUB_ERROR_CODE] = subErrorCode;
}
}