/* Espe | Ein schlichtes Werkzeug zur Mitglieder-Verwaltung | Backend Copyright (C) 2024 Christian Fraß This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ namespace _espe.repository.name_index { /** */ var _chest : ( null | lib_plankton.storage.type_chest< Array, Record, lib_plankton.database.type_description_create_table, lib_plankton.storage.sql_table_common.type_sql_table_common_search_term, Record > ) = null; /** */ function get_chest( ) : lib_plankton.storage.type_chest< Array, Record, lib_plankton.database.type_description_create_table, lib_plankton.storage.sql_table_common.type_sql_table_common_search_term, Record > { if (_chest === null) { _chest = lib_plankton.storage.sql_table_common.chest( { "database_implementation": _espe.helpers.database_implementation(), "table_name": "name_indices", "key_names": ["name_image"], } ); } else { // do nothing } return _chest; } /** */ async function get_name_image( name : string ) : Promise { return ( (! _espe.conf.get().settings.name_index.veil) ? name : await lib_plankton.sha256.get( lib_plankton.json.encode(name), _espe.conf.get().settings.name_index.salt ) ); } /** */ export async function read( name : string ) : Promise { const name_image : string = await get_name_image(name); let row : Record; try { row = await get_chest().read([name_image]); return row["index"]; } catch (error) { return 0; } } /** */ export async function write( name : string, index : int ) : Promise { const name_image : string = await get_name_image(name); await get_chest().write([name_image], {"index": index}); } }