abap-adt-api
Version:
Interface to Abap Developer Tools webservice
98 lines (97 loc) • 5.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.tracesDelete = exports.tracesDeleteConfiguration = exports.tracesCreateConfiguration = exports.tracesSetParameters = exports.tracesStatements = exports.tracesDbAccess = exports.tracesHitList = exports.tracesListRequests = exports.tracesList = exports.traceProcessObjects = void 0;
const tracetypes_1 = require("./tracetypes");
const __1 = require("..");
var tracetypes_2 = require("./tracetypes");
Object.defineProperty(exports, "traceProcessObjects", { enumerable: true, get: function () { return tracetypes_2.traceProcessObjects; } });
const tracesList = async (h, user) => {
const qs = { user: user.toUpperCase() };
const response = await h.request(`/sap/bc/adt/runtime/traces/abaptraces`, {
qs
});
return (0, tracetypes_1.parseTraceResults)(response.body);
};
exports.tracesList = tracesList;
const tracesListRequests = async (h, user) => {
const qs = { user: user.toUpperCase() };
const response = await h.request(`/sap/bc/adt/runtime/traces/abaptraces/requests`, { qs });
return (0, tracetypes_1.parseTraceRequestList)(response.body);
};
exports.tracesListRequests = tracesListRequests;
const traceId = (id) => id.startsWith("/sap/bc/adt/runtime/traces/abaptraces/")
? id
: `/sap/bc/adt/runtime/traces/abaptraces/${id}`;
const tracesHitList = async (h, id, withSystemEvents = false) => {
const opts = { qs: { withSystemEvents } };
const response = await h.request(`${traceId(id)}/hitlist`, opts);
return (0, tracetypes_1.parseTraceHitList)(response.body);
};
exports.tracesHitList = tracesHitList;
const tracesDbAccess = async (h, id, withSystemEvents = false) => {
const opts = { qs: { withSystemEvents } };
const response = await h.request(`${traceId(id)}/dbAccesses`, opts);
return (0, tracetypes_1.parseTraceDbAccess)(response.body);
};
exports.tracesDbAccess = tracesDbAccess;
const tracesStatements = async (h, id, options = {}) => {
const headers = {
Accept: "application/vnd.sap.adt.runtime.traces.abaptraces.aggcalltree+xml, application/xml"
};
const opts = { qs: options, headers };
const response = await h.request(`${traceId(id)}/statements`, opts);
return (0, tracetypes_1.parseTraceStatements)(response.body);
};
exports.tracesStatements = tracesStatements;
const tracesSetParameters = async (h, parameters) => {
const headers = { "Content-Type": "application/xml" };
const body = `<?xml version="1.0" encoding="UTF-8"?>
<trc:parameters xmlns:trc="http://www.sap.com/adt/runtime/traces/abaptraces">
<trc:allMiscAbapStatements value="${parameters.allMiscAbapStatements}"></trc:allMiscAbapStatements>
<trc:allProceduralUnits value="${parameters.allProceduralUnits}"></trc:allProceduralUnits>
<trc:allInternalTableEvents value="${parameters.allInternalTableEvents}"></trc:allInternalTableEvents>
<trc:allDynproEvents value="${parameters.allDynproEvents}"></trc:allDynproEvents>
<trc:description value="${parameters.description}"></trc:description>
<trc:aggregate value="${parameters.aggregate}"></trc:aggregate>
<trc:explicitOnOff value="${parameters.explicitOnOff}"></trc:explicitOnOff>
<trc:withRfcTracing value="${parameters.withRfcTracing}"></trc:withRfcTracing>
<trc:allSystemKernelEvents value="${parameters.allSystemKernelEvents}"></trc:allSystemKernelEvents>
<trc:sqlTrace value="${parameters.sqlTrace}"></trc:sqlTrace>
<trc:allDbEvents value="${parameters.allDbEvents}"></trc:allDbEvents>
<trc:maxSizeForTraceFile value="${parameters.maxSizeForTraceFile}"></trc:maxSizeForTraceFile>
<trc:maxTimeForTracing value="${parameters.maxTimeForTracing}"></trc:maxTimeForTracing>
</trc:parameters>`;
const opts = { headers, method: "POST", body };
const response = await h.request(`/sap/bc/adt/runtime/traces/abaptraces/parameters`, opts);
const uri = response.headers["location"];
if (!uri)
throw (0, __1.adtException)("trace configuration not set");
return uri;
};
exports.tracesSetParameters = tracesSetParameters;
const tracesCreateConfiguration = async (h, config) => {
if (!tracetypes_1.traceProcessObjects[config.processType].includes(config.objectType))
throw (0, __1.adtException)(`Invalid process type ${config.processType} or object type ${config.objectType}`);
const qs = {
...config,
server: config.server || "*",
processType: tracetypes_1.traceProcessTypeUris[config.processType],
objectType: tracetypes_1.traceObjectTypeUris[config.objectType]
};
const opts = { method: "POST", qs };
const response = await h.request(`/sap/bc/adt/runtime/traces/abaptraces/requests`, opts);
return (0, tracetypes_1.parseTraceRequestList)(response.body);
};
exports.tracesCreateConfiguration = tracesCreateConfiguration;
const tracesDeleteConfiguration = async (h, id) => {
const prefix = `/sap/bc/adt/runtime/traces/abaptraces/requests`;
const url = id.startsWith(prefix) ? id : `${prefix}/${id}`;
await h.request(url, { method: "DELETE" });
};
exports.tracesDeleteConfiguration = tracesDeleteConfiguration;
const tracesDelete = async (h, id) => {
const prefix = `/sap/bc/adt/runtime/traces/abaptraces/`;
const url = id.startsWith(prefix) ? id : `${prefix}/${id}`;
await h.request(url, { method: "DELETE" });
};
exports.tracesDelete = tracesDelete;