refactor: split links controller into multiple controllers

This commit is contained in:
Sonny
2025-08-17 00:39:51 +02:00
parent 56b52adac0
commit 9ff3ca112c
16 changed files with 260 additions and 208 deletions

View File

@@ -1,5 +1,6 @@
import { Visibility } from '#collections/enums/visibility';
import Collection from '#collections/models/collection';
import { collectionIdValidator } from '#collections/validators/collection_id_validator';
import { HttpContext } from '@adonisjs/core/http';
import db from '@adonisjs/lucid/services/db';
@@ -20,7 +21,7 @@ export class CollectionService {
.firstOrFail();
}
async getCollectionsByAuthorId() {
async getCollectionsForAuthenticatedUser() {
const context = this.getAuthContext();
return await Collection.query()
.where('author_id', context.auth.user!.id)
@@ -67,4 +68,28 @@ export class CollectionService {
}
return context;
}
async validateCollectionId(collectionIdRequired: boolean = true) {
const ctx = HttpContext.getOrFail();
const { collectionId } = await ctx.request.validateUsing(
collectionIdValidator
);
if (!collectionId && collectionIdRequired) {
this.redirectToDashboard();
return null;
}
return collectionId;
}
redirectToCollectionId(collectionId: Collection['id']) {
const ctx = HttpContext.getOrFail();
return ctx.response.redirectToNamedRoute('dashboard', {
qs: { collectionId },
});
}
redirectToDashboard() {
const ctx = HttpContext.getOrFail();
return ctx.response.redirectToNamedRoute('dashboard');
}
}