18 lines
1.1 KiB
JavaScript
18 lines
1.1 KiB
JavaScript
function createWorkloadActionOptions({ requestConsumerTokenServiceOnce, sendRuntimeMessage, appendBackgroundRequestLog, messageTypes }) {
|
|
async function request(type, workloadId, isCurrent, payload) {
|
|
const authorizations = await requestConsumerTokenServiceOnce();
|
|
if (!isCurrent()) return null;
|
|
const authorization = authorizations?.workloadActions;
|
|
if (!authorization?.value) throw new Error("WWB-TS uiaasHeader.value is unavailable.");
|
|
const result = await sendRuntimeMessage({ type, ...(workloadId === undefined ? {} : { workloadId }), ...(payload ? { payload } : {}), authorization });
|
|
appendBackgroundRequestLog(result?.debugRequests || []);
|
|
if (!result?.ok) throw new Error(result?.error || "Unable to load Action options.");
|
|
return result;
|
|
}
|
|
return {
|
|
save: (payload, isCurrent) => request(messageTypes.requestMgmtAction, undefined, isCurrent, payload),
|
|
requestTeamMembers: (id, isCurrent) => request(messageTypes.requestActionTeamMembers, id, isCurrent),
|
|
requestLookup: isCurrent => request(messageTypes.requestActionFindLookup, undefined, isCurrent)
|
|
};
|
|
}
|