chore: archive finance, mail, moodlit apps and rename voxel-lava

- Move finance, mail, moodlit to apps-archived for later development
- Rename games/voxel-lava to games/voxelava

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Till-JS 2025-12-05 13:13:15 +01:00
parent c3c272abc9
commit ace7fa8f7f
427 changed files with 0 additions and 0 deletions

View file

@ -0,0 +1,88 @@
import {
Controller,
Get,
Post,
Patch,
Delete,
Body,
Param,
Query,
UseGuards,
ParseUUIDPipe,
BadRequestException,
} from '@nestjs/common';
import { JwtAuthGuard, CurrentUser, CurrentUserData } from '@manacore/shared-nestjs-auth';
import { FolderService } from './folder.service';
import { CreateFolderDto, UpdateFolderDto, FolderQueryDto } from './dto/folder.dto';
@Controller('folders')
@UseGuards(JwtAuthGuard)
export class FolderController {
constructor(private readonly folderService: FolderService) {}
@Get()
async findAll(@CurrentUser() user: CurrentUserData, @Query() query: FolderQueryDto) {
const folders = await this.folderService.findByUserId(user.userId, query);
return { folders };
}
@Get(':id')
async findOne(@CurrentUser() user: CurrentUserData, @Param('id', ParseUUIDPipe) id: string) {
const folder = await this.folderService.findById(id, user.userId);
if (!folder) {
return { folder: null };
}
return { folder };
}
@Post()
async create(@CurrentUser() user: CurrentUserData, @Body() dto: CreateFolderDto) {
const folder = await this.folderService.create({
...dto,
userId: user.userId,
type: 'custom',
path: dto.name, // For custom folders, path is the name
isSystem: false,
});
return { folder };
}
@Patch(':id')
async update(
@CurrentUser() user: CurrentUserData,
@Param('id', ParseUUIDPipe) id: string,
@Body() dto: UpdateFolderDto
) {
const existingFolder = await this.folderService.findById(id, user.userId);
if (!existingFolder) {
throw new BadRequestException('Folder not found');
}
// Don't allow renaming system folders
if (existingFolder.isSystem && dto.name) {
throw new BadRequestException('Cannot rename system folders');
}
const folder = await this.folderService.update(id, user.userId, dto);
return { folder };
}
@Delete(':id')
async delete(@CurrentUser() user: CurrentUserData, @Param('id', ParseUUIDPipe) id: string) {
await this.folderService.delete(id, user.userId);
return { success: true };
}
@Post(':id/hide')
async toggleHidden(@CurrentUser() user: CurrentUserData, @Param('id', ParseUUIDPipe) id: string) {
const folder = await this.folderService.findById(id, user.userId);
if (!folder) {
throw new BadRequestException('Folder not found');
}
const updatedFolder = await this.folderService.update(id, user.userId, {
isHidden: !folder.isHidden,
});
return { folder: updatedFolder };
}
}