balena-sdk
Version:
The Balena JavaScript SDK
36 lines (35 loc) • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DeviceActionsService = void 0;
class DeviceActionsService {
constructor(deviceUrlsBase, request) {
this.request = request;
this.startAction = ({ uuid, actionName, deviceActionsApiVersion, params, extraOptions, }) => this.makeActionRequest({
method: 'POST',
uuid,
actionNameOrId: actionName,
deviceActionsApiVersion,
params,
extraOptions,
});
this.getActionStatus = ({ uuid, actionId, extraOptions, }) => this.makeActionRequest({
method: 'GET',
uuid,
deviceActionsApiVersion: 'v1',
actionNameOrId: actionId,
extraOptions,
});
this.makeActionRequest = async ({ method, uuid, actionNameOrId, deviceActionsApiVersion, params, extraOptions, }) => {
const data = params ? { parameters: params } : null;
const { body } = await this.request.send({
method,
url: `${this.actionsEndpoint}/${deviceActionsApiVersion}/${uuid}/${actionNameOrId}`,
body: data,
...extraOptions,
});
return body;
};
this.actionsEndpoint = `https://actions.${deviceUrlsBase}`;
}
}
exports.DeviceActionsService = DeviceActionsService;