Skip to content

Commit bcedce6

Browse files
committed
Added owner and repo
1 parent 7633da2 commit bcedce6

File tree

11 files changed

+328
-285
lines changed

11 files changed

+328
-285
lines changed

fplus-http-server/src/main.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,6 @@ async fn main() -> std::io::Result<()> {
4242
.service(router::application::validate_application_approval)
4343
.service(router::blockchain::address_allowance)
4444
.service(router::blockchain::verified_clients)
45-
.service(router::notary::notaries)
46-
.service(router::notary::ldn_actors)
4745
.service(router::govteam::gov_team_members)
4846
.service(router::allocator::allocators)
4947
.service(router::allocator::create)

fplus-http-server/src/router/application.rs

Lines changed: 47 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use actix_web::{get, post, web, HttpResponse, Responder};
22
use fplus_lib::core::{
33
CompleteGovernanceReviewInfo, CompleteNewApplicationProposalInfo, CreateApplicationInfo,
4-
LDNApplication, RefillInfo, ValidationPullRequestData,
4+
LDNApplication, RefillInfo, DcReachedInfo, ValidationPullRequestData, GithubQueryParams, ApplicationQueryParams
55
};
66

77
#[post("/application")]
@@ -17,9 +17,11 @@ pub async fn create(info: web::Json<CreateApplicationInfo>) -> impl Responder {
1717
}
1818
}
1919

20-
#[get("/application/{id}")]
21-
pub async fn single(id: web::Path<String>) -> impl Responder {
22-
let app = match LDNApplication::load(id.into_inner()).await {
20+
#[get("/application")]
21+
pub async fn single(query: web::Query<ApplicationQueryParams>) -> impl Responder {
22+
let ApplicationQueryParams { id, owner, repo } = query.into_inner();
23+
24+
let app = match LDNApplication::load(id, owner, repo).await {
2325
Ok(app) => app,
2426
Err(e) => return HttpResponse::BadRequest().body(e.to_string()),
2527
};
@@ -35,15 +37,17 @@ pub async fn trigger(
3537
id: web::Path<String>,
3638
info: web::Json<CompleteGovernanceReviewInfo>,
3739
) -> impl Responder {
38-
let ldn_application = match LDNApplication::load(id.into_inner()).await {
40+
41+
let CompleteGovernanceReviewInfo { actor, owner, repo } = info.into_inner();
42+
let ldn_application = match LDNApplication::load(id.into_inner(), owner.clone(), repo.clone()).await {
3943
Ok(app) => app,
4044
Err(e) => {
4145
return HttpResponse::BadRequest().body(e.to_string());
4246
}
4347
};
4448
dbg!(&ldn_application);
4549
match ldn_application
46-
.complete_governance_review(info.into_inner())
50+
.complete_governance_review(actor, owner, repo)
4751
.await
4852
{
4953
Ok(app) => HttpResponse::Ok().body(serde_json::to_string_pretty(&app).unwrap()),
@@ -59,14 +63,20 @@ pub async fn propose(
5963
id: web::Path<String>,
6064
info: web::Json<CompleteNewApplicationProposalInfo>,
6165
) -> impl Responder {
62-
let ldn_application = match LDNApplication::load(id.into_inner()).await {
66+
let CompleteNewApplicationProposalInfo {
67+
signer,
68+
request_id,
69+
owner,
70+
repo
71+
} = info.into_inner();
72+
let ldn_application = match LDNApplication::load(id.into_inner(), owner.clone(), repo.clone()).await {
6373
Ok(app) => app,
6474
Err(e) => {
6575
return HttpResponse::BadRequest().body(e.to_string());
6676
}
6777
};
6878
match ldn_application
69-
.complete_new_application_proposal(info.into_inner())
79+
.complete_new_application_proposal(signer, request_id, owner, repo)
7080
.await
7181
{
7282
Ok(app) => HttpResponse::Ok().body(serde_json::to_string_pretty(&app).unwrap()),
@@ -81,15 +91,21 @@ pub async fn approve(
8191
id: web::Path<String>,
8292
info: web::Json<CompleteNewApplicationProposalInfo>,
8393
) -> impl Responder {
84-
let ldn_application = match LDNApplication::load(id.into_inner()).await {
94+
let CompleteNewApplicationProposalInfo {
95+
signer,
96+
request_id,
97+
owner,
98+
repo
99+
} = info.into_inner();
100+
let ldn_application = match LDNApplication::load(id.into_inner(), owner.clone(), repo.clone()).await {
85101
Ok(app) => app,
86102
Err(e) => {
87103
return HttpResponse::BadRequest().body(e.to_string());
88104
}
89105
};
90106
dbg!(&ldn_application);
91107
match ldn_application
92-
.complete_new_application_approval(info.into_inner())
108+
.complete_new_application_approval(signer, request_id, owner, repo)
93109
.await
94110
{
95111
Ok(app) => HttpResponse::Ok().body(serde_json::to_string_pretty(&app).unwrap()),
@@ -98,17 +114,19 @@ pub async fn approve(
98114
}
99115

100116
#[get("/application/active")]
101-
pub async fn active() -> impl Responder {
102-
let apps = match LDNApplication::active(None).await {
117+
pub async fn active(query: web::Query<GithubQueryParams>) -> impl Responder {
118+
let GithubQueryParams { owner, repo } = query.into_inner();
119+
let apps = match LDNApplication::active(owner, repo, None).await {
103120
Ok(app) => app,
104121
Err(e) => return HttpResponse::BadRequest().body(e.to_string()),
105122
};
106123
HttpResponse::Ok().body(serde_json::to_string_pretty(&apps).unwrap())
107124
}
108125

109126
#[get("/application/merged")]
110-
pub async fn merged() -> actix_web::Result<impl Responder> {
111-
match LDNApplication::merged().await {
127+
pub async fn merged(query: web::Query<GithubQueryParams>) -> actix_web::Result<impl Responder> {
128+
let GithubQueryParams { owner, repo } = query.into_inner();
129+
match LDNApplication::merged(owner, repo).await {
112130
Ok(apps) => Ok(HttpResponse::Ok().body(serde_json::to_string_pretty(&apps).unwrap())),
113131
Err(e) => {
114132
return Ok(HttpResponse::InternalServerError().body(e.to_string()));
@@ -125,8 +143,9 @@ pub async fn refill(data: web::Json<RefillInfo>) -> actix_web::Result<impl Respo
125143
}
126144

127145
#[post("/application/{id}/totaldcreached")]
128-
pub async fn total_dc_reached(id: web::Path<String>) -> actix_web::Result<impl Responder> {
129-
match LDNApplication::total_dc_reached(id.into_inner()).await {
146+
pub async fn total_dc_reached(id: web::Path<String>, data: web::Json<DcReachedInfo>) -> actix_web::Result<impl Responder> {
147+
let DcReachedInfo {owner, repo} = data.into_inner();
148+
match LDNApplication::total_dc_reached(id.into_inner(), owner, repo).await {
130149
Ok(applications) => Ok(HttpResponse::Ok().json(applications)),
131150
Err(e) => Ok(HttpResponse::BadRequest().body(e.to_string())),
132151
}
@@ -136,11 +155,11 @@ pub async fn total_dc_reached(id: web::Path<String>) -> actix_web::Result<impl R
136155
pub async fn validate_application_flow(
137156
info: web::Json<ValidationPullRequestData>,
138157
) -> impl Responder {
139-
let pr_number = info.pr_number.trim_matches('"').parse::<u64>();
140-
158+
let ValidationPullRequestData { pr_number, user_handle, owner, repo } = info.into_inner();
159+
let pr_number = pr_number.trim_matches('"').parse::<u64>();
141160
match pr_number {
142161
Ok(pr_number) => {
143-
match LDNApplication::validate_flow(pr_number, &info.user_handle).await {
162+
match LDNApplication::validate_flow(pr_number, &user_handle, owner, repo).await {
144163
Ok(result) => HttpResponse::Ok().json(result),
145164
Err(e) => HttpResponse::InternalServerError().json(e.to_string()),
146165
}
@@ -153,11 +172,12 @@ pub async fn validate_application_flow(
153172
pub async fn validate_application_trigger(
154173
info: web::Json<ValidationPullRequestData>,
155174
) -> impl Responder {
156-
let pr_number = info.pr_number.trim_matches('"').parse::<u64>();
175+
let ValidationPullRequestData { pr_number, user_handle, owner, repo } = info.into_inner();
176+
let pr_number = pr_number.trim_matches('"').parse::<u64>();
157177

158178
match pr_number {
159179
Ok(pr_number) => {
160-
match LDNApplication::validate_trigger(pr_number, &info.user_handle).await {
180+
match LDNApplication::validate_trigger(pr_number, &user_handle, owner, repo).await {
161181
Ok(result) => HttpResponse::Ok().json(result),
162182
Err(e) => HttpResponse::InternalServerError().json(e.to_string()),
163183
}
@@ -170,10 +190,11 @@ pub async fn validate_application_trigger(
170190
pub async fn validate_application_proposal(
171191
info: web::Json<ValidationPullRequestData>,
172192
) -> impl Responder {
173-
let pr_number = info.pr_number.trim_matches('"').parse::<u64>();
193+
let ValidationPullRequestData { pr_number, user_handle, owner, repo } = info.into_inner();
194+
let pr_number = pr_number.trim_matches('"').parse::<u64>();
174195

175196
match pr_number {
176-
Ok(pr_number) => match LDNApplication::validate_proposal(pr_number).await {
197+
Ok(pr_number) => match LDNApplication::validate_proposal(pr_number, owner, repo).await {
177198
Ok(result) => HttpResponse::Ok().json(result),
178199
Err(e) => HttpResponse::InternalServerError().json(e.to_string()),
179200
},
@@ -185,10 +206,11 @@ pub async fn validate_application_proposal(
185206
pub async fn validate_application_approval(
186207
info: web::Json<ValidationPullRequestData>,
187208
) -> impl Responder {
188-
let pr_number = info.pr_number.trim_matches('"').parse::<u64>();
209+
let ValidationPullRequestData { pr_number, user_handle, owner, repo } = info.into_inner();
210+
let pr_number = pr_number.trim_matches('"').parse::<u64>();
189211

190212
match pr_number {
191-
Ok(pr_number) => match LDNApplication::validate_approval(pr_number).await {
213+
Ok(pr_number) => match LDNApplication::validate_approval(pr_number, owner, repo).await {
192214
Ok(result) => HttpResponse::Ok().json(result),
193215
Err(e) => HttpResponse::InternalServerError().json(e.to_string()),
194216
},

fplus-http-server/src/router/govteam.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
use actix_web::{get, HttpResponse, Responder};
2-
use fplus_lib::core::LDNApplication;
1+
use actix_web::{get, web, HttpResponse, Responder};
2+
use fplus_lib::core::{LDNApplication, GithubQueryParams};
33

44
#[get("/gov-team-members")]
5-
pub async fn gov_team_members() -> actix_web::Result<impl Responder> {
6-
match LDNApplication::fetch_gov().await {
5+
pub async fn gov_team_members(query: web::Query<GithubQueryParams>) -> actix_web::Result<impl Responder> {
6+
let GithubQueryParams { owner, repo } = query.into_inner();
7+
8+
match LDNApplication::fetch_verifiers(owner, repo).await {
79
Ok(notaries) => {
810
Ok(HttpResponse::Ok().json(notaries))
911
}

fplus-http-server/src/router/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ use actix_web::{get, HttpResponse, Responder};
33
pub mod application;
44
pub mod blockchain;
55
pub mod govteam;
6-
pub mod notary;
76
pub mod allocator;
87

98
/// Return server health status

fplus-http-server/src/router/notary.rs

Lines changed: 0 additions & 32 deletions
This file was deleted.

fplus-lib/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,4 @@ tokio = { version = "1.32.0", features = ["rt", "macros"] }
2929
uuidv4 = "1.0.0"
3030
rayon = "1.8.0"
3131
log = "0.4.20"
32+
fplus-database = { path = "../fplus-database", version = "1.0.19"}

fplus-lib/src/base64.rs

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use std::io::Cursor;
22

33
use base64;
44

5-
use crate::core::application::file::{ApplicationFile, ValidNotaryList, ValidGovTeamList};
5+
use crate::core::application::file::{ApplicationFile, ValidVerifierList};
66

77
pub fn decode(i: &str) -> Option<ApplicationFile> {
88
let mut binding = Cursor::new(i);
@@ -13,23 +13,3 @@ pub fn decode(i: &str) -> Option<ApplicationFile> {
1313
};
1414
Some(app_file)
1515
}
16-
17-
pub fn decode_notary(i: &str) -> Option<ValidNotaryList> {
18-
let mut binding = Cursor::new(i);
19-
let decoder = base64::read::DecoderReader::new(&mut binding, base64::STANDARD);
20-
let notaries: ValidNotaryList = match serde_json::from_reader(decoder) {
21-
Ok(f) => f,
22-
Err(_) => return None,
23-
};
24-
Some(notaries)
25-
}
26-
27-
pub fn decode_gov_team(i: &str) -> Option<ValidGovTeamList> {
28-
let mut binding = Cursor::new(i);
29-
let decoder = base64::read::DecoderReader::new(&mut binding, base64::STANDARD);
30-
let gov_team: ValidGovTeamList = match serde_json::from_reader(decoder) {
31-
Ok(f) => f,
32-
Err(_) => return None,
33-
};
34-
Some(gov_team)
35-
}

fplus-lib/src/core/application/file.rs

Lines changed: 2 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -345,51 +345,12 @@ pub struct AllocationRequest {
345345
pub allocation_amount: String,
346346
}
347347

348-
#[derive(Serialize, Deserialize, Clone, Debug)]
349-
pub struct NotaryConfig {
350-
pub active_signer: bool,
351-
pub signing_address: String,
352-
}
353-
354-
#[derive(Serialize, Deserialize, Debug, Clone)]
355-
pub struct ValidNotary {
356-
pub id: i32,
357-
pub organization: String,
358-
pub name: String,
359-
pub election_round: String,
360-
pub status: String,
361-
pub use_case: String,
362-
pub location: String,
363-
pub notary_application_link: String,
364-
pub website: String,
365-
pub email: Vec<String>,
366-
pub fil_slack_id: String,
367-
pub github_user: Vec<String>,
368-
pub ldn_config: NotaryConfig,
369-
pub direct_config: NotaryConfig,
370-
}
371-
372-
#[derive(Serialize, Deserialize, Debug, Clone)]
373-
pub struct ValidNotaryList {
374-
pub notaries: Vec<ValidNotary>,
375-
}
376-
377-
impl ValidNotaryList {
378-
pub fn is_valid(&self, notary: &str) -> bool {
379-
self.notaries
380-
.iter()
381-
.filter(|n| n.ldn_config.signing_address == notary)
382-
.count()
383-
> 0
384-
}
385-
}
386-
387348
#[derive(Serialize, Deserialize, Debug, Clone)]
388-
pub struct ValidGovTeamList {
349+
pub struct ValidVerifierList {
389350
pub gov_team: Vec<String>,
390351
}
391352

392-
impl ValidGovTeamList {
353+
impl ValidVerifierList {
393354
pub fn is_valid(&self, member: &str) -> bool {
394355
self.gov_team.contains(&member.to_string())
395356
}

0 commit comments

Comments
 (0)