Files
Dwinzo-Backend-V0.0/src/api-server/controller/lines/zone-Controller.ts

89 lines
3.8 KiB
TypeScript
Raw Normal View History

2025-03-18 17:46:24 +05:30
import { Request, Response } from "express";
import zoneModel from "../../../shared/model/lines/zone-Model";
export class zone {
static async setZone(req: Request, res: Response) {
try {
2025-03-26 12:23:03 +05:30
const { organization, userId, zoneData } = req.body
console.log('req.body: ', req.body);
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 })
2025-03-18 17:46:24 +05:30
if (findZoneId) {
2025-03-26 12:23:03 +05:30
const updateZone = await zoneModel(organization).findOneAndUpdate(
{ zoneId: zoneId }, { points: points, viewPortposition: viewPortposition, viewPortCenter: viewPortCenter }, { new: true }
2025-03-18 17:46:24 +05:30
).select("-_id -__v")
2025-03-26 12:23:03 +05:30
res.status(201).json({ message: 'zone updated', data: updateZone, organization: organization })
2025-03-18 17:46:24 +05:30
} else {
const zoneCreate = await zoneModel(organization).create({
2025-03-26 12:23:03 +05:30
zoneId, createBy: userId, zoneName: zoneName, points, layer, viewPortCenter, viewPortposition
2025-03-18 17:46:24 +05:30
})
const createdZone = await zoneModel(organization)
2025-03-26 12:23:03 +05:30
.findById(zoneCreate._id)
.select('-_id -__v')
.lean();
res.status(201).json({ message: 'zone created', data: createdZone, organization: organization })
2025-03-18 17:46:24 +05:30
}
} catch (error) {
console.log('error: ', error);
2025-03-26 12:23:03 +05:30
res.status(500).json({ message: 'Zone not found', error })
2025-03-18 17:46:24 +05:30
}
}
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()
2025-03-26 12:23:03 +05:30
.select("zoneId zoneName layer points viewPortCenter viewPortposition -_id");
2025-03-18 17:46:24 +05:30
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 })
}
}
2025-03-26 18:05:13 +05:30
static async ZoneData(req: Request, res: Response): Promise<any> {
try {
const organization = req.params.organization;
const zoneID = req.params.zoneID;
const findZone = await zoneModel(organization)
.findOne({ zoneId: zoneID })
// .select("zoneName");
console.log("findZone: ", findZone);
if (findZone) return res.status(200).json(findZone);
} catch (error: any) {
return res.status(500).send(error.message);
}
}
2025-03-18 17:46:24 +05:30
}