t00-multiuser/server/repos/OverrideRepo.ts
2025-04-22 09:38:59 +01:00

57 lines
No EOL
2.8 KiB
TypeScript

import Database from "../objects/Database";
import Override from "../entities/Override";
export default class OverrideRepo {
public static async selectAll() {
const dbOverride = await Database.Instance.query("SELECT * FROM Override WHERE IsDeleted = 0");
const users = new Array<Override>();
for (const row of dbOverride) {
const override = new Override();
populateOverrideFromDB(override, row);
users.push(override);
}
return users;
}
public static async selectById(id:number) {
const dbOverride = await Database.Instance.query("SELECT * FROM Override WHERE Id = ? LIMIT 1", [id]);
if (dbOverride == null || dbOverride.length === 0) {
return null;
} else {
const override = new Override();
populateOverrideFromDB(override, dbOverride[0]);
return override;
}
}
public static async insertUpdate(override:Override) {
if (override.Id === Number.MIN_VALUE) {
override.Id = (await Database.Instance.query("INSERT Override (OverrideTypeId, Name, ForURL, CSSQuery, CreatedByUserId, CreatedDatetime, LastModifiedByUserId, LastModifiedDatetime, DeletedByUserId, DeletedDatetime, IsDeleted) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING Id;", [
override.OverrideType, override.Name, override.ForURL, override.CSSQuery, override.CreatedByUserId, override.CreatedDatetime.getTime(), override.LastModifiedByUserId ?? null, override.LastModifiedDatetime ?? null, override.DeletedByUserId ?? null, override.DeletedDatetime ?? null, Number(override.IsDeleted)
]))[0]["Id"];
} else {
await Database.Instance.query(`UPDATE Override SET OverrideTypeId = ?, Name = ?, ForURL = ?, CSSQuery = ?, CreatedByUserId = ?, CreatedDatetime = ?, LastModifiedByUserId = ?, LastModifiedDatetime = ?, DeletedByUserId = ?, DeletedDatetime = ?, IsDeleted = ? WHERE Id = ?`, [
override.OverrideType, override.Name, override.ForURL, override.CSSQuery, override.CreatedByUserId, override.CreatedDatetime.getTime(), override.LastModifiedByUserId ?? null, override.LastModifiedDatetime ?? null, override.DeletedByUserId ?? null, override.DeletedDatetime ?? null, Number(override.IsDeleted), override.Id
]);
}
return override;
}
}
function populateOverrideFromDB(override:Override, dbOverride:any) {
override.Id = dbOverride.Id;
override.OverrideType = dbOverride.OverrideTypeId;
override.Name = dbOverride.Name;
override.ForURL = dbOverride.ForURL;
override.CSSQuery = dbOverride.CSSQuery;
override.CreatedByUserId = dbOverride.CreatedByUserId;
override.CreatedDatetime = dbOverride.CreatedDatetime;
override.LastModifiedByUserId = dbOverride.LastModifiedByUserId;
override.LastModifiedDatetime = dbOverride.LastModifiedDatetime;
override.DeletedByUserId = dbOverride.DeletedByUserId;
override.DeletedDatetime = dbOverride.DeletedDatetime;
override.IsDeleted = dbOverride.IsDeleted[0] === 1;
}