diff --git a/src/main/java/io/supertokens/storage/postgresql/Start.java b/src/main/java/io/supertokens/storage/postgresql/Start.java index c4e7174a..eeee4ded 100644 --- a/src/main/java/io/supertokens/storage/postgresql/Start.java +++ b/src/main/java/io/supertokens/storage/postgresql/Start.java @@ -1540,12 +1540,12 @@ public boolean deleteRoleForUser_Transaction(TransactionConnection con, String u } @Override - public void createNewRoleOrDoNothingIfExists_Transaction(TransactionConnection con, String role) + public boolean createNewRoleOrDoNothingIfExists_Transaction(TransactionConnection con, String role) throws StorageQueryException { Connection sqlCon = (Connection) con.getConnection(); try { - UserRolesQueries.createNewRole_Transaction(this, sqlCon, role); + return UserRolesQueries.createNewRoleOrDoNothingIfExists_Transaction(this, sqlCon, role); } catch (SQLException e) { throw new StorageQueryException(e); } diff --git a/src/main/java/io/supertokens/storage/postgresql/queries/UserRolesQueries.java b/src/main/java/io/supertokens/storage/postgresql/queries/UserRolesQueries.java index 827cea4e..2f34f38e 100644 --- a/src/main/java/io/supertokens/storage/postgresql/queries/UserRolesQueries.java +++ b/src/main/java/io/supertokens/storage/postgresql/queries/UserRolesQueries.java @@ -82,10 +82,11 @@ public static String getQueryToCreateUserRolesRoleIndex(Start start) { return "CREATE INDEX user_roles_role_index ON " + getConfig(start).getUserRolesTable() + "(role);"; } - public static void createNewRole_Transaction(Start start, Connection con, String role) + public static boolean createNewRoleOrDoNothingIfExists_Transaction(Start start, Connection con, String role) throws SQLException, StorageQueryException { String QUERY = "INSERT INTO " + getConfig(start).getRolesTable() + " VALUES(?) ON CONFLICT DO NOTHING;"; - update(con, QUERY, pst -> pst.setString(1, role)); + int rowsUpdated = update(con, QUERY, pst -> pst.setString(1, role)); + return rowsUpdated > 0; } public static void addPermissionToRoleOrDoNothingIfExists_Transaction(Start start, Connection con, String role,