Skip to content

Commit b4b5adc

Browse files
committed
feat: implement camel case query & add tests
Signed-off-by: rajput-hemant <[email protected]>
1 parent af04354 commit b4b5adc

27 files changed

+1388
-601
lines changed

api/album/details.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use jiosaavn::handlers::{album_details_handler, AlbumParams};
33
use serde_json::json;
44
use std::collections::HashMap;
55
use url::Url;
6-
use vercel_runtime::{run, Body, Error, Request, Response, StatusCode};
6+
use vercel_runtime::{run, Body, Error, Request, Response};
77

88
#[tokio::main]
99
async fn main() -> Result<(), Error> {
@@ -34,10 +34,10 @@ pub async fn handler(req: Request) -> Result<Response<Body>, Error> {
3434
camel,
3535
};
3636

37-
let payload = json!(album_details_handler(Query(params)).await.0);
37+
let (status, payload) = album_details_handler(Query(params)).await;
3838

3939
Ok(Response::builder()
40-
.status(StatusCode::OK)
40+
.status(status)
4141
.header("Content-Type", "application/json")
42-
.body(payload.to_string().into())?)
42+
.body(json!(payload.0).to_string().into())?)
4343
}

api/album/recommend.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use jiosaavn::handlers::{recommend_albums_handler, AlbumParams};
33
use serde_json::json;
44
use std::collections::HashMap;
55
use url::Url;
6-
use vercel_runtime::{run, Body, Error, Request, Response, StatusCode};
6+
use vercel_runtime::{run, Body, Error, Request, Response};
77

88
#[tokio::main]
99
async fn main() -> Result<(), Error> {
@@ -32,10 +32,10 @@ pub async fn handler(req: Request) -> Result<Response<Body>, Error> {
3232
camel,
3333
};
3434

35-
let payload = json!(recommend_albums_handler(Query(params)).await.0);
35+
let (status, payload) = recommend_albums_handler(Query(params)).await;
3636

3737
Ok(Response::builder()
38-
.status(StatusCode::OK)
38+
.status(status)
3939
.header("Content-Type", "application/json")
40-
.body(payload.to_string().into())?)
40+
.body(json!(payload.0).to_string().into())?)
4141
}

api/album/same_year.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use jiosaavn::handlers::{albums_from_same_year_handler, AlbumParams};
33
use serde_json::json;
44
use std::collections::HashMap;
55
use url::Url;
6-
use vercel_runtime::{run, Body, Error, Request, Response, StatusCode};
6+
use vercel_runtime::{run, Body, Error, Request, Response};
77

88
#[tokio::main]
99
async fn main() -> Result<(), Error> {
@@ -32,10 +32,10 @@ pub async fn handler(req: Request) -> Result<Response<Body>, Error> {
3232
camel,
3333
};
3434

35-
let payload = json!(albums_from_same_year_handler(Query(params)).await.0);
35+
let (status, payload) = albums_from_same_year_handler(Query(params)).await;
3636

3737
Ok(Response::builder()
38-
.status(StatusCode::OK)
38+
.status(status)
3939
.header("Content-Type", "application/json")
40-
.body(payload.to_string().into())?)
40+
.body(json!(payload.0).to_string().into())?)
4141
}

api/modules.rs

+10-18
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
use std::collections::HashMap;
22

3-
use jiosaavn::{services::module_service::get_modules, utils::parse_bool};
3+
use axum::extract::Query;
4+
use jiosaavn::handlers::{modules_handler, ModulesParams};
45
use serde_json::json;
56
use url::Url;
6-
use vercel_runtime::{run, Body, Error, Request, Response, StatusCode};
7+
use vercel_runtime::{run, Body, Error, Request, Response};
78

89
#[tokio::main]
910
async fn main() -> Result<(), Error> {
@@ -17,24 +18,15 @@ pub async fn handler(req: Request) -> Result<Response<Body>, Error> {
1718
.into_owned()
1819
.collect();
1920

20-
let lang = hash_query
21-
.get("lang")
22-
.unwrap_or(&"hindi,english".to_string())
23-
.to_owned();
24-
let raw = hash_query
25-
.get("raw")
26-
.unwrap_or(&"false".to_string())
27-
.to_owned();
21+
let lang = hash_query.get("lang").cloned();
22+
let raw = hash_query.get("raw").cloned();
23+
let camel = hash_query.get("camel").cloned();
2824

29-
let camel = hash_query
30-
.get("camel")
31-
.unwrap_or(&"false".to_string())
32-
.to_owned();
33-
34-
let modules = json!(get_modules(lang, parse_bool(raw), parse_bool(camel)).await);
25+
let params = ModulesParams { lang, raw, camel };
26+
let (status, payload) = modules_handler(Query(params)).await;
3527

3628
Ok(Response::builder()
37-
.status(StatusCode::OK)
29+
.status(status)
3830
.header("Content-Type", "application/json")
39-
.body(modules.to_string().into())?)
31+
.body(json!(payload.0).to_string().into())?)
4032
}

api/playlist/details.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use jiosaavn::handlers::{playlist_details_handler, PlaylistParams};
33
use serde_json::json;
44
use std::collections::HashMap;
55
use url::Url;
6-
use vercel_runtime::{run, Body, Error, Request, Response, StatusCode};
6+
use vercel_runtime::{run, Body, Error, Request, Response};
77

88
#[tokio::main]
99
async fn main() -> Result<(), Error> {
@@ -33,10 +33,10 @@ pub async fn handler(req: Request) -> Result<Response<Body>, Error> {
3333
camel,
3434
};
3535

36-
let payload = json!(playlist_details_handler(Query(params)).await.0);
36+
let (status, payload) = playlist_details_handler(Query(params)).await;
3737

3838
Ok(Response::builder()
39-
.status(StatusCode::OK)
39+
.status(status)
4040
.header("Content-Type", "application/json")
41-
.body(payload.to_string().into())?)
41+
.body(json!(payload.0).to_string().into())?)
4242
}

api/playlist/recommend.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use jiosaavn::handlers::{recommend_playlists_handler, PlaylistParams};
33
use serde_json::json;
44
use std::collections::HashMap;
55
use url::Url;
6-
use vercel_runtime::{run, Body, Error, Request, Response, StatusCode};
6+
use vercel_runtime::{run, Body, Error, Request, Response};
77

88
#[tokio::main]
99
async fn main() -> Result<(), Error> {
@@ -31,10 +31,10 @@ pub async fn handler(req: Request) -> Result<Response<Body>, Error> {
3131
camel,
3232
};
3333

34-
let payload = json!(recommend_playlists_handler(Query(params)).await.0);
34+
let (status, payload) = recommend_playlists_handler(Query(params)).await;
3535

3636
Ok(Response::builder()
37-
.status(StatusCode::OK)
37+
.status(status)
3838
.header("Content-Type", "application/json")
39-
.body(payload.to_string().into())?)
39+
.body(json!(payload.0).to_string().into())?)
4040
}

api/song/details.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use jiosaavn::handlers::{song_details_handler, SongParams};
33
use serde_json::json;
44
use std::collections::HashMap;
55
use url::Url;
6-
use vercel_runtime::{run, Body, Error, Request, Response, StatusCode};
6+
use vercel_runtime::{run, Body, Error, Request, Response};
77

88
#[tokio::main]
99
async fn main() -> Result<(), Error> {
@@ -33,10 +33,10 @@ pub async fn handler(req: Request) -> Result<Response<Body>, Error> {
3333
camel,
3434
};
3535

36-
let payload = json!(song_details_handler(Query(params)).await.0);
36+
let (status, payload) = song_details_handler(Query(params)).await;
3737

3838
Ok(Response::builder()
39-
.status(StatusCode::OK)
39+
.status(status)
4040
.header("Content-Type", "application/json")
41-
.body(payload.to_string().into())?)
41+
.body(json!(payload.0).to_string().into())?)
4242
}

api/song/recommend.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use jiosaavn::handlers::{recommend_songs_handler, SongParams};
33
use serde_json::json;
44
use std::collections::HashMap;
55
use url::Url;
6-
use vercel_runtime::{run, Body, Error, Request, Response, StatusCode};
6+
use vercel_runtime::{run, Body, Error, Request, Response};
77

88
#[tokio::main]
99
async fn main() -> Result<(), Error> {
@@ -31,10 +31,10 @@ pub async fn handler(req: Request) -> Result<Response<Body>, Error> {
3131
camel,
3232
};
3333

34-
let payload = json!(recommend_songs_handler(Query(params)).await.0);
34+
let (status, payload) = recommend_songs_handler(Query(params)).await;
3535

3636
Ok(Response::builder()
37-
.status(StatusCode::OK)
37+
.status(status)
3838
.header("Content-Type", "application/json")
39-
.body(payload.to_string().into())?)
39+
.body(json!(payload.0).to_string().into())?)
4040
}

0 commit comments

Comments
 (0)