From 429a71ef370f5f848fd96c3fed6e991584414841 Mon Sep 17 00:00:00 2001 From: Rafa de la Torre Date: Thu, 10 Nov 2016 18:56:50 +0100 Subject: [PATCH] Add a function to check for enough quota #302 --- server/extension/sql/200_quotas.sql | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/server/extension/sql/200_quotas.sql b/server/extension/sql/200_quotas.sql index 81676e8..22d270b 100644 --- a/server/extension/sql/200_quotas.sql +++ b/server/extension/sql/200_quotas.sql @@ -44,3 +44,18 @@ RETURNS cdb_dataservices_server.service_params AS $$ return [monthly_quota, used_quota, soft_limit, provider] $$ LANGUAGE plpythonu; + + +CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_enough_quota( + username TEXT, + orgname TEXT, + service TEXT, + input_size NUMERIC) +returns BOOLEAN AS $$ + DECLARE + params cdb_dataservices_server.service_params; + BEGIN + SELECT * INTO params FROM cdb_dataservices_server.cdb_service_params(username, orgname, service); + RETURN params.soft_limit OR ((params.used_quota + input_size) <= params.monthly_quota); + END +$$ LANGUAGE plpgsql;