summaryrefslogtreecommitdiff
path: root/src/commit/routes.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/commit/routes.rs')
-rw-r--r--src/commit/routes.rs26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/commit/routes.rs b/src/commit/routes.rs
index a1da519..542edbb 100644
--- a/src/commit/routes.rs
+++ b/src/commit/routes.rs
@@ -21,9 +21,31 @@ async fn index(
None => String::new(),
};
- info!(state.log, "GET /commit/?q={}", &hash);
+ let repo_user = match query.get("repository_user") {
+ Some(x) => x.clone(),
+ None => String::new(),
+ };
+ let repo_name = match query.get("repository_name") {
+ Some(x) => x.clone(),
+ None => String::new(),
+ };
- let result = Commit::find_all(state.pool.clone(), &hash).await;
+ let result;
+ if repo_user != "" && repo_name != "" {
+ info!(
+ state.log,
+ "GET /commit/?repository_user={}&repository_name={}",
+ &repo_user,
+ &repo_name
+ );
+ let repository_url = format!("{}/{}", repo_user, repo_name);
+ result =
+ Commit::find_by_repository(state.pool.clone(), repository_url)
+ .await;
+ } else {
+ info!(state.log, "GET /commit/?q={}", &hash);
+ result = Commit::find_all(state.pool.clone(), &hash).await;
+ }
match result {
Ok(commits) => HttpResponse::Ok().json(commits),