@balena/open-balena-api 31.2.4-build-renovate-lock-file-maintenance-5404b65c3156f1565fb9d7b010d755bca11a440e-1 → 31.2.5-build-move-device-service-propagate-hook-77b1e4bca920f059cfe81ba757d2dcedc1132101-2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,41 @@
1
+ import { hooks, errors } from '@balena/pinejs';
2
+ async function backfillServiceInstall({ request, api, }) {
3
+ const { device: deviceId, service: serviceId } = request.values;
4
+ if (deviceId == null && serviceId == null) {
5
+ return;
6
+ }
7
+ if ((deviceId == null && serviceId != null) ||
8
+ (deviceId != null && serviceId == null)) {
9
+ throw new errors.BadRequestError('Both or none of device and service must be specified');
10
+ }
11
+ let si = await api.get({
12
+ resource: 'service_install',
13
+ id: {
14
+ device: deviceId,
15
+ installs__service: serviceId,
16
+ },
17
+ options: {
18
+ $select: ['id'],
19
+ },
20
+ });
21
+ if (si == null) {
22
+ si = await api.post({
23
+ resource: 'service_install',
24
+ body: {
25
+ device: deviceId,
26
+ installs__service: serviceId,
27
+ },
28
+ });
29
+ }
30
+ if (si == null) {
31
+ throw new errors.BadRequestError(`No service install exists for device: ${deviceId} and service ${serviceId} and one could not be created`);
32
+ }
33
+ request.values.service_install = si.id;
34
+ }
35
+ hooks.addPureHook('POST', 'resin', 'device_service_environment_variable', {
36
+ POSTPARSE: backfillServiceInstall,
37
+ });
38
+ hooks.addPureHook('PATCH', 'resin', 'device_service_environment_variable', {
39
+ POSTPARSE: backfillServiceInstall,
40
+ });
41
+ //# sourceMappingURL=backfill-service-install-on-device-service-env-var.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backfill-service-install-on-device-service-env-var.js","sourceRoot":"","sources":["../../../../src/features/service-install/hooks/backfill-service-install-on-device-service-env-var.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAkB,MAAM,gBAAgB,CAAC;AAE/D,KAAK,UAAU,sBAAsB,CAAC,EACrC,OAAO,EACP,GAAG,GAC0B;IAC7B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEhE,IAAI,QAAQ,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QAC3C,OAAO;IACR,CAAC;IAED,IACC,CAAC,QAAQ,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC;QACvC,CAAC,QAAQ,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,EACtC,CAAC;QACF,MAAM,IAAI,MAAM,CAAC,eAAe,CAC/B,sDAAsD,CACtD,CAAC;IACH,CAAC;IAED,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;QACtB,QAAQ,EAAE,iBAAiB;QAC3B,EAAE,EAAE;YACH,MAAM,EAAE,QAAQ;YAChB,iBAAiB,EAAE,SAAS;SAC5B;QACD,OAAO,EAAE;YACR,OAAO,EAAE,CAAC,IAAI,CAAC;SACf;KACD,CAAC,CAAC;IAEH,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QAChB,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC;YACnB,QAAQ,EAAE,iBAAiB;YAC3B,IAAI,EAAE;gBACL,MAAM,EAAE,QAAQ;gBAChB,iBAAiB,EAAE,SAAS;aAC5B;SACD,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QAChB,MAAM,IAAI,MAAM,CAAC,eAAe,CAC/B,yCAAyC,QAAQ,gBAAgB,SAAS,+BAA+B,CACzG,CAAC;IACH,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,eAAe,GAAG,EAAE,CAAC,EAAE,CAAC;AACxC,CAAC;AAED,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,qCAAqC,EAAE;IACzE,SAAS,EAAE,sBAAsB;CACjC,CAAC,CAAC;AAEH,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,qCAAqC,EAAE;IAC1E,SAAS,EAAE,sBAAsB;CACjC,CAAC,CAAC"}
@@ -1 +1 @@
1
- import './backfill-device-service-environment-variable.js';
1
+ import './backfill-service-install-on-device-service-env-var.js';
@@ -1,2 +1,2 @@
1
- import './backfill-device-service-environment-variable.js';
1
+ import './backfill-service-install-on-device-service-env-var.js';
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/features/service-install/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,mDAAmD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/features/service-install/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,yDAAyD,CAAC"}
@@ -1,2 +1,32 @@
1
- export {};
1
+ import { hooks, sbvrUtils, errors } from '@balena/pinejs';
2
+ const addReadOnlyHook = (methods, resource, hook) => {
3
+ methods.map((method) => {
4
+ hooks.addHook(method, 'v7', resource, {
5
+ ...hook,
6
+ sideEffects: false,
7
+ readOnlyTx: true,
8
+ });
9
+ });
10
+ };
11
+ addReadOnlyHook(['POST', 'PATCH', 'PUT'], 'device_service_environment_variable', {
12
+ POSTPARSE: async ({ request, api }) => {
13
+ const { service_install: siId } = request.values;
14
+ if (siId == null) {
15
+ return;
16
+ }
17
+ const si = await sbvrUtils.api.resin.get({
18
+ resource: 'service_install',
19
+ passthrough: api.passthrough,
20
+ id: siId,
21
+ options: {
22
+ $select: ['device', 'service'],
23
+ },
24
+ });
25
+ if (si == null) {
26
+ throw new errors.UnauthorizedError();
27
+ }
28
+ request.values.device = si.device.__id;
29
+ request.values.service = si.service.__id;
30
+ },
31
+ });
2
32
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/translations/v7/hooks.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/translations/v7/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,eAAe,GAAG,CACvB,OAAmD,EACnD,QAAgB,EAChB,IAA2B,EAC1B,EAAE;IACH,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACtB,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;YACrC,GAAG,IAAI;YACP,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,IAAI;SAChB,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,CACd,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EACxB,qCAAqC,EACrC;IACC,SAAS,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE;QACrC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAEjD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YAClB,OAAO;QACR,CAAC;QAED,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;YACxC,QAAQ,EAAE,iBAAiB;YAC3B,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,EAAE,EAAE,IAAI;YACR,OAAO,EAAE;gBACR,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;aAC9B;SACD,CAAC,CAAC;QAEH,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;YAChB,MAAM,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACtC,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;QACvC,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC1C,CAAC;CACD,CACD,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@balena/open-balena-api",
3
3
  "description": "Internet of things, Made Simple",
4
- "version": "31.2.4-build-renovate-lock-file-maintenance-5404b65c3156f1565fb9d7b010d755bca11a440e-1",
4
+ "version": "31.2.5-build-move-device-service-propagate-hook-77b1e4bca920f059cfe81ba757d2dcedc1132101-2",
5
5
  "license": "AGPL-3.0",
6
6
  "repository": {
7
7
  "type": "git",
@@ -166,6 +166,6 @@
166
166
  "loader": "ts-node/esm/transpile-only"
167
167
  },
168
168
  "versionist": {
169
- "publishedAt": "2024-11-18T19:07:32.783Z"
169
+ "publishedAt": "2024-11-18T23:13:20.371Z"
170
170
  }
171
171
  }
@@ -1,26 +0,0 @@
1
- import { hooks, errors } from '@balena/pinejs';
2
- async function backfillDeviceAndService({ request, api, }) {
3
- const { service_install: siId } = request.values;
4
- if (siId == null) {
5
- return;
6
- }
7
- const si = await api.get({
8
- resource: 'service_install',
9
- id: siId,
10
- options: {
11
- $select: ['device', 'service'],
12
- },
13
- });
14
- if (si == null) {
15
- throw new errors.UnauthorizedError();
16
- }
17
- request.values.device = si.device.__id;
18
- request.values.service = si.service.__id;
19
- }
20
- hooks.addPureHook('POST', 'resin', 'device_service_environment_variable', {
21
- POSTPARSE: backfillDeviceAndService,
22
- });
23
- hooks.addPureHook('PATCH', 'resin', 'device_service_environment_variable', {
24
- POSTPARSE: backfillDeviceAndService,
25
- });
26
- //# sourceMappingURL=backfill-device-service-environment-variable.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"backfill-device-service-environment-variable.js","sourceRoot":"","sources":["../../../../src/features/service-install/hooks/backfill-device-service-environment-variable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAkB,MAAM,gBAAgB,CAAC;AAE/D,KAAK,UAAU,wBAAwB,CAAC,EACvC,OAAO,EACP,GAAG,GAC0B;IAC7B,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO;IACR,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;QACxB,QAAQ,EAAE,iBAAiB;QAC3B,EAAE,EAAE,IAAI;QACR,OAAO,EAAE;YACR,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;SAC9B;KACD,CAAC,CAAC;IAEH,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QAChB,MAAM,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;IACtC,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;IACvC,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;AAC1C,CAAC;AAED,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,qCAAqC,EAAE;IACzE,SAAS,EAAE,wBAAwB;CACnC,CAAC,CAAC;AAEH,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,qCAAqC,EAAE;IAC1E,SAAS,EAAE,wBAAwB;CACnC,CAAC,CAAC"}