57 lines
No EOL
2.8 KiB
TypeScript
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;
|
|
} |