39 lines
1.2 KiB
TypeScript
39 lines
1.2 KiB
TypeScript
import { Body, Controller, Get, Param, ParseUUIDPipe, Patch, Post } from '@nestjs/common';
|
|
import { AuthUser, CurrentUser, RequirePermissions } from '../../common/auth';
|
|
import { SitesService } from './sites.service';
|
|
|
|
@Controller('sites')
|
|
export class SitesController {
|
|
constructor(private readonly sites: SitesService) {}
|
|
|
|
@RequirePermissions('sites.view')
|
|
@Get()
|
|
list(@CurrentUser() user: AuthUser) {
|
|
return this.sites.list(user);
|
|
}
|
|
|
|
@RequirePermissions('sites.view')
|
|
@Get(':id')
|
|
get(@CurrentUser() user: AuthUser, @Param('id', ParseUUIDPipe) id: string) {
|
|
return this.sites.get(user, id);
|
|
}
|
|
|
|
@RequirePermissions('sites.manage')
|
|
@Post()
|
|
create(@CurrentUser() user: AuthUser, @Body() body: unknown) {
|
|
return this.sites.create(user, body);
|
|
}
|
|
|
|
@RequirePermissions('sites.manage')
|
|
@Patch(':id')
|
|
update(@CurrentUser() user: AuthUser, @Param('id', ParseUUIDPipe) id: string, @Body() body: unknown) {
|
|
return this.sites.update(user, id, body);
|
|
}
|
|
|
|
@RequirePermissions('sites.manage')
|
|
@Post(':id/archive')
|
|
archive(@CurrentUser() user: AuthUser, @Param('id', ParseUUIDPipe) id: string) {
|
|
return this.sites.archive(user, id);
|
|
}
|
|
}
|