|
1 | 1 | import json |
2 | 2 |
|
3 | | -from query import EventTable |
| 3 | +import boto3 |
4 | 4 |
|
5 | 5 | sample_file = "sample_data/2023-11-09T19:09:23_immunisation-30.json" |
6 | 6 |
|
7 | 7 | dynamodb_url = "http://localhost:4566" |
8 | 8 | table_name = "local-imms-events" |
9 | 9 |
|
10 | 10 |
|
11 | | -def seed_immunisation(table, sample_file): |
12 | | - with open(sample_file, "r") as raw_data: |
| 11 | +class DynamoTable: |
| 12 | + def __init__(self, endpoint_url, _table_name): |
| 13 | + db = boto3.resource('dynamodb', endpoint_url=endpoint_url, region_name="us-east-1") |
| 14 | + self.table = db.Table(_table_name) |
| 15 | + |
| 16 | + def create_immunization(self, imms): |
| 17 | + imms_id = imms["id"] |
| 18 | + pk = f"Immunization#{imms_id}" |
| 19 | + |
| 20 | + response = self.table.put_item(Item={ |
| 21 | + 'PK': pk, |
| 22 | + 'Resource': json.dumps(imms), |
| 23 | + }) |
| 24 | + return imms if response["ResponseMetadata"]["HTTPStatusCode"] == 200 else None |
| 25 | + |
| 26 | + |
| 27 | +def seed_immunization(table, _sample_file): |
| 28 | + with open(_sample_file, "r") as raw_data: |
13 | 29 | imms_list = json.loads(raw_data.read()) |
14 | 30 |
|
15 | 31 | for imms in imms_list: |
16 | | - table.create_immunisation(imms) |
| 32 | + table.create_immunization(imms) |
17 | 33 |
|
18 | | - print(f"{len(imms_list)} events added successfully") |
| 34 | + print(f"{len(imms_list)} resources added successfully") |
19 | 35 |
|
20 | 36 |
|
21 | 37 | if __name__ == '__main__': |
22 | | - _table = EventTable(dynamodb_url, table_name) |
23 | | - seed_immunisation(_table, sample_file) |
| 38 | + _table = DynamoTable(dynamodb_url, table_name) |
| 39 | + seed_immunization(_table, sample_file) |
0 commit comments