72 lines
2.9 KiB
TypeScript
72 lines
2.9 KiB
TypeScript
|
|
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 })
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|