Minor tidy up and refactor to improve consistency.

This commit is contained in:
jd
2026-03-03 00:17:46 +00:00
parent c23536b3ed
commit c4a37f13be
24 changed files with 215 additions and 239 deletions

View File

@@ -51,20 +51,20 @@ export class CircleOrm {
${model.name},
${model.isPublic},
${model.colour})`;
const newCircleId: string = (first(await sql`SELECT lastval();`) as any)?.lastval as string;
const newRecordId: string = (first(await sql`SELECT lastval();`) as any)?.lastval as string;
return await this.get(CircleId.fromID(newCircleId));
return await this.get(CircleId.fromID(newRecordId));
}
async get(id: CircleId, claims?: Claims): Promise<Circle> {
const circleResult: any = first(
const record: any = first(
await sql`SELECT *
FROM circles
WHERE id = ${id.raw}
LIMIT 1`,
);
if (!circleResult) {
if (!record) {
throw new NotFoundError('No matching game exists');
}
@@ -72,8 +72,8 @@ export class CircleOrm {
if (
claims &&
!claims.test(Claims.ADMIN) &&
!(claims.test(Claims.CIRCLES.PUBLIC.READ) && circleResult.is_public) &&
!(claims.test(Claims.CIRCLES.OWNED.READ) && circleResult.owning_user_id === claims.userId.raw) &&
!(claims.test(Claims.CIRCLES.PUBLIC.READ) && record.is_public) &&
!(claims.test(Claims.CIRCLES.OWNED.READ) && record.owning_user_id === claims.userId.raw) &&
!(
claims.test(Claims.CIRCLES.PRIVATE.READ_IF_MEMBER) &&
(user = await orm.users.get(claims.userId)) &&
@@ -86,25 +86,25 @@ export class CircleOrm {
}
return new Circle({
id: CircleId.fromID(circleResult.id),
owningUserId: UserId.fromID(circleResult.owning_user_id),
name: circleResult.name,
isPublic: circleResult.is_public,
imagePath: circleResult.image_path,
colour: circleResult.colour,
id: CircleId.fromID(record.id),
owningUserId: UserId.fromID(record.owning_user_id),
name: record.name,
isPublic: record.is_public,
imagePath: record.image_path,
colour: record.colour,
});
}
async update(id: CircleId, patch: UpdateCircleRequest): Promise<Circle> {
const recordToUpdate = await this.get(id);
recordToUpdate.name = patch.name ?? recordToUpdate.name;
recordToUpdate.colour = patch.colour ?? recordToUpdate.colour;
recordToUpdate.imagePath = patch.imagePath ?? recordToUpdate.imagePath;
const circle = await this.get(id);
circle.name = patch.name ?? circle.name;
circle.colour = patch.colour ?? circle.colour;
circle.imagePath = patch.imagePath ?? circle.imagePath;
await sql`UPDATE circles
SET name=${recordToUpdate.name},
colour=${recordToUpdate.colour},
image_path=${recordToUpdate.imagePath}
SET name=${circle.name},
colour=${circle.colour},
image_path=${circle.imagePath}
WHERE id = ${id.raw}`;
return await this.get(id);
@@ -131,8 +131,12 @@ export class CircleOrm {
return;
}
async invite(circleId: CircleId, relatedRecord: PlayerId | UserId | string | undefined, claims: Claims): Promise<void> {
if(relatedRecord === undefined) {
async invite(
circleId: CircleId,
relatedRecord: PlayerId | UserId | string | undefined,
claims: Claims,
): Promise<void> {
if (relatedRecord === undefined) {
throw new BadRequestError();
}
@@ -164,18 +168,18 @@ export class CircleOrm {
query: (query: string) => Promise<Circle[]> = memo<(query: string) => Promise<Circle[]>, Circle[]>(this.#query);
async #query(query: string): Promise<Circle[]> {
const dbResult: any = await sql` SELECT
const queryResult: any = await sql` SELECT
id, name, owning_user_id, is_public
FROM (SELECT *, SIMILARITY(${query}, name) as similarity FROM circles WHERE is_public=true)
WHERE similarity > 0
ORDER BY similarity
LIMIT 5;`;
if (!dbResult) {
if (!queryResult) {
throw new NotFoundError('No matching circles exists');
}
return dbResult.map(
return queryResult.map(
(x: { id: string; name: string; owning_user_id: string; is_public: boolean }) =>
new Circle({
id: CircleId.fromID(x.id),