feat: add relay composables
This commit is contained in:
13
src/types/mappers/relayDtoMapper.ts
Normal file
13
src/types/mappers/relayDtoMapper.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import { isNil } from '../../utils/isNil';
|
||||
import { RelayState, Relay, type RelayDto } from '../relay';
|
||||
|
||||
const relayStateToDomain = (dto: string | null): RelayState => {
|
||||
if (isNil(dto) || dto.trim() === '') {
|
||||
return RelayState.Off;
|
||||
}
|
||||
return dto.trim().toLowerCase() === 'on' ? RelayState.On : RelayState.Off;
|
||||
};
|
||||
|
||||
export const relayDtoToDomain = (dto: RelayDto): Relay => {
|
||||
return new Relay(dto.id, relayStateToDomain(dto.state), dto.label);
|
||||
};
|
||||
20
src/types/relay.ts
Normal file
20
src/types/relay.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
import type { components } from '../api/schema';
|
||||
|
||||
export type RelayDto = components['schemas']['RelayDto'];
|
||||
|
||||
export enum RelayState {
|
||||
On = 'on',
|
||||
Off = 'off',
|
||||
}
|
||||
|
||||
export class Relay {
|
||||
id: number;
|
||||
state: RelayState;
|
||||
label: string;
|
||||
|
||||
constructor(id: number, state: RelayState, label: string) {
|
||||
this.id = id;
|
||||
this.state = state;
|
||||
this.label = label;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user