refactor(ui): cleanup UI client instance getter
[e-mobility-charging-stations-simulator.git] / ui / web / src / components / charging-stations / CSConnector.vue
CommitLineData
32de5a57 1<template>
9dc8b66f
JB
2 <tr class="connectors-table__row">
3 <td class="connectors-table__column">{{ connectorId }}</td>
4 <td class="connectors-table__column">{{ connector.status ?? 'Ø' }}</td>
5 <td class="connectors-table__column">
6 {{ connector.transactionStarted === true ? 'Yes' : 'No' }}
7 </td>
8 <td class="connectors-table__column">
9 {{ atgStatus?.start === true ? 'Yes' : 'No' }}
10 </td>
11 <td class="connectors-table__column">
2610da71 12 <ToggleButton
83468764 13 :id="`${hashId}-${connectorId}-start-transaction`"
2610da71
JB
14 :shared="true"
15 :on="
16 () => {
17 $router.push({
18 name: 'start-transaction',
19 params: { hashId, chargingStationId, connectorId }
20 })
21 }
22 "
23 :off="
24 () => {
25 $router.push({ name: 'charging-stations' })
26 }
c317ae3e 27 "
83468764
JB
28 @clicked="
29 () => {
30 $emit('need-refresh')
31 }
32 "
c317ae3e 33 >
1eb5f592 34 Start Transaction
2610da71 35 </ToggleButton>
9dc8b66f
JB
36 <Button @click="stopTransaction()">Stop Transaction</Button>
37 <Button @click="startAutomaticTransactionGenerator()">Start ATG</Button>
38 <Button @click="stopAutomaticTransactionGenerator()">Stop ATG</Button>
39 </td>
40 </tr>
32de5a57
LM
41</template>
42
43<script setup lang="ts">
cea23fa0 44import { useToast } from 'vue-toast-notification'
9d76f5ec 45import Button from '@/components/buttons/Button.vue'
9dc8b66f 46import type { ConnectorStatus, Status } from '@/types'
2610da71 47import ToggleButton from '@/components/buttons/ToggleButton.vue'
39cd8fcb 48import { useUIClient } from '@/composables'
32de5a57
LM
49
50const props = defineProps<{
66a7748d 51 hashId: string
c317ae3e 52 chargingStationId: string
66a7748d 53 connectorId: number
9dc8b66f
JB
54 connector: ConnectorStatus
55 atgStatus?: Status
66a7748d 56}>()
32de5a57 57
83468764
JB
58const $emit = defineEmits(['need-refresh'])
59
39cd8fcb 60const uiClient = useUIClient()
9d76f5ec 61
cea23fa0
JB
62const $toast = useToast()
63
fa5d129a 64const stopTransaction = (): void => {
cea23fa0
JB
65 uiClient
66 .stopTransaction(props.hashId, props.connector.transactionId)
67 .then(() => {
68 $toast.success('Transaction successfully stopped')
69 })
70 .catch((error: Error) => {
71 $toast.error('Error at stopping transaction')
72 console.error('Error at stopping transaction:', error)
73 })
8fc2e5cc 74}
fa5d129a 75const startAutomaticTransactionGenerator = (): void => {
cea23fa0
JB
76 uiClient
77 .startAutomaticTransactionGenerator(props.hashId, props.connectorId)
78 .then(() => {
79 $toast.success('Automatic transaction generator successfully started')
80 })
81 .catch((error: Error) => {
82 $toast.error('Error at starting automatic transaction generator')
83 console.error('Error at starting automatic transaction generator:', error)
84 })
757b2ecf 85}
fa5d129a 86const stopAutomaticTransactionGenerator = (): void => {
cea23fa0
JB
87 uiClient
88 .stopAutomaticTransactionGenerator(props.hashId, props.connectorId)
89 .then(() => {
90 $toast.success('Automatic transaction generator successfully stopped')
91 })
92 .catch((error: Error) => {
93 $toast.error('Error at stopping automatic transaction generator')
94 console.error('Error at stopping automatic transaction generator:', error)
95 })
757b2ecf 96}
32de5a57 97</script>