Skip to content

Commit 8fecb98

Browse files
authored
feat: added support for bucket data object and updating bucket metadata (#128)
1 parent 0dd5176 commit 8fecb98

File tree

3 files changed

+199
-141
lines changed

3 files changed

+199
-141
lines changed

aw_server/api.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ def create_bucket(
139139
client: str,
140140
hostname: str,
141141
created: Optional[datetime] = None,
142+
data: Optional[Dict[str, Any]] = None,
142143
) -> bool:
143144
"""
144145
Create bucket.
@@ -154,9 +155,29 @@ def create_bucket(
154155
client=client,
155156
hostname=hostname,
156157
created=created,
158+
data=data,
157159
)
158160
return True
159161

162+
@check_bucket_exists
163+
def update_bucket(
164+
self,
165+
bucket_id: str,
166+
event_type: Optional[str] = None,
167+
client: Optional[str] = None,
168+
hostname: Optional[str] = None,
169+
data: Optional[Dict[str, Any]] = None,
170+
) -> None:
171+
"""Update bucket metadata"""
172+
self.db.update_bucket(
173+
bucket_id,
174+
type=event_type,
175+
client=client,
176+
hostname=hostname,
177+
data=data,
178+
)
179+
return None
180+
160181
@check_bucket_exists
161182
def delete_bucket(self, bucket_id: str) -> None:
162183
"""Delete a bucket"""

aw_server/rest.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,16 @@ def format(self, value):
104104
},
105105
)
106106

107+
update_bucket = api.model(
108+
"UpdateBucket",
109+
{
110+
"client": fields.String(required=False),
111+
"type": fields.String(required=False),
112+
"hostname": fields.String(required=False),
113+
"data": fields.String(required=False),
114+
},
115+
)
116+
107117
query = api.model(
108118
"Query",
109119
{
@@ -173,6 +183,19 @@ def post(self, bucket_id):
173183
else:
174184
return {}, 304
175185

186+
@api.expect(update_bucket)
187+
@copy_doc(ServerAPI.update_bucket)
188+
def put(self, bucket_id):
189+
data = request.get_json()
190+
current_app.api.update_bucket(
191+
bucket_id,
192+
event_type=data["type"],
193+
client=data["client"],
194+
hostname=data["hostname"],
195+
data=data["data"],
196+
)
197+
return {}, 200
198+
176199
@copy_doc(ServerAPI.delete_bucket)
177200
@api.param("force", "Needs to be =1 to delete a bucket it non-testing mode")
178201
def delete(self, bucket_id):

0 commit comments

Comments
 (0)