Files
Dwinzo-Backend-V0.0/src/socket-server/services/lines/zone-controller.ts

51 lines
2.4 KiB
TypeScript

import zoneModel from "../../../shared/model/builder/lines/zone-Model.ts";
export const setZone = async (data: any) => {
const { organization, userId, zoneData } = data
try {
const zoneId = zoneData.zoneId
const points = zoneData.points
const zoneName = zoneData.zoneName
const layer = zoneData.layer
const viewPortCenter = zoneData.viewPortCenter
const viewPortposition = zoneData.viewPortposition
const findZoneId = await zoneModel(organization).findOne({ zoneId: zoneId })
if (findZoneId) {
const updateZone = await zoneModel(organization).findOneAndUpdate(
{ zoneId: zoneId }, { points: points, viewPortposition: viewPortposition, viewPortCenter: viewPortCenter }, { new: true }
).select("-_id -__v")
return { success: true, message: 'zone updated', data: updateZone, organization: organization }
} else {
const zoneCreate = await zoneModel(organization).create({
zoneId, createdBy: userId, zoneName: zoneName, points, layer, viewPortCenter, viewPortposition
})
const createdZone = await zoneModel(organization)
.findById(zoneCreate._id)
.select('-_id -__v')
.lean();
return { success: true, message: 'zone created', data: createdZone, organization: organization }
}
} catch (error) {
console.log('error: ', error);
return { success: false, message: 'Zone not found', error , organization: organization}
}
}
export const deleteZone = async (data: any) => {
const { organization, userId, zoneId } = data
try {
const findZoneId = await zoneModel(organization).findOne({ zoneId: zoneId })
if (findZoneId) {
const deleteZone = await zoneModel(organization).findOneAndDelete(
{ zoneId: zoneId, createdBy: userId }
).select("-_id -__v")
return { success: true, message: 'zone deleted', data: deleteZone, organization: organization }
} else {
return { success: true, message: 'Invalid zone ID', organization: organization }
}
} catch (error) {
console.log('error: ', error);
return { success: false, message: 'Zone not found', error, organization: organization }
}
}