Skip to content

Commit 3e54ec0

Browse files
author
Devdutt Shenoi
committed
serde directly
1 parent 178c982 commit 3e54ec0

File tree

2 files changed

+3
-11
lines changed

2 files changed

+3
-11
lines changed

src/handlers/http/logstream.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ pub async fn get_retention(stream_name: Path<String>) -> Result<impl Responder,
190190

191191
pub async fn put_retention(
192192
stream_name: Path<String>,
193-
Json(json): Json<Value>,
193+
Json(retention): Json<Retention>,
194194
) -> Result<impl Responder, StreamError> {
195195
let stream_name = stream_name.into_inner();
196196

@@ -205,11 +205,6 @@ pub async fn put_retention(
205205
return Err(StreamNotFound(stream_name).into());
206206
}
207207

208-
let retention: Retention = match serde_json::from_value(json) {
209-
Ok(retention) => retention,
210-
Err(err) => return Err(StreamError::InvalidRetentionConfig(err)),
211-
};
212-
213208
PARSEABLE
214209
.storage
215210
.get_object_store()

src/storage/object_storage.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -257,12 +257,9 @@ pub trait ObjectStorage: Debug + Send + Sync + 'static {
257257
) -> Result<(), ObjectStorageError> {
258258
let path = stream_json_path(stream_name);
259259
let stream_metadata = self.get_object(&path).await?;
260-
let stats =
261-
serde_json::to_value(retention).expect("rentention tasks are perfectly serializable");
262-
let mut stream_metadata: serde_json::Value =
260+
let mut stream_metadata: ObjectStoreFormat =
263261
serde_json::from_slice(&stream_metadata).expect("parseable config is valid json");
264-
265-
stream_metadata["retention"] = stats;
262+
stream_metadata.retention = Some(retention.clone());
266263

267264
self.put_object(&path, to_bytes(&stream_metadata)).await
268265
}

0 commit comments

Comments
 (0)