Skip to content

Commit

Permalink
Add membership updates to Org put endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
bsatoriu committed Sep 4, 2024
1 parent 9d96ff3 commit 6355ec2
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 9 deletions.
23 changes: 16 additions & 7 deletions api/endpoints/organizations.py
Original file line number Diff line number Diff line change
Expand Up @@ -123,12 +123,6 @@ def post(self):
db.session.add(new_org)
db.session.commit()

# Update membership
db.session.execute(
db.delete(OrganizationMembership_db).filter_by(org_id=new_org.id)
)
db.session.commit()

org_members = []
members = req_data.get("members", [])
for org_member in members:
Expand Down Expand Up @@ -186,11 +180,26 @@ def put(self, org_id):
return err_response(msg="No org found with id " + org_id)

org.name = req_data.get("name", org.name)
org.parent_id = req_data.get("parent_id", org.parent_id)
org.parent_id = req_data.get("parent_org_id", org.parent_id)
org.default_job_limit_count = req_data.get("default_job_limit_count", org.default_job_limit_count)
org.default_job_limit_hours = req_data.get("default_job_limit_hours", org.default_job_limit_hours)
db.session.commit()

# Update membership
db.session.execute(
db.delete(OrganizationMembership_db).filter_by(org_id=org_id)
)
db.session.commit()

org_members = []
members = req_data.get("members", [])
for org_member in members:
org_members.append(OrganizationMembership_db(member_id=org_member['member_id'], org_id=org_id, org_maintainer=org_member['maintainer'], creation_date=datetime.utcnow()))

if len(org_members) > 0:
db.session.add_all(org_members)
db.session.commit()

org_schema = OrganizationSchema()
return json.loads(org_schema.dumps(org))

Expand Down
13 changes: 11 additions & 2 deletions sql/materialized_views/org_tree.sql
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
create view org_tree
(row_number, member_count, depth, id, name, parent_org_id, default_job_limit_count, default_job_limit_hours,
creation_date)
as
WITH RECURSIVE
node_rec AS (SELECT 1 AS row_count,
0 AS member_count,
Expand Down Expand Up @@ -30,8 +34,13 @@ WITH RECURSIVE
node_rec.depth,
node_rec.id,
node_rec.name,
node_rec.parent_org_id,
node_rec.default_job_limit_count,
node_rec.default_job_limit_hours
node_rec.default_job_limit_hours,
node_rec.creation_date
FROM node_rec
WHERE node_rec.parent_org_id IS NOT NULL
ORDER BY node_rec.path, node_rec.name
ORDER BY node_rec.path, node_rec.name;

alter table org_tree
owner to postgres;

0 comments on commit 6355ec2

Please sign in to comment.