используя if в функции postgres - PullRequest
0 голосов
/ 08 июля 2019

это функция, которая используется для регистрации, но когда эта функция используется, введенные данные не попадают в базу данных, запрос читается только до тех пор, пока «Имя пользователя уже существует», если новые введенные данные не могут войти в запрос вставки

    DECLARE
  headers JSONB;
  body JSONB;

  var_username VARCHAR;
  var_password VARCHAR;
  var_full_name VARCHAR;
  var_email VARCHAR;
  var_company VARCHAR;

  var_id BIGINT;
BEGIN
  headers = request->'headers';
  body = request->'body';

  var_username = body->>'username';
  var_password = body->>'password'; 
  var_full_name = body->>'full_name';
  var_email = body->>'email';
  var_company = body->>'company';

    IF EXISTS(SELECT id FROM sso.users WHERE username = var_username) THEN
    RETURN jsonb_build_object(
        'success' , false,
        'message', 'Username already exists'
    );
  END IF;

  INSERT INTO sso.users(username, email, password, full_name, company) 
  VALUES (var_username, var_email, var_password, var_full_name, var_company) 
  RETURNING id INTO var_id;


  RETURN(
    'success', true,
    'token', var_id::varchar
  );
END;
...