| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- // Objection Docs:
- // http://vincit.github.io/objection.js/
- import { Model } from "objection";
- import db from "../db.js";
- import { convertBoolFieldsToInt, convertIntFieldsToBool } from "../lib/helpers.js";
- import AccessListAuth from "./access_list_auth.js";
- import AccessListClient from "./access_list_client.js";
- import now from "./now_helper.js";
- import ProxyHostModel from "./proxy_host.js";
- import User from "./user.js";
- Model.knex(db);
- const boolFields = ["is_deleted", "satisfy_any", "pass_auth"];
- class AccessList extends Model {
- $beforeInsert() {
- this.created_on = now();
- this.modified_on = now();
- // Default for meta
- if (typeof this.meta === "undefined") {
- this.meta = {};
- }
- }
- $beforeUpdate() {
- this.modified_on = now();
- }
- $parseDatabaseJson(json) {
- const thisJson = super.$parseDatabaseJson(json);
- return convertIntFieldsToBool(thisJson, boolFields);
- }
- $formatDatabaseJson(json) {
- const thisJson = convertBoolFieldsToInt(json, boolFields);
- return super.$formatDatabaseJson(thisJson);
- }
- static get name() {
- return "AccessList";
- }
- static get tableName() {
- return "access_list";
- }
- static get jsonAttributes() {
- return ["meta"];
- }
- static get relationMappings() {
- return {
- owner: {
- relation: Model.HasOneRelation,
- modelClass: User,
- join: {
- from: "access_list.owner_user_id",
- to: "user.id",
- },
- modify: (qb) => {
- qb.where("user.is_deleted", 0);
- },
- },
- items: {
- relation: Model.HasManyRelation,
- modelClass: AccessListAuth,
- join: {
- from: "access_list.id",
- to: "access_list_auth.access_list_id",
- },
- },
- clients: {
- relation: Model.HasManyRelation,
- modelClass: AccessListClient,
- join: {
- from: "access_list.id",
- to: "access_list_client.access_list_id",
- },
- },
- proxy_hosts: {
- relation: Model.HasManyRelation,
- modelClass: ProxyHostModel,
- join: {
- from: "access_list.id",
- to: "proxy_host.access_list_id",
- },
- modify: (qb) => {
- qb.where("proxy_host.is_deleted", 0);
- },
- },
- };
- }
- }
- export default AccessList;
|