Skip to content

Commit

Permalink
feat: popup added for modifications, insertions, deletions and for al…
Browse files Browse the repository at this point in the history
…arms, devices and notifications
  • Loading branch information
paga16-hash committed Jan 31, 2024
1 parent 5f328bf commit 9ff9bcb
Show file tree
Hide file tree
Showing 11 changed files with 60 additions and 65 deletions.
11 changes: 7 additions & 4 deletions frontend/src/components/devices/DeviceBadge.vue
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import { ref } from 'vue'
import UpdateDevicePopup from '@/components/devices/UpdateDevicePopup.vue'
import RequestHelper, { monitoringHost, monitoringPort } from '@/utils/RequestHelper'
import { MeasureConverter } from 'domain/dist/utils'
import { popNegative, popPositive } from '@/scripts/Popups'
import { useQuasar } from 'quasar'
defineProps<{
device: Device
Expand All @@ -16,6 +18,7 @@ defineEmits<{
}>()
const updatePopupVisible = ref<boolean>(false)
const $q = useQuasar()
const updateSensor = async (sensor: Sensor) => {
await RequestHelper.put(`http://${monitoringHost}:${monitoringPort}/devices/sensors`, {
Expand All @@ -27,10 +30,10 @@ const updateSensor = async (sensor: Sensor) => {
})
})
.then(async (res: any) => {
alert('devo aggiornare i devices')
//TODO A CONFIRM POPUP
popPositive($q, 'Sensor updated successfully')
})
.catch(error => {
popNegative($q, 'Error while updating sensor')
console.log(error)
})
}
Expand All @@ -45,10 +48,10 @@ const updateCamera = async (camera: Camera) => {
}
})
.then(async (res: any) => {
alert('devo aggiornare i devices')
//TODO A CONFIRM POPUP
popPositive($q, 'Camera updated successfully')
})
.catch(error => {
popNegative($q, 'Error while updating camera')
console.log(error)
})
}
Expand Down
1 change: 0 additions & 1 deletion frontend/src/components/devices/UpdateDevicePopup.vue
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ const options = ref([
])
const updateDevice = () => {
console.log(device)
if (device.deviceId.type == DeviceType.SENSOR) {
const updatedSensor: Sensor = deviceFactory.createSensor(
deviceIdFactory.createSensorId(device.deviceId.code),
Expand Down
27 changes: 7 additions & 20 deletions frontend/src/components/security-rule/SecurityRuleBadge.vue
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ import UpdateSecurityRulePopup from './UpdateSecurityRulePopup.vue'
import { ref } from 'vue'
import { DeviceTypeConverter, MeasureConverter, ObjectClassConverter } from 'domain/dist/utils'
import RequestHelper, { alarmHost, alarmPort } from '@/utils/RequestHelper'
import { popPositive, popNegative } from '@/scripts/Popups'
import { useQuasar } from 'quasar'
defineProps<{
securityRule: SecurityRule
Expand All @@ -21,24 +23,9 @@ defineEmits<{
}>()
const updatePopupVisible = ref<boolean>(false)
const $q = useQuasar()
const updateExceedingRule = async (exceedingRule: ExceedingRule) => {
console.log(DeviceTypeConverter.convertToString(exceedingRule.deviceId.type))
console.log(exceedingRule.deviceId.type)
console.log({
id: exceedingRule.securityRuleId,
deviceId: {
type: DeviceTypeConverter.convertToString(exceedingRule.deviceId.type),
code: exceedingRule.deviceId.code
},
description: exceedingRule.description,
minValue: exceedingRule.min,
maxValue: exceedingRule.max,
measure: MeasureConverter.convertToString(exceedingRule.measure),
from: exceedingRule.from.toISOString(),
to: exceedingRule.to.toISOString(),
contacts: exceedingRule.contactsToNotify
})
await RequestHelper.put(`http://${alarmHost}:${alarmPort}/security-rules/exceedings`, {
id: exceedingRule.securityRuleId,
deviceId: {
Expand All @@ -54,10 +41,10 @@ const updateExceedingRule = async (exceedingRule: ExceedingRule) => {
contacts: exceedingRule.contactsToNotify
})
.then(async (res: any) => {
alert('devo aggiornare le exceeding rules')
//TODO A CONFIRM POPUP
popPositive($q, 'Exceeding rule updated successfully')
})
.catch(error => {
popNegative($q, 'Error while updating exceeding rule')
console.log(error)
})
}
Expand All @@ -76,10 +63,10 @@ const updateIntrusionRule = async (intrusionRule: IntrusionRule) => {
contacts: intrusionRule.contactsToNotify
})
.then(async (res: any) => {
alert('devo aggiornare le intrusion rules')
//TODO A CONFIRM POPUP
popPositive($q, 'Intrusion rule updated successfully')
})
.catch(error => {
popNegative($q, 'Error while updating intrusion rule')
console.log(error)
})
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,6 @@ const measure: ref<Measure> = ref(Measure.TEMPERATURE)
const objectClass: ref<ObjectClass> = ref(ObjectClass.PERSON)
const updateSecurityRule = () => {
console.log(securityRule)
if (securityRule.deviceId.type == DeviceType.SENSOR) {
const updatedExceedingRule: ExceedingRule = securityRuleFactory.createExceedingRule(
(securityRule as ExceedingRule).min,
Expand Down
5 changes: 2 additions & 3 deletions frontend/src/scripts/Popups.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@

import { type QVueGlobals } from "quasar";
import { type QVueGlobals } from 'quasar'
export const popPositive = (q: QVueGlobals, message: string): void => {
q.notify({
type: 'positive',
message: message
})
}

export const popNegative = (q: QVueGlobals, message: string): void => {
export const popNegative = (q: QVueGlobals, message: string): void => {
q.notify({
type: 'negative',
message: message
Expand Down
12 changes: 7 additions & 5 deletions frontend/src/scripts/presentation/device/ComposeDevice.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
import { type Camera, Measure, type Sensor } from "domain/dist/domain/device/core";
import { MeasureConverter } from "domain/dist/utils";
import { type Camera, Measure, type Sensor } from 'domain/dist/domain/device/core'
import { MeasureConverter } from 'domain/dist/utils'
import {
type DeviceFactory,
DeviceFactoryImpl,
type DeviceIdFactory,
DeviceIdFactoryImpl, type ResolutionFactory, ResolutionFactoryImpl
} from "domain/dist/domain/device/factories";
DeviceIdFactoryImpl,
type ResolutionFactory,
ResolutionFactoryImpl
} from 'domain/dist/domain/device/factories'

const deviceIdFactory: DeviceIdFactory = new DeviceIdFactoryImpl()
const deviceFactory: DeviceFactory = new DeviceFactoryImpl()
Expand All @@ -32,4 +34,4 @@ export function composeMeasure(measures: any): Measure[] {
return measures.map((measure: any) => {
return MeasureConverter.convertToMeasure(measure)
})
}
}
Original file line number Diff line number Diff line change
@@ -1,26 +1,34 @@
import RequestHelper, { alarmHost, alarmPort } from "@/utils/RequestHelper";
import { DeviceTypeConverter, MeasureConverter, ObjectClassConverter } from "domain/dist/utils";
import { DeviceType } from "domain/dist/domain/device/core";
import type { Exceeding, Intrusion } from "domain/dist/domain/anomaly/core";
import type { NotificationFactory } from "domain/dist/domain/alarm-system/factories";
import { NotificationFactoryImpl } from "domain/dist/domain/alarm-system/factories";
import type { AnomalyFactory } from "domain/dist/domain/anomaly/factories";
import { AnomalyFactoryImpl } from "domain/dist/domain/anomaly/factories";
import type { DeviceIdFactory } from "domain/dist/domain/device/factories";
import { DeviceIdFactoryImpl } from "domain/dist/domain/device/factories";
import type { Notification } from "domain/dist/domain/alarm-system/core";
import RequestHelper, { alarmHost, alarmPort } from '@/utils/RequestHelper'
import { DeviceTypeConverter, MeasureConverter, ObjectClassConverter } from 'domain/dist/utils'
import { DeviceType } from 'domain/dist/domain/device/core'
import type { Exceeding, Intrusion } from 'domain/dist/domain/anomaly/core'
import type { NotificationFactory } from 'domain/dist/domain/alarm-system/factories'
import { NotificationFactoryImpl } from 'domain/dist/domain/alarm-system/factories'
import type { AnomalyFactory } from 'domain/dist/domain/anomaly/factories'
import { AnomalyFactoryImpl } from 'domain/dist/domain/anomaly/factories'
import type { DeviceIdFactory } from 'domain/dist/domain/device/factories'
import { DeviceIdFactoryImpl } from 'domain/dist/domain/device/factories'
import type { Notification } from 'domain/dist/domain/alarm-system/core'

const notificationFactory: NotificationFactory = new NotificationFactoryImpl()
const anomalyFactory: AnomalyFactory = new AnomalyFactoryImpl()
const deviceIdFactory: DeviceIdFactory = new DeviceIdFactoryImpl()

export const composeNotification = async (notification: any): Promise<Notification> => {
const resAnomaly = await RequestHelper.get(`http://${alarmHost}:${alarmPort}/anomalies/` + notification.anomalyId)
const resAnomaly = await RequestHelper.get(
`http://${alarmHost}:${alarmPort}/anomalies/` + notification.anomalyId
)
switch (DeviceTypeConverter.convertToDeviceType(resAnomaly.data.deviceId.type)) {
case DeviceType.CAMERA:
return notificationFactory.createIntrusionNotification(notification._id, composeIntrusion(resAnomaly.data))
return notificationFactory.createIntrusionNotification(
notification._id,
composeIntrusion(resAnomaly.data)
)
case DeviceType.SENSOR:
return notificationFactory.createExceedingNotification(notification._id, composeExceeding(resAnomaly.data))
return notificationFactory.createExceedingNotification(
notification._id,
composeExceeding(resAnomaly.data)
)
}
}

Expand All @@ -41,4 +49,4 @@ function composeExceeding(exceeding: any): Exceeding {
MeasureConverter.convertToMeasure(exceeding.measure),
exceeding.value
)
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import type { ExceedingRule, IntrusionRule } from "domain/dist/domain/security-rule/core";
import { ContactTypeConverter, MeasureConverter, ObjectClassConverter } from "domain/dist/utils";
import type { Contact } from "domain/dist/domain/monitoring/core";
import { type SecurityRuleFactory, SecurityRuleFactoryImpl } from "domain/dist/domain/security-rule/factories";
import { type DeviceIdFactory, DeviceIdFactoryImpl } from "domain/dist/domain/device/factories";
import { type ContactFactory, ContactFactoryImpl } from "domain/dist/domain/monitoring/factories";
import type { ExceedingRule, IntrusionRule } from 'domain/dist/domain/security-rule/core'
import { ContactTypeConverter, MeasureConverter, ObjectClassConverter } from 'domain/dist/utils'
import type { Contact } from 'domain/dist/domain/monitoring/core'
import { type SecurityRuleFactory, SecurityRuleFactoryImpl } from 'domain/dist/domain/security-rule/factories'
import { type DeviceIdFactory, DeviceIdFactoryImpl } from 'domain/dist/domain/device/factories'
import { type ContactFactory, ContactFactoryImpl } from 'domain/dist/domain/monitoring/factories'

const securityRuleFactory: SecurityRuleFactory = new SecurityRuleFactoryImpl()
const deviceIdFactory: DeviceIdFactory = new DeviceIdFactoryImpl()
Expand Down Expand Up @@ -44,4 +44,4 @@ function composeContacts(contacts: any): Contact[] {
ContactTypeConverter.convertToContactType(contact.type)
)
})
}
}
2 changes: 1 addition & 1 deletion frontend/src/views/HomeView.vue
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { AnomalyTypeConverter, DeviceTypeConverter, MeasureConverter } from 'dom
import { AnomalyType } from 'domain/dist/domain/anomaly/core'
import { useTopicsStore } from '@/stores/topics'
import { type AxiosResponse, HttpStatusCode } from 'axios'
import { composeSensor } from "@/scripts/presentation/device/ComposeDevice";
import { composeSensor } from '@/scripts/presentation/device/ComposeDevice'
const topicsStore = useTopicsStore()
Expand Down
10 changes: 4 additions & 6 deletions frontend/src/views/NotificationView.vue
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,14 @@ import RequestHelper, { alarmHost, alarmPort } from '@/utils/RequestHelper'
import NotificationBadge from '@/components/notification/NotificationBadge.vue'
import { composeNotification } from '@/scripts/presentation/notification/ComposeNotification'
let notifications: ref<Notification[]> = ref([])
const notifications: ref<Notification[]> = ref([])
async function getNotifications() {
await RequestHelper.get(`http://${alarmHost}:${alarmPort}/notifications`)
.then((res: any) => {
//notifications.value = []
.then(async (res: any) => {
notifications.value = []
for (let i = 0; i < res.data.length; i++) {
console.log("AAAA")
console.log(composeNotification(res.data[i]))
notifications.value.push(composeNotification(res.data[i]))
notifications.value.push(await composeNotification(res.data[i]))
}
})
.catch(error => {
Expand Down
4 changes: 2 additions & 2 deletions frontend/src/views/SecurityRuleView.vue
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import {
composeIntrusionSecurityRule
} from '@/scripts/presentation/security-rule/ComposeSecurityRule'
import { popNegative, popPositive } from '@/scripts/Popups.js'
import { useQuasar } from "quasar";
import { useQuasar } from 'quasar'
const exceedingsSecurityRules: ref<ExceedingRule[]> = ref([])
const intrusionsSecurityRules: ref<IntrusionRule[]> = ref([])
Expand Down Expand Up @@ -107,7 +107,7 @@ const deleteExceedingRule = async (exceedingRule: ExceedingRule) => {
`http://${alarmHost}:${alarmPort}/security-rules/exceedings/` + exceedingRule.securityRuleId
)
.then(async (res: any) => {
popNegative($q, 'Exceeding rule deleted successfully')
popPositive($q, 'Exceeding rule deleted successfully')
await getExceedingSecurityRules()
})
.catch(error => {
Expand Down

0 comments on commit 9ff9bcb

Please sign in to comment.