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(); 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; }