Add MachineRelayType and refactor relay handling for self-serve dashboard:
- Added `MachineRelayType` for defining relay types and statuses. - Refactored relay logic into `SelfServeConnectivityRelay` for cleaner separation of concerns. - Updated `MachineType` to include relay configurations for machine, program picker, and cleaner. - Replaced inline relay handling in `SelfServeMachineConnectivity` with the reusable `SelfServeConnectivityRelay` module.
This commit is contained in:
+77
@@ -0,0 +1,77 @@
|
||||
<script lang="ts">
|
||||
import {SessionUser} from "@/components/session/token/SessionUser.vue";
|
||||
|
||||
/**
|
||||
* Get relay status
|
||||
* GET /modules/self-serve/lane/relay/machine/status
|
||||
* POST /modules/self-serve/lane/relay/machine/set (with lane_id + on)
|
||||
*/
|
||||
export const relays = {
|
||||
get: {
|
||||
status: {
|
||||
/**
|
||||
* Get machine relay status
|
||||
* Example response:
|
||||
* {
|
||||
* "lane_id": 3,
|
||||
* "relay": "MACHINE",
|
||||
* "relay_id": "e4b3231cce40",
|
||||
* "online": true,
|
||||
* "on": true
|
||||
* }
|
||||
* @param laneId
|
||||
* @constructor
|
||||
*/
|
||||
MACHINE: (laneId: number) => SessionUser.request(
|
||||
"/modules/self-serve/lane/relay/machine/status",
|
||||
"GET",
|
||||
{
|
||||
lane_id: laneId
|
||||
}
|
||||
),
|
||||
PROGRAM_PICKER: (laneId: number) => SessionUser.request(
|
||||
"/modules/self-serve/lane/relay/machine_program_picker/status",
|
||||
"GET",
|
||||
{
|
||||
lane_id: laneId
|
||||
}
|
||||
),
|
||||
CLEANER: (laneId: number) => SessionUser.request(
|
||||
"/modules/self-serve/lane/relay/machine_cleaner/status",
|
||||
"GET",
|
||||
{
|
||||
lane_id: laneId
|
||||
}
|
||||
)
|
||||
}
|
||||
},
|
||||
set: {
|
||||
MACHINE: (laneId: number, on: boolean) => SessionUser.request(
|
||||
"/modules/self-serve/lane/relay/machine/set",
|
||||
"POST",
|
||||
{
|
||||
lane_id: laneId,
|
||||
on: on
|
||||
}
|
||||
),
|
||||
PROGRAM_PICKER: (laneId: number, on: boolean) => SessionUser.request(
|
||||
"/modules/self-serve/lane/relay/machine_program_picker/set",
|
||||
"POST",
|
||||
{
|
||||
lane_id: laneId,
|
||||
on: on
|
||||
}
|
||||
),
|
||||
CLEANER: (laneId: number, on: boolean) => SessionUser.request(
|
||||
"/modules/self-serve/lane/relay/machine_cleaner/set",
|
||||
"POST",
|
||||
{
|
||||
lane_id: laneId,
|
||||
on: on
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export default { relays }
|
||||
</script>
|
||||
+2
-72
@@ -1,77 +1,7 @@
|
||||
<script lang="ts">
|
||||
import {SessionUser} from "@/components/session/token/SessionUser.vue";
|
||||
import { relays } from "@/views/dashboards/superUserDashboard/selfserve/components/SelfServeConnectivityRelay.vue";
|
||||
|
||||
/**
|
||||
* Get relay status
|
||||
* GET /modules/self-serve/lane/relay/machine/status
|
||||
* POST /modules/self-serve/lane/relay/machine/set (with lane_id + on)
|
||||
*/
|
||||
export const relays = {
|
||||
get: {
|
||||
status: {
|
||||
/**
|
||||
* Get machine relay status
|
||||
* Example response:
|
||||
* {
|
||||
* "lane_id": 3,
|
||||
* "relay": "MACHINE",
|
||||
* "relay_id": "e4b3231cce40",
|
||||
* "online": true,
|
||||
* "on": true
|
||||
* }
|
||||
* @param laneId
|
||||
* @constructor
|
||||
*/
|
||||
MACHINE: (laneId: number) => SessionUser.request(
|
||||
"/modules/self-serve/lane/relay/machine/status",
|
||||
"GET",
|
||||
{
|
||||
lane_id: laneId
|
||||
}
|
||||
),
|
||||
PROGRAM_PICKER: (laneId: number) => SessionUser.request(
|
||||
"/modules/self-serve/lane/relay/machine_program_picker/status",
|
||||
"GET",
|
||||
{
|
||||
lane_id: laneId
|
||||
}
|
||||
),
|
||||
CLEANER: (laneId: number) => SessionUser.request(
|
||||
"/modules/self-serve/lane/relay/machine_cleaner/status",
|
||||
"GET",
|
||||
{
|
||||
lane_id: laneId
|
||||
}
|
||||
)
|
||||
}
|
||||
},
|
||||
set: {
|
||||
MACHINE: (laneId: number, on: boolean) => SessionUser.request(
|
||||
"/modules/self-serve/lane/relay/machine/set",
|
||||
"POST",
|
||||
{
|
||||
lane_id: laneId,
|
||||
on: on
|
||||
}
|
||||
),
|
||||
PROGRAM_PICKER: (laneId: number, on: boolean) => SessionUser.request(
|
||||
"/modules/self-serve/lane/relay/machine_program_picker/set",
|
||||
"POST",
|
||||
{
|
||||
lane_id: laneId,
|
||||
on: on
|
||||
}
|
||||
),
|
||||
CLEANER: (laneId: number, on: boolean) => SessionUser.request(
|
||||
"/modules/self-serve/lane/relay/machine_cleaner/set",
|
||||
"POST",
|
||||
{
|
||||
lane_id: laneId,
|
||||
on: on
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export { relays };
|
||||
export default { relays }
|
||||
</script>
|
||||
+2
-5
@@ -1,5 +1,5 @@
|
||||
<script setup lang="ts">
|
||||
import {defineProps, onMounted, ref} from 'vue';
|
||||
import {defineProps} from 'vue';
|
||||
import {BButton} from "buefy";
|
||||
import { relays } from "@/views/dashboards/superUserDashboard/selfserve/components/SelfServeMachineConnectivity.vue";
|
||||
import MachineType from "@/views/dashboards/superUserDashboard/selfserve/types/MachineType.vue";
|
||||
@@ -9,10 +9,7 @@ defineProps<{machine: MachineType}>();
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<p>Controls</p>
|
||||
<!-- Get status -->
|
||||
<button @click="relays.get.status.MACHINE(machine.id)">Get Status</button>
|
||||
<div class="flex gap-2">
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
<script lang="ts">
|
||||
|
||||
export const relays = {
|
||||
MACHINE: "MACHINE",
|
||||
PROGRAM_PICKER: "PROGRAM_PICKER",
|
||||
CLEANER: "CLEANER",
|
||||
}
|
||||
|
||||
type MachineRelay = {
|
||||
lane_id: number;
|
||||
relay: keyof typeof relays;
|
||||
relay_id: string;
|
||||
online: boolean;
|
||||
on: boolean;
|
||||
}
|
||||
export type { MachineRelay };
|
||||
export default MachineRelay;
|
||||
</script>
|
||||
@@ -1,12 +1,17 @@
|
||||
<script lang="ts">
|
||||
// Machine interface
|
||||
import MachineStatusType from "@/views/dashboards/superUserDashboard/selfserve/types/MachineStatusType.vue";
|
||||
import MachineRelay from "@/views/dashboards/superUserDashboard/selfserve/types/MachineRelayType.vue";
|
||||
|
||||
type Machine = {
|
||||
id: number;
|
||||
name: string;
|
||||
status: typeof MachineStatusType[keyof typeof MachineStatusType];
|
||||
|
||||
relays: {
|
||||
machine: MachineRelay,
|
||||
program_picker: MachineRelay,
|
||||
cleaner: MachineRelay,
|
||||
}
|
||||
}
|
||||
export type { Machine };
|
||||
export default Machine;
|
||||
|
||||
Reference in New Issue
Block a user