mirror of https://github.com/artifacthub/hub.git
24 lines
647 B
SQL
24 lines
647 B
SQL
-- add_api_key adds the provided api key to the database.
|
|
create or replace function add_api_key(p_api_key jsonb)
|
|
returns setof json as $$
|
|
declare
|
|
v_api_key_id uuid;
|
|
v_api_key_secret text := encode(gen_random_bytes(32), 'base64');
|
|
begin
|
|
insert into api_key (
|
|
name,
|
|
secret,
|
|
user_id
|
|
) values (
|
|
p_api_key->>'name',
|
|
encode(sha512(v_api_key_secret::bytea), 'hex'),
|
|
(p_api_key->>'user_id')::uuid
|
|
) returning api_key_id into v_api_key_id;
|
|
|
|
return query select json_build_object(
|
|
'api_key_id', v_api_key_id,
|
|
'secret', v_api_key_secret
|
|
);
|
|
end
|
|
$$ language plpgsql;
|