Experimenting using GraphQL in favor of REST.

This commit is contained in:
2019-12-15 05:42:51 +01:00
parent 36c5fa3b52
commit 7ba716cd6f
21 changed files with 1021 additions and 113 deletions

View File

@@ -200,7 +200,7 @@ exports.up = knex => Promise.resolve()
table.integer('duration')
.unsigned();
table.integer('parent', 16)
table.integer('parent_id', 16)
.references('id')
.inTable('releases');
@@ -220,6 +220,8 @@ exports.up = knex => Promise.resolve()
table.string('domain');
table.integer('target_id', 16);
table.json('target');
table.string('role');
table.string('quality', 6);
@@ -286,9 +288,29 @@ exports.up = knex => Promise.resolve()
table.integer('target_id', 16);
table.unique(['domain', 'tag_id', 'target_id']);
}));
}))
.then(() => knex.raw(`
CREATE VIEW releases_media AS SELECT * FROM public.media WHERE domain = 'releases';
CREATE VIEW actors_media AS SELECT * FROM public.media WHERE domain = 'actors';
CREATE VIEW tags_media AS SELECT * FROM public.media WHERE domain = 'media';
CREATE VIEW releases_tags AS SELECT * FROM public.tags_associated WHERE domain = 'releases';
COMMENT ON VIEW releases_media IS E'@foreignKey (target_id) references releases (id)|@fieldName releaseId';
COMMENT ON VIEW actors_media IS E'@foreignKey (target_id) references actors (id)|@fieldName actorId';
COMMENT ON VIEW tags_media IS E'@foreignKey (target_id) references tags (id)|@fieldName tagMediaId';
COMMENT ON VIEW releases_tags IS E'@foreignKey (target_id) references releases (id)\n@foreignKey (tag_id) references tags (id)';
`));
exports.down = knex => Promise.resolve()
.then(() => knex.raw(`
DROP VIEW releases_media;
DROP VIEW actors_media;
DROP VIEW tags_media;
DROP VIEW releases_tags;
`))
.then(() => knex.schema.dropTable('tags_associated'))
.then(() => knex.schema.dropTable('directors_associated'))
.then(() => knex.schema.dropTable('actors_associated'))