feat(admin): implement region renaming functionality and update UI components

This commit is contained in:
Torsten Schulz (local)
2026-08-14 13:50:49 +02:00
parent 56c467bf72
commit 07340898b6
6 changed files with 244 additions and 0 deletions

View File

@@ -57,6 +57,7 @@ class AdminController {
this.getFalukantAllRegions = this.getFalukantAllRegions.bind(this);
this.getFalukantRegionTypes = this.getFalukantRegionTypes.bind(this);
this.createFalukantRegion = this.createFalukantRegion.bind(this);
this.updateFalukantRegion = this.updateFalukantRegion.bind(this);
this.deleteFalukantRegion = this.deleteFalukantRegion.bind(this);
this.updateFalukantRegionMap = this.updateFalukantRegionMap.bind(this);
this.getRegionDistances = this.getRegionDistances.bind(this);
@@ -623,6 +624,19 @@ class AdminController {
}
}
async updateFalukantRegion(req, res) {
try {
const { userid: userId } = req.headers;
const region = await AdminService.updateFalukantRegion(userId, req.params.id, req.body || {});
res.status(200).json(region);
} catch (error) {
console.log(error);
const status = error.message === 'noaccess' ? 403
: (error.message === 'regionNotFound' ? 404 : 400);
res.status(status).json({ error: error.message });
}
}
async deleteFalukantRegion(req, res) {
try {
const { userid: userId } = req.headers;

View File

@@ -65,6 +65,7 @@ router.get('/falukant/region-types', authenticate, adminController.getFalukantRe
router.get('/falukant/regions', authenticate, adminController.getFalukantRegions);
router.get('/falukant/regions/all', authenticate, adminController.getFalukantAllRegions);
router.post('/falukant/regions', authenticate, adminController.createFalukantRegion);
router.put('/falukant/regions/:id', authenticate, adminController.updateFalukantRegion);
router.delete('/falukant/regions/:id', authenticate, adminController.deleteFalukantRegion);
router.put('/falukant/regions/:id/map', authenticate, adminController.updateFalukantRegionMap);
router.get('/falukant/region-distances', authenticate, adminController.getRegionDistances);

View File

@@ -934,6 +934,30 @@ class AdminService {
return region;
}
async updateFalukantRegion(userId, regionId, { name } = {}) {
if (!(await this.hasUserAccess(userId, 'falukantusers'))) {
throw new Error('noaccess');
}
const regionName = String(name || '').trim();
if (!regionName) {
throw new Error('missingName');
}
const region = await RegionData.findByPk(regionId);
if (!region) {
throw new Error('regionNotFound');
}
region.name = regionName;
await region.save();
return RegionData.findByPk(region.id, {
attributes: ['id', 'name', 'map', 'regionTypeId', 'parentId'],
include: [{ model: RegionType, as: 'regionType', attributes: ['id', 'labelTr', 'parentId'] }],
});
}
async deleteFalukantRegion(userId, regionId) {
if (!(await this.hasUserAccess(userId, 'falukantusers'))) {
throw new Error('noaccess');