import { Request, Response } from "express"; import zoneModel from "../../../shared/model/lines/zone-Model"; export class zone { static async setZone(req: Request, res: Response) { try { const {organization,userId,zoneData}=req.body const zoneId =zoneData.zoneId const points =zoneData.points const zoneName =zoneData.zoneName const layer =zoneData.layer const findZoneId= await zoneModel(organization).findOne({zoneId:zoneId}) if (findZoneId) { const updateZone= await zoneModel(organization).findOneAndUpdate( {zoneId:zoneId},{points:points},{new:true} ).select("-_id -__v") res.status(201).json({message: 'zone updated', data: updateZone,organization:organization}) } else { const zoneCreate = await zoneModel(organization).create({ zoneId,createBy:userId,zoneName:zoneName,points,layer }) const createdZone = await zoneModel(organization) .findById(zoneCreate._id) .select('-_id -__v') .lean(); res.status(201).json({message: 'zone created', data: createdZone,organization:organization}) } } catch (error) { console.log('error: ', error); res.status(500).json({ message: 'Zone not found',error }) } } static async deleteZone(req: Request, res: Response) { try { const { organization, userId, zoneId } = req.body const findZoneId = await zoneModel(organization).findOne({ zoneId: zoneId }) if (findZoneId) { const deleteZone = await zoneModel(organization).findOneAndDelete( { zoneId: zoneId, createBy: userId } ).select("-_id -__v") res.status(201).json({ message: 'zone deleted', data: deleteZone, organization: organization }) } else { res.status(500).json({ message: 'Invalid zone ID' }) } } catch (error) { console.log('error: ', error); res.status(500).json({ message: 'Zone not found', error }) } } static async getZones(req: Request, res: Response) { try { const { organization, userId } = req.params const findZoneId = await zoneModel(organization) .find() .select("zoneId zoneName layer points -_id"); if (!findZoneId) { res.status(500).json({ message: 'Invalid zone' }) } res.status(201).json({ data: findZoneId, organization: organization }) } catch (error) { console.log('error: ', error); res.status(500).json({ message: 'Zone not found', error }) } } }