Skip to content

Commit b328ab1

Browse files
committed
add updater info
1 parent c521ae2 commit b328ab1

File tree

3 files changed

+23
-9
lines changed

3 files changed

+23
-9
lines changed

src/webapp/database.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,7 @@ class BatchTable(Base):
327327
deleted_at = Column(DateTime(timezone=True), nullable=True)
328328
created_at = Column(DateTime(timezone=True), server_default=func.now())
329329
updated_at = Column(DateTime(timezone=True), onupdate=func.now())
330+
updated_by = Column(Uuid(as_uuid=True), nullable=True)
330331
# Within a given institution, there should be no duplicated batch names.
331332
__table_args__ = (UniqueConstraint("name", "inst_id", name="batch_name_inst_uc"),)
332333

src/webapp/routers/data.py

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,10 @@ class BatchInfo(BaseModel):
8282
# Date in form YYMMDD. Deletion of a batch will apply to all files in a batch,
8383
# unless the file is present in other batches.
8484
deletion_request_time: str | None = None
85-
created_date: datetime | None = None
85+
created_at: datetime | None = None
86+
updated_at: datetime | None = None
87+
# The following is the user who last updated this batch.
88+
updated_by: str | None = None
8689

8790

8891
class DataInfo(BaseModel):
@@ -212,7 +215,9 @@ def get_all_batches(
212215
"deleted": False if elem.deleted is None else elem.deleted,
213216
"completed": False if elem.completed is None else elem.completed,
214217
"deletion_request_time": elem.deleted_at,
215-
"created_date": elem.created_at,
218+
"created_at": elem.created_at,
219+
"updated_by": uuid_to_str(query_result[0][0].updated_by),
220+
"updated_at": query_result[0][0].updated_at,
216221
}
217222
)
218223
return result_batches
@@ -296,6 +301,7 @@ def read_inst_all_output_files(
296301
}
297302

298303

304+
# TODO: rename this function to better reflect its behavior.
299305
@router.post("/{inst_id}/update-data")
300306
def update_data(
301307
inst_id: str,
@@ -420,7 +426,9 @@ def read_batch_info(
420426
"deleted": False if res.deleted is None else res.deleted,
421427
"completed": False if res.completed is None else res.completed,
422428
"deletion_request_time": res.deleted_at,
423-
"created_date": res.created_at,
429+
"created_at": res.created_at,
430+
"updated_at": res.updated_at,
431+
"updated_by": uuid_to_str(res.updated_by),
424432
}
425433
data_infos = []
426434
for elem in res.files:
@@ -548,7 +556,9 @@ def create_batch(
548556
"deleted": False,
549557
"completed": False,
550558
"deletion_request_time": None,
551-
"created_date": query_result[0][0].created_at,
559+
"created_at": query_result[0][0].created_at,
560+
"updated_by": uuid_to_str(query_result[0][0].updated_by),
561+
"updated_at": query_result[0][0].updated_at,
552562
}
553563

554564

@@ -676,6 +686,7 @@ def update_batch(
676686
existing_batch.deleted_at = func.now()
677687
if "completed" in update_data:
678688
existing_batch.completed = update_data["completed"]
689+
existing_batch.updated_by = str_to_uuid(current_user.user_id)
679690
local_session.get().commit()
680691
res = (
681692
local_session.get()
@@ -698,7 +709,9 @@ def update_batch(
698709
"deleted": res[0][0].deleted,
699710
"completed": res[0][0].completed,
700711
"deletion_request_time": res[0][0].deleted_at,
701-
"created_date": res[0][0].created_at,
712+
"created_at": res[0][0].created_at,
713+
"updated_by": uuid_to_str(query_result[0][0].updated_by),
714+
"updated_at": query_result[0][0].updated_at,
702715
}
703716

704717

src/webapp/routers/data_test.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ def same_orderless(a: DataOverview, b: DataOverview):
8383
or a_elem["deleted"] != b_elem["deleted"]
8484
or a_elem["completed"] != b_elem["completed"]
8585
or a_elem["deletion_request_time"] != b_elem["deletion_request_time"]
86-
or a_elem["created_date"] != b_elem["created_date"]
86+
or a_elem["created_at"] != b_elem["created_at"]
8787
):
8888
return False
8989
if not found:
@@ -236,7 +236,7 @@ def test_read_inst_all_input_files(client: TestClient):
236236
"deleted": False,
237237
"completed": False,
238238
"deletion_request_time": None,
239-
"created_date": "2024-12-24T20:22:20.132022",
239+
"created_at": "2024-12-24T20:22:20.132022",
240240
}
241241
],
242242
"files": [
@@ -304,7 +304,7 @@ def test_read_inst_all_output_files(client: TestClient):
304304
"deleted": False,
305305
"completed": False,
306306
"deletion_request_time": None,
307-
"created_date": "2024-12-24T20:22:20.132022",
307+
"created_at": "2024-12-24T20:22:20.132022",
308308
}
309309
],
310310
"files": [
@@ -379,7 +379,7 @@ def test_read_batch_info(client: TestClient):
379379
"deleted": False,
380380
"completed": False,
381381
"deletion_request_time": None,
382-
"created_date": "2024-12-24T20:22:20.132022",
382+
"created_at": "2024-12-24T20:22:20.132022",
383383
}
384384
],
385385
"files": [

0 commit comments

Comments
 (0)