Add proper unique constraint to project

This commit is contained in:
Abin Simon
2022-05-27 13:51:28 +05:30
parent 18269e0728
commit c2c503a1aa
3 changed files with 11 additions and 1 deletions
@@ -28,6 +28,8 @@ ALTER TABLE authsrv_partner OWNER TO admindbuser;
ALTER TABLE ONLY authsrv_partner ADD CONSTRAINT authsrv_partner_pkey PRIMARY KEY (id);
CREATE UNIQUE index authsrv_partner_unique_name ON authsrv_partner (name) WHERE trash IS false;
CREATE INDEX authsrv_partner_name_b6a8d21f ON authsrv_partner USING btree (name);
CREATE INDEX authsrv_partner_name_b6a8d21f_like ON authsrv_partner USING btree (name varchar_pattern_ops);
@@ -14,6 +14,9 @@ ALTER TABLE authsrv_project OWNER TO admindbuser;
ALTER TABLE ONLY authsrv_project ADD CONSTRAINT authsrv_project_pkey PRIMARY KEY (id);
-- update when we have more than one org
CREATE UNIQUE index authsrv_project_unique_name ON authsrv_project (name) WHERE trash IS false;
CREATE INDEX authsrv_project_name_1b8dd279 ON authsrv_project USING btree (name);
CREATE INDEX authsrv_project_name_1b8dd279_like ON authsrv_project USING btree (name varchar_pattern_ops);
@@ -28,4 +31,4 @@ ALTER TABLE ONLY authsrv_project
ALTER TABLE ONLY authsrv_project
ADD CONSTRAINT authsrv_project_partner_id_3d505b76_fk_authsrv_partner_id FOREIGN KEY (partner_id)
REFERENCES authsrv_partner(id) DEFERRABLE INITIALLY DEFERRED;
REFERENCES authsrv_partner(id) DEFERRABLE INITIALLY DEFERRED;
+5
View File
@@ -64,6 +64,11 @@ func (s *projectService) Create(ctx context.Context, project *systemv3.Project)
return nil, err
}
p, _ := dao.GetIdByNamePartnerOrg(ctx, s.db, project.GetMetadata().GetName(), uuid.NullUUID{}, uuid.NullUUID{}, &models.Project{})
if p != nil {
return nil, fmt.Errorf("project '%v' already exists", project.GetMetadata().GetName())
}
//convert v3 spec to internal models
proj := models.Project{
Name: project.GetMetadata().GetName(),