Implemented Collections, reworked SecureIds to prevent duplication across records, renamed files to be consistently plural.

This commit is contained in:
jd
2026-02-21 15:25:37 +00:00
parent c276ee4e17
commit 59d2819750
37 changed files with 608 additions and 139 deletions

View File

@@ -0,0 +1,56 @@
import { orm } from '../orm/orm';
import { UnwrappedRequest } from '../utilities/guard';
import { CreatedResponse, ErrorResponse, OkResponse } from '../utilities/responseHelper';
import { CreateCollectionRequest, UpdateCollectionRequest } from '../utilities/requestModels';
import { CollectionId } from '../utilities/secureIds';
async function create(request: UnwrappedRequest<CreateCollectionRequest>): Promise<Response> {
try {
const newPlayer = await orm.collections.create(request.body, request.claims);
return new CreatedResponse(newPlayer);
} catch (error: any) {
return new ErrorResponse(error as Error);
}
}
async function get(request: UnwrappedRequest): Promise<Response> {
try {
return new OkResponse(await orm.collections.get(CollectionId.fromHash(request.params.id), request.claims));
} catch (error: any) {
return new ErrorResponse(error as Error);
}
}
async function list(request: UnwrappedRequest): Promise<Response> {
try {
return new OkResponse(await orm.collections.list(request.claims));
} catch (error: any) {
return new ErrorResponse(error as Error);
}
}
async function update(request: UnwrappedRequest<UpdateCollectionRequest>): Promise<Response> {
try {
return new OkResponse(
await orm.collections.update(CollectionId.fromHash(request.params.id), request.body, request.claims),
);
} catch (error: any) {
return new ErrorResponse(error as Error);
}
}
async function drop(request: UnwrappedRequest): Promise<Response> {
try {
return new OkResponse(await orm.collections.drop(CollectionId.fromHash(request.params.id), request.claims));
} catch (error: any) {
return new ErrorResponse(error as Error);
}
}
export default {
create,
get,
list,
update,
drop,
};