From b69053ae62400de0aa6683ae0a77abe9528b5ff7 Mon Sep 17 00:00:00 2001 From: Rodribm10 Date: Wed, 15 Apr 2026 10:42:51 -0300 Subject: [PATCH] feat(lifecycle): API clients for rules/config/deliveries + concierge update Co-Authored-By: Claude Sonnet 4.6 --- .../dashboard/api/captain/lifecycleConfig.js | 18 +++++++++++ .../api/captain/lifecycleDeliveries.js | 18 +++++++++++ .../dashboard/api/captain/lifecycleRules.js | 30 +++++++++++++++++++ app/javascript/dashboard/api/captain/units.js | 7 +++++ 4 files changed, 73 insertions(+) create mode 100644 app/javascript/dashboard/api/captain/lifecycleConfig.js create mode 100644 app/javascript/dashboard/api/captain/lifecycleDeliveries.js create mode 100644 app/javascript/dashboard/api/captain/lifecycleRules.js diff --git a/app/javascript/dashboard/api/captain/lifecycleConfig.js b/app/javascript/dashboard/api/captain/lifecycleConfig.js new file mode 100644 index 000000000..bdc112f64 --- /dev/null +++ b/app/javascript/dashboard/api/captain/lifecycleConfig.js @@ -0,0 +1,18 @@ +/* global axios */ +import ApiClient from '../ApiClient'; + +class CaptainLifecycleConfig extends ApiClient { + constructor() { + super('captain/lifecycle_config', { accountScoped: true }); + } + + show() { + return axios.get(this.url); + } + + update(data) { + return axios.patch(this.url, { config: data }); + } +} + +export default new CaptainLifecycleConfig(); diff --git a/app/javascript/dashboard/api/captain/lifecycleDeliveries.js b/app/javascript/dashboard/api/captain/lifecycleDeliveries.js new file mode 100644 index 000000000..e3ada9979 --- /dev/null +++ b/app/javascript/dashboard/api/captain/lifecycleDeliveries.js @@ -0,0 +1,18 @@ +/* global axios */ +import ApiClient from '../ApiClient'; + +class CaptainLifecycleDeliveries extends ApiClient { + constructor() { + super('captain/lifecycle_deliveries', { accountScoped: true }); + } + + get(params = {}) { + return axios.get(this.url, { params }); + } + + show(id) { + return axios.get(`${this.url}/${id}`); + } +} + +export default new CaptainLifecycleDeliveries(); diff --git a/app/javascript/dashboard/api/captain/lifecycleRules.js b/app/javascript/dashboard/api/captain/lifecycleRules.js new file mode 100644 index 000000000..226e1b4bc --- /dev/null +++ b/app/javascript/dashboard/api/captain/lifecycleRules.js @@ -0,0 +1,30 @@ +/* global axios */ +import ApiClient from '../ApiClient'; + +class CaptainLifecycleRules extends ApiClient { + constructor() { + super('captain/lifecycle_rules', { accountScoped: true }); + } + + get(params = {}) { + return axios.get(this.url, { params }); + } + + show(id) { + return axios.get(`${this.url}/${id}`); + } + + create(data) { + return axios.post(this.url, { rule: data }); + } + + update(id, data) { + return axios.patch(`${this.url}/${id}`, { rule: data }); + } + + delete(id) { + return axios.delete(`${this.url}/${id}`); + } +} + +export default new CaptainLifecycleRules(); diff --git a/app/javascript/dashboard/api/captain/units.js b/app/javascript/dashboard/api/captain/units.js index 6fab3a671..4658be475 100644 --- a/app/javascript/dashboard/api/captain/units.js +++ b/app/javascript/dashboard/api/captain/units.js @@ -1,3 +1,4 @@ +/* global axios */ import ApiClient from '../../api/ApiClient'; class CaptainUnitsAPI extends ApiClient { @@ -24,6 +25,12 @@ class CaptainUnitsAPI extends ApiClient { deleteUnit(id) { return this.delete(id); } + + updateConcierge(id, payload) { + return axios.patch(`${this.url}/${id}/concierge`, { + captain_unit: payload, + }); + } } export default new CaptainUnitsAPI();