diff --git a/alarm/.prettierrc.json b/alarm/.prettierrc.json index 66e23359c..7307ef565 100644 --- a/alarm/.prettierrc.json +++ b/alarm/.prettierrc.json @@ -3,6 +3,7 @@ "semi": false, "tabWidth": 2, "singleQuote": true, - "printWidth": 100, - "trailingComma": "none" -} \ No newline at end of file + "printWidth": 110, + "trailingComma": "none", + "arrowParens": "avoid" +} diff --git a/alarm/src/controller/anomaly.ts b/alarm/src/controller/anomaly.ts index 0bbe236e5..cc136ba26 100644 --- a/alarm/src/controller/anomaly.ts +++ b/alarm/src/controller/anomaly.ts @@ -13,16 +13,8 @@ import { DeviceId } from '@domain/device/core/DeviceId.js' import { Measure } from '@domain/device/core/impl/enum/Measure.js' import { ObjectClass } from '@domain/security-rule/core/impl/enum/ObjectClass.js' -export const exceedingModel: Model = model( - 'Exceeding', - exceedingSchema, - 'anomaly' -) -export const intrusionModel: Model = model( - 'Intrusion', - intrusionSchema, - 'anomaly' -) +export const exceedingModel: Model = model('Exceeding', exceedingSchema, 'anomaly') +export const intrusionModel: Model = model('Intrusion', intrusionSchema, 'anomaly') const anomalyManager: AnomalyRepository = new AnomalyRepositoryImpl(exceedingModel, intrusionModel) const anomalyFactory: AnomalyFactory = new AnomalyFactoryImpl() diff --git a/alarm/src/controller/notification.ts b/alarm/src/controller/notification.ts index 93d97b923..dcd1722ac 100644 --- a/alarm/src/controller/notification.ts +++ b/alarm/src/controller/notification.ts @@ -17,9 +17,7 @@ export const notificationModel: Model = model( 'notification' ) -const notificationManager: NotificationRepository = new NotificationRepositoryImpl( - notificationModel -) +const notificationManager: NotificationRepository = new NotificationRepositoryImpl(notificationModel) const notificationFactory: NotificationFactory = new NotificationFactoryImpl() const anomalyFactory: AnomalyFactory = new AnomalyFactoryImpl() export const notificationController = { diff --git a/alarm/src/controller/recognizingNode.ts b/alarm/src/controller/recognizingNode.ts index 094fac254..06dee2e58 100644 --- a/alarm/src/controller/recognizingNode.ts +++ b/alarm/src/controller/recognizingNode.ts @@ -30,11 +30,7 @@ export const recognizingNodeController = { }, updateRecognizingNode: async (req: Request): Promise => { await recognizingNodeManager.updateRecognizingNode( - recognizingNodeFactory.createRecognizingNode( - req.body.id, - req.body.ipAddress, - req.body.deviceIds - ) + recognizingNodeFactory.createRecognizingNode(req.body.id, req.body.ipAddress, req.body.deviceIds) ) }, deleteRecognizingNode: async (id: string): Promise => { diff --git a/alarm/src/index.ts b/alarm/src/index.ts index c40da8ca2..eb06414fb 100644 --- a/alarm/src/index.ts +++ b/alarm/src/index.ts @@ -65,7 +65,7 @@ const mongoConnect = async (): Promise => { .then(async (): Promise => { console.log(`Connected to Mongo DB ${dbName} at ${host}`) }) - .catch((e) => console.log(e)) + .catch(e => console.log(e)) } if (process.env.NODE_ENV !== 'test') { diff --git a/auth/.prettierrc.json b/auth/.prettierrc.json index 66e23359c..7307ef565 100644 --- a/auth/.prettierrc.json +++ b/auth/.prettierrc.json @@ -3,6 +3,7 @@ "semi": false, "tabWidth": 2, "singleQuote": true, - "printWidth": 100, - "trailingComma": "none" -} \ No newline at end of file + "printWidth": 110, + "trailingComma": "none", + "arrowParens": "avoid" +} diff --git a/auth/src/controller/user.ts b/auth/src/controller/user.ts index 0aa72dd4d..74b925e5f 100644 --- a/auth/src/controller/user.ts +++ b/auth/src/controller/user.ts @@ -29,19 +29,14 @@ export const userController = { return await userManager.getUsers() }, createUser: async (req: Request): Promise => { - const contacts: Contact[] = req.body.contacts.map( - (contactObj: { value: string; type: string }) => - contactFactory.createContact( - contactObj.value, - ContactTypeConverter.convertToContactType(contactObj.type) - ) + const contacts: Contact[] = req.body.contacts.map((contactObj: { value: string; type: string }) => + contactFactory.createContact( + contactObj.value, + ContactTypeConverter.convertToContactType(contactObj.type) + ) ) - const deviceIds: DeviceId[] = req.body.deviceIds.map( - (deviceIdObj: { type: string; code: string }) => - deviceIdFactory.createId( - DeviceTypeConverter.convertToDeviceType(deviceIdObj.type), - deviceIdObj.code - ) + const deviceIds: DeviceId[] = req.body.deviceIds.map((deviceIdObj: { type: string; code: string }) => + deviceIdFactory.createId(DeviceTypeConverter.convertToDeviceType(deviceIdObj.type), deviceIdObj.code) ) const user: User = userFactory.createUser( req.body.id, diff --git a/auth/src/index.ts b/auth/src/index.ts index 89d8f9852..9e7968b72 100644 --- a/auth/src/index.ts +++ b/auth/src/index.ts @@ -52,7 +52,7 @@ const mongoConnect = async (): Promise => { .then(async () => { console.log(`Connected to Mongo DB ${dbName} at ${host}`) }) - .catch((e) => console.log(e)) + .catch(e => console.log(e)) } if (process.env.NODE_ENV !== 'test') { diff --git a/camera/.prettierrc.json b/camera/.prettierrc.json index 66e23359c..7307ef565 100644 --- a/camera/.prettierrc.json +++ b/camera/.prettierrc.json @@ -3,6 +3,7 @@ "semi": false, "tabWidth": 2, "singleQuote": true, - "printWidth": 100, - "trailingComma": "none" -} \ No newline at end of file + "printWidth": 110, + "trailingComma": "none", + "arrowParens": "avoid" +} diff --git a/camera/package.json b/camera/package.json index dd661138f..b433ffcc7 100644 --- a/camera/package.json +++ b/camera/package.json @@ -7,7 +7,7 @@ "main": "dist/src/index.js", "scripts": { "serve": "node .", - "start": "npm run build && node .", + "dev": "npm run build && NODE_ENV=develop node --env-file=../.env .", "build": "tsc && tsc-alias", "watch": "tsc -w & tsc-alias -w & nodemon .", "test": "vitest --run", diff --git a/camera/src/index.ts b/camera/src/index.ts index ec77301a7..1cbf720d5 100644 --- a/camera/src/index.ts +++ b/camera/src/index.ts @@ -8,14 +8,8 @@ import { produce } from './producer.js' config() export const app: Express = express() - app.use(express.json()) -if (process.env.CAMERA_CODE === undefined) { - console.log('No camera code provided') - process.exit(1) -} -export const CAMERA_CODE: string = process.env.CAMERA_CODE const PORT: number = Number(process.env.CAMERA_PORT) || 5001 app.use((req: Request, res: Response, next: NextFunction) => { @@ -42,7 +36,7 @@ const mongoConnect = async () => { `Connected to MongoDB database ${process.env.DB_NAME} at ${process.env.DB_HOST}:${process.env.DB_PORT}` ) }) - .catch((e) => console.log(e)) + .catch(e => console.log(e)) } if (process.env.NODE_ENV === 'test') { diff --git a/camera/src/producer.ts b/camera/src/producer.ts index cbe8d37f4..06ed7e753 100644 --- a/camera/src/producer.ts +++ b/camera/src/producer.ts @@ -1,16 +1,32 @@ import { Kafka, Partitioners, Producer } from 'kafkajs' import path from 'path' import * as fs from 'fs' -import { CAMERA_CODE } from './index.js' + +import { DeviceIdFactoryImpl } from '@domain/device/factories/impl/DeviceIdFactoryImpl.js' +import { DeviceFactoryImpl } from '@domain/device/factories/impl/DeviceFactoryImpl.js' +import { ResolutionFactoryImpl } from '@domain/device/factories/impl/ResolutionFactoryImpl.js' +import { Camera } from '@domain/device/core/Camera.js' + +if (process.env.CAMERA_CODE === undefined && process.env.NODE_ENV !== 'develop') { + console.log('No camera code provided') + process.exit(1) +} +const CAMERA_CODE: string = process.env.CAMERA_CODE || 'cam-01' const kafkaContainer: string = process.env.KAFKA_CONTAINER || 'revue-kafka' const kafkaPort: string = process.env.KAFKA_PORT || '9092' const kafka: Kafka = new Kafka({ - clientId: 'camera', // TODO: Change this to Device ID + clientId: `CAMERA_${CAMERA_CODE}`, brokers: [`${kafkaContainer}:${kafkaPort}`] }) +const sourceDevice: Camera = new DeviceFactoryImpl().createCamera( + new DeviceIdFactoryImpl().createCameraId(CAMERA_CODE), + '192.168.1.90', + new ResolutionFactoryImpl().createResolution(1920, 1080) +) + export const produce = async (): Promise => { // const videoPath: string = path.resolve('video.mp4') const producer: Producer = kafka.producer({ createPartitioner: Partitioners.LegacyPartitioner }) @@ -32,9 +48,9 @@ export const produce = async (): Promise => { setInterval(async (): Promise => { if (index == files.length - 1) index = 0 console.log('Sending image ' + index) - console.log(`CAMERA_${CAMERA_CODE}`) + console.log(`CAMERA_${sourceDevice.deviceId.code}`) await producer.send({ - topic: `CAMERA_${CAMERA_CODE}`, + topic: `CAMERA_${sourceDevice.deviceId.code}`, messages: [ { value: frames[index], diff --git a/compose-db.sh b/compose-db.sh index 0c36ce951..dad0ada5e 100755 --- a/compose-db.sh +++ b/compose-db.sh @@ -42,7 +42,7 @@ for service in "${services[@]}"; do compose_files+=("-f$service/docker-compose.yml") done -dbs=() +dbs=("revue-kafka" "revue-zookeeper") for service in "${services[@]}"; do dbs+=("revue-$service-db") done diff --git a/domain/.prettierrc.json b/domain/.prettierrc.json index 66e23359c..7307ef565 100644 --- a/domain/.prettierrc.json +++ b/domain/.prettierrc.json @@ -3,6 +3,7 @@ "semi": false, "tabWidth": 2, "singleQuote": true, - "printWidth": 100, - "trailingComma": "none" -} \ No newline at end of file + "printWidth": 110, + "trailingComma": "none", + "arrowParens": "avoid" +} diff --git a/domain/src/domain/alarm-system/factories/RecognizingNodeFactory.ts b/domain/src/domain/alarm-system/factories/RecognizingNodeFactory.ts index 25d7155a3..8c490fc86 100644 --- a/domain/src/domain/alarm-system/factories/RecognizingNodeFactory.ts +++ b/domain/src/domain/alarm-system/factories/RecognizingNodeFactory.ts @@ -2,9 +2,5 @@ import { RecognizingNode } from '../core/RecognizingNode.js' import { DeviceId } from '../../device/core/DeviceId.js' export interface RecognizingNodeFactory { - createRecognizingNode( - recognizingNodeId: string, - ipAddress: string, - deviceIds: DeviceId[] - ): RecognizingNode + createRecognizingNode(recognizingNodeId: string, ipAddress: string, deviceIds: DeviceId[]): RecognizingNode } diff --git a/domain/src/domain/anomaly/core/impl/ExceedingImpl.ts b/domain/src/domain/anomaly/core/impl/ExceedingImpl.ts index 5d73bc6a1..c13ce1cd9 100644 --- a/domain/src/domain/anomaly/core/impl/ExceedingImpl.ts +++ b/domain/src/domain/anomaly/core/impl/ExceedingImpl.ts @@ -9,13 +9,7 @@ export class ExceedingImpl implements Exceeding { private _value: number private _measure: Measure - constructor( - anomalyId: string, - deviceId: DeviceId, - timestamp: Date, - measure: Measure, - value: number - ) { + constructor(anomalyId: string, deviceId: DeviceId, timestamp: Date, measure: Measure, value: number) { this._anomalyId = anomalyId this._deviceId = deviceId this._timestamp = timestamp diff --git a/domain/src/domain/anomaly/core/impl/IntrusionImpl.ts b/domain/src/domain/anomaly/core/impl/IntrusionImpl.ts index 19fb020a5..866f31ba5 100644 --- a/domain/src/domain/anomaly/core/impl/IntrusionImpl.ts +++ b/domain/src/domain/anomaly/core/impl/IntrusionImpl.ts @@ -8,12 +8,7 @@ export class IntrusionImpl implements Intrusion { private readonly _timestamp: Date private _intrusionObject: ObjectClass - constructor( - anomalyId: string, - deviceId: DeviceId, - timestamp: Date, - intrusionObject: ObjectClass - ) { + constructor(anomalyId: string, deviceId: DeviceId, timestamp: Date, intrusionObject: ObjectClass) { this._anomalyId = anomalyId this._deviceId = deviceId this._timestamp = timestamp diff --git a/domain/src/domain/device/core/impl/EnvironmentDataImpl.ts b/domain/src/domain/device/core/impl/EnvironmentDataImpl.ts index c2ca365c8..26def4eb8 100644 --- a/domain/src/domain/device/core/impl/EnvironmentDataImpl.ts +++ b/domain/src/domain/device/core/impl/EnvironmentDataImpl.ts @@ -10,13 +10,7 @@ export class EnvironmentDataImpl implements EnvironmentData { private _measureUnit: MeasureUnit private readonly _timestamp: Date - constructor( - sourceDeviceId: DeviceId, - value: number, - measure: Measure, - unit: MeasureUnit, - timestamp: Date - ) { + constructor(sourceDeviceId: DeviceId, value: number, measure: Measure, unit: MeasureUnit, timestamp: Date) { this._sourceDeviceId = sourceDeviceId this._value = value this._measure = measure diff --git a/domain/src/domain/device/factories/DeviceFactory.ts b/domain/src/domain/device/factories/DeviceFactory.ts index a65df6774..3faf7b896 100644 --- a/domain/src/domain/device/factories/DeviceFactory.ts +++ b/domain/src/domain/device/factories/DeviceFactory.ts @@ -7,10 +7,5 @@ import { Measure } from '../core/impl/enum/Measure.js' export interface DeviceFactory { createCamera(deviceId: DeviceId, ipAddress: string, resolution: Resolution): Camera - createSensor( - deviceId: DeviceId, - ipAddress: string, - intervalMillis: number, - measures: Measure[] - ): Sensor + createSensor(deviceId: DeviceId, ipAddress: string, intervalMillis: number, measures: Measure[]): Sensor } diff --git a/domain/src/domain/device/factories/impl/DeviceFactoryImpl.ts b/domain/src/domain/device/factories/impl/DeviceFactoryImpl.ts index c4c3d00bf..e3b0a616e 100644 --- a/domain/src/domain/device/factories/impl/DeviceFactoryImpl.ts +++ b/domain/src/domain/device/factories/impl/DeviceFactoryImpl.ts @@ -12,12 +12,7 @@ export class DeviceFactoryImpl implements DeviceFactory { return new CameraImpl(deviceId, ipAddress, resolution) } - createSensor( - deviceId: DeviceId, - ipAddress: string, - intervalMillis: number, - measures: Measure[] - ): Sensor { + createSensor(deviceId: DeviceId, ipAddress: string, intervalMillis: number, measures: Measure[]): Sensor { return new SensorImpl(deviceId, ipAddress, intervalMillis, measures) } } diff --git a/domain/src/domain/monitoring/factories/impl/UserFactoryImpl.ts b/domain/src/domain/monitoring/factories/impl/UserFactoryImpl.ts index 5510d7b4b..e1b49009e 100644 --- a/domain/src/domain/monitoring/factories/impl/UserFactoryImpl.ts +++ b/domain/src/domain/monitoring/factories/impl/UserFactoryImpl.ts @@ -16,16 +16,6 @@ export class UserFactoryImpl implements UserFactory { contact: Contact[], deviceIds: DeviceId[] ): User { - return new UserImpl( - id, - name, - surname, - username, - password, - token, - refreshToken, - contact, - deviceIds - ) + return new UserImpl(id, name, surname, username, password, token, refreshToken, contact, deviceIds) } } diff --git a/domain/src/storage/anomaly/AnomalyRepositoryImpl.ts b/domain/src/storage/anomaly/AnomalyRepositoryImpl.ts index 46dca59e4..284d7ae4b 100644 --- a/domain/src/storage/anomaly/AnomalyRepositoryImpl.ts +++ b/domain/src/storage/anomaly/AnomalyRepositoryImpl.ts @@ -70,9 +70,7 @@ export class AnomalyRepositoryImpl implements AnomalyRepository { code: intrusion.deviceId.code }, timestamp: intrusion.timestamp, - intrusionObject: ObjectClassConverter.convertToString( - (intrusion as IntrusionImpl).intrusionObject - ) + intrusionObject: ObjectClassConverter.convertToString((intrusion as IntrusionImpl).intrusionObject) }) .catch((err): void => { throw err diff --git a/frontend/.prettierrc.json b/frontend/.prettierrc.json index ecdf3e07a..7307ef565 100644 --- a/frontend/.prettierrc.json +++ b/frontend/.prettierrc.json @@ -3,6 +3,7 @@ "semi": false, "tabWidth": 2, "singleQuote": true, - "printWidth": 100, - "trailingComma": "none" + "printWidth": 110, + "trailingComma": "none", + "arrowParens": "avoid" } diff --git a/frontend/src/components/NavbarComponent.vue b/frontend/src/components/NavbarComponent.vue index 558baa26f..0b1940c47 100644 --- a/frontend/src/components/NavbarComponent.vue +++ b/frontend/src/components/NavbarComponent.vue @@ -36,9 +36,7 @@ const logout = () => { Monitoring - Devices - + Devices Alarms Notifications diff --git a/frontend/src/components/charts/LineChart.vue b/frontend/src/components/charts/LineChart.vue index 449bc4006..a0f9dbf05 100644 --- a/frontend/src/components/charts/LineChart.vue +++ b/frontend/src/components/charts/LineChart.vue @@ -2,11 +2,7 @@ import { Line } from 'vue-chartjs' import type { Device, EnvironmentData } from '@domain/device/core' import type { DeviceFactory, DeviceIdFactory } from '@domain/device/factories' -import { - EnvironmentDataFactoryImpl, - DeviceFactoryImpl, - DeviceIdFactoryImpl -} from '@domain/device/factories' +import { EnvironmentDataFactoryImpl, DeviceFactoryImpl, DeviceIdFactoryImpl } from '@domain/device/factories' import { Measure, MeasureUnit } from '@domain/device/core' import { CategoryScale, @@ -36,32 +32,16 @@ const chartOptions = { const deviceIdFactory: DeviceIdFactory = new DeviceIdFactoryImpl() const deviceFactory: DeviceFactory = new DeviceFactoryImpl() -const sensor = deviceFactory.createSensor( - deviceIdFactory.createSensorId('Sensor 1'), - '192.168.1.10', - 5, - [Measure.HUMIDITY, Measure.TEMPERATURE, Measure.PRESSURE] -) +const sensor = deviceFactory.createSensor(deviceIdFactory.createSensorId('Sensor 1'), '192.168.1.10', 5, [ + Measure.HUMIDITY, + Measure.TEMPERATURE, + Measure.PRESSURE +]) const environmentDataFactory = new EnvironmentDataFactoryImpl() const data: EnvironmentData[] = [ - environmentDataFactory.createEnvironmentData( - sensor.deviceId, - 20, - Measure.PRESSURE, - MeasureUnit.PASCAL - ), - environmentDataFactory.createEnvironmentData( - sensor.deviceId, - 20, - Measure.PRESSURE, - MeasureUnit.PASCAL - ), - environmentDataFactory.createEnvironmentData( - sensor.deviceId, - 20, - Measure.PRESSURE, - MeasureUnit.PASCAL - ) + environmentDataFactory.createEnvironmentData(sensor.deviceId, 20, Measure.PRESSURE, MeasureUnit.PASCAL), + environmentDataFactory.createEnvironmentData(sensor.deviceId, 20, Measure.PRESSURE, MeasureUnit.PASCAL), + environmentDataFactory.createEnvironmentData(sensor.deviceId, 20, Measure.PRESSURE, MeasureUnit.PASCAL) ] diff --git a/frontend/src/components/devices/NewDevicePopup.vue b/frontend/src/components/devices/NewDevicePopup.vue index c89be654f..e2598f1d9 100644 --- a/frontend/src/components/devices/NewDevicePopup.vue +++ b/frontend/src/components/devices/NewDevicePopup.vue @@ -1,6 +1,6 @@