namespace repositories { export var language : helpers.repository_sqltable & {identify : (value : string)=>Promise;} = { "setup": async function () { await helpers.database.query_put_named("language.setup"); return Promise.resolve(undefined); }, "teardown": function () { return Promise.reject(new Error("not implemented")); }, "create": function (row) { return helpers.database.query_put_free ( "INSERT INTO languages(value) VALUES (:value);", { "value": row["value"], } ); }, "update": function (language_id, row) { return helpers.database.query_do_free ( "UPDATE languages SET value = :vaule WHERE (id = :id);", { "id": language_id, "value": row["value"], } ); }, "delete": function (language_id) { return helpers.database.query_do_free ( "DELETE FROM languages WHERE (id = :id);", { "id": language_id, } ); }, "read": function (language_id) { return ( helpers.database.query_get_free ( "SELECT value FROM languages WHERE (id = :id);", { "id": language_id, } ) .then ( (rows) => ( (rows.length === 1) ? Promise.resolve(rows[0]) : Promise.reject(new Error("not found")) ) ) ); }, "purge": function (column, value) { return Promise.reject(new Error("not implemented")); }, "take": function (column, value) { return Promise.reject(new Error("not implemented")); }, "identify": function (value : string) : Promise { return ( helpers.database.query_get_free ( "SELECT id FROM languages WHERE (value = :value);", { "value": value, } ) .then ( (rows) => ( (rows.length === 1) ? Promise.resolve(rows[0]["id"]) : Promise.reject() ) ) ); }, }; }