namespace repositories { /** */ export var concept_tags : helpers.repository_sqltable = { "setup": function () { return helpers.database.query_do_named("concept.setup-tags"); }, "teardown": function () { throw (new Error("not implemented")); }, "create": function (row) { return helpers.database.query_put_free ( "INSERT INTO concept_tags(concept_id, tag_id) VALUES (:concept_id, :tag_id);", { "concept_id": row["concept_id"], "tag_id": row["tag_id"], } ); }, "update": function (concept_tag_id, row) { return helpers.database.query_do_free ( "UPDATE concept_tags SET concept_id = :concept_id, tag_id = :tag_id WHERE (id = :id)", { "id": concept_tag_id, "concept_id": row["concept_id"], "tag_id": row["tag_id"], } ); }, "delete": function (concept_tag_id) { return helpers.database.query_do_free ( "DELETE FROM concept_tags WHERE (id = :id)", { "id": concept_tag_id, } ); }, "read": async function (concept_tag_id) { return ( helpers.database.query_get_free ( "SELECT concept_id,tag_id FROM concept_tags WHERE (id = :id)", { "id": concept_tag_id, } ) .then ( (rows) => ( (rows.length === 1) ? Promise.resolve(rows[0]) : Promise.reject(new Error("not found")) ) ) ); }, "purge": async function (column, value) { return helpers.database.query_do_free ( "DELETE FROM concept_tags WHERE (" + column + " = :value)", { "value": value, } ); }, "take": async function (column, value) { return await helpers.database.query_get_free ( "SELECT concept_id,tag_id FROM concept_tags WHERE (" + column + " = :value)", { "value": value, } ); }, }; }