From b4ddb31cf3e9a63cd18dd99f4ee0e506a5c2af98 Mon Sep 17 00:00:00 2001 From: Sebastian Martinez Date: Thu, 2 Feb 2023 22:15:13 -0300 Subject: [PATCH] Extract `json!` into `api::json` Signed-off-by: Sebastian Martinez --- radicle-httpd/src/api/json.rs | 13 +++++++++++++ radicle-httpd/src/api/v1/sessions.rs | 16 +++------------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/radicle-httpd/src/api/json.rs b/radicle-httpd/src/api/json.rs index 00b8e8bf..fdc6b55d 100644 --- a/radicle-httpd/src/api/json.rs +++ b/radicle-httpd/src/api/json.rs @@ -14,6 +14,8 @@ use radicle_surf::blob::Blob; use radicle_surf::tree::Tree; use radicle_surf::{Commit, Stats}; +use crate::api::auth::Session; + /// Returns JSON of a commit. pub(crate) fn commit(commit: &Commit) -> Value { json!({ @@ -32,6 +34,17 @@ pub(crate) fn commit(commit: &Commit) -> Value { }) } +/// Returns JSON of a session. +pub(crate) fn session(session_id: String, session: &Session) -> Value { + json!({ + "sessionId": session_id, + "status": session.status, + "publicKey": session.public_key, + "issuedAt": session.issued_at.unix_timestamp(), + "expiresAt": session.expires_at.unix_timestamp() + }) +} + /// Returns JSON for a blob with a given `path`. pub(crate) fn blob(blob: &Blob, path: &str) -> Value { json!({ diff --git a/radicle-httpd/src/api/v1/sessions.rs b/radicle-httpd/src/api/v1/sessions.rs index d0661024..518cd436 100644 --- a/radicle-httpd/src/api/v1/sessions.rs +++ b/radicle-httpd/src/api/v1/sessions.rs @@ -7,12 +7,12 @@ use axum::{Json, Router}; use hyper::StatusCode; use radicle::crypto::{PublicKey, Signature}; use serde::{Deserialize, Serialize}; -use serde_json::json; use time::{Duration, OffsetDateTime}; use crate::api::auth::{AuthState, Session}; use crate::api::axum_extra::Path; use crate::api::error::Error; +use crate::api::json; use crate::api::Context; pub const UNAUTHORIZED_SESSIONS_EXPIRATION: Duration = Duration::seconds(60); @@ -55,12 +55,7 @@ async fn session_create_handler(State(ctx): State) -> impl IntoResponse Ok::<_, Error>(( StatusCode::CREATED, - Json(json!({ - "sessionId": session_id, - "publicKey": session.public_key, - "issuedAt": session.issued_at, - "expiresAt": session.expires_at - })), + Json(json::session(session_id, &session)), )) } @@ -73,12 +68,7 @@ async fn session_handler( let sessions = ctx.sessions.read().await; let session = sessions.get(&session_id).ok_or(Error::NotFound)?; - Ok::<_, Error>(Json(json!({ - "status": session.status, - "publicKey": session.public_key, - "issuedAt": session.issued_at.unix_timestamp(), - "expiresAt": session.expires_at.unix_timestamp() - }))) + Ok::<_, Error>(Json(json::session(session_id, session))) } /// Update session.