Skip to content

Commit 3cd8ba6

Browse files
authored
Merge pull request #125 from CodeGov-org/nathan/filter-proposals
fix: filter proposals
2 parents e3b0b83 + cd93ac1 commit 3cd8ba6

32 files changed

+2188
-1897
lines changed

Cargo.lock

Lines changed: 1883 additions & 1415 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ ic-cdk = "0.12"
1919
ic-cdk-macros = "0.8"
2020
ic-cdk-timers = "0.6"
2121
ic-stable-structures = "0.6"
22-
ic-nns-governance = { git = "https://github.com/dfinity/ic", tag = "release-2024-02-21_23-01", version = "0.9.0" }
23-
ic-nns-common = { git = "https://github.com/dfinity/ic", tag = "release-2024-02-21_23-01", version = "0.9.0" }
22+
ic-nns-governance = { git = "https://github.com/dfinity/ic", tag = "release-2025-01-09_03-19-base" }
23+
ic-nns-common = { git = "https://github.com/dfinity/ic", tag = "release-2025-01-09_03-19-base" }
2424

2525
candid = "0.10"
2626
candid_parser = "0.1"

rust-toolchain.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[toolchain]
2-
channel = "1.75.0"
2+
channel = "1.84.0"
33
components = ["rustfmt", "clippy"]
44
targets = ["wasm32-unknown-unknown"]
55
profile = "minimal"

src/backend/impl/Cargo.toml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,7 @@ ic-cdk-timers.workspace = true
2020
ic-stable-structures.workspace = true
2121
ic-nns-governance.workspace = true
2222
ic-nns-common.workspace = true
23-
ic-http-certification = { git = "https://github.com/dfinity/response-verification", features = [
24-
"serde",
25-
] }
23+
ic-http-certification = "3"
2624

2725
candid.workspace = true
2826
candid_parser.workspace = true
@@ -35,8 +33,7 @@ hex = "0.4"
3533
lazy_static = "1.4"
3634
base64.workspace = true
3735

38-
rand = { version = "0.8", default-features = false }
39-
rand_chacha = { version = "0.3", default-features = false }
36+
fastrand = "2"
4037

4138
[dev-dependencies]
4239
mockall.workspace = true

src/backend/impl/src/controllers/http_controller.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ impl<I: ImageService, H: HttpService> HttpController<I, H> {
3535
}
3636
}
3737

38-
fn handle_http_request(&self, req: HttpRequest) -> HttpResponse {
38+
fn handle_http_request(&self, req: HttpRequest) -> HttpResponse<'static> {
3939
let req_path = req.get_path().expect("Missing path in request");
4040

4141
if req_path.starts_with(IMAGES_BASE_PATH) {

src/backend/impl/src/controllers/init_controller.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ fn init() {
1515
let calling_principal = caller();
1616

1717
set_timer(Duration::from_secs(0), move || {
18-
spawn(init_admin(calling_principal))
18+
init_admin(calling_principal)
1919
});
2020

2121
InitController::default().init_http_certification();
@@ -28,16 +28,16 @@ fn post_upgrade() {
2828
let calling_principal = caller();
2929

3030
set_timer(Duration::from_secs(0), move || {
31-
spawn(init_admin(calling_principal))
31+
init_admin(calling_principal)
3232
});
3333

3434
InitController::default().init_http_certification();
3535

3636
jobs::start_jobs();
3737
}
3838

39-
async fn init_admin(calling_principal: Principal) {
40-
if let Err(err) = InitController::default().init(calling_principal).await {
39+
fn init_admin(calling_principal: Principal) {
40+
if let Err(err) = InitController::default().init(calling_principal) {
4141
ic_cdk::trap(&format!("Failed to initialize canister: {:?}", err));
4242
}
4343
}
@@ -73,8 +73,8 @@ impl<T: InitService, I: ImageService, H: HttpService> InitController<T, I, H> {
7373
}
7474
}
7575

76-
async fn init(&self, calling_principal: Principal) -> Result<(), ApiError> {
77-
self.init_service.init(calling_principal).await
76+
fn init(&self, calling_principal: Principal) -> Result<(), ApiError> {
77+
self.init_service.init(calling_principal)
7878
}
7979

8080
fn init_http_certification(&self) {

src/backend/impl/src/controllers/proposal_review_commit_controller.rs

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,19 @@ use crate::{
1919

2020
#[update]
2121
#[log_errors(crate::services::log_update_call_error)]
22-
async fn create_proposal_review_commit(
22+
fn create_proposal_review_commit(
2323
request: CreateProposalReviewCommitRequest,
2424
) -> ApiResult<CreateProposalReviewCommitResponse> {
2525
let calling_principal = caller();
2626

2727
ProposalReviewCommitController::default()
2828
.create_proposal_review_commit(calling_principal, request)
29-
.await
3029
.into()
3130
}
3231

3332
#[update]
3433
#[log_errors(crate::services::log_update_call_error)]
35-
async fn update_proposal_review_commit(
36-
request: UpdateProposalReviewCommitRequest,
37-
) -> ApiResult<()> {
34+
fn update_proposal_review_commit(request: UpdateProposalReviewCommitRequest) -> ApiResult<()> {
3835
let calling_principal = caller();
3936

4037
ProposalReviewCommitController::default()
@@ -44,9 +41,7 @@ async fn update_proposal_review_commit(
4441

4542
#[update]
4643
#[log_errors(crate::services::log_update_call_error)]
47-
async fn delete_proposal_review_commit(
48-
request: DeleteProposalReviewCommitRequest,
49-
) -> ApiResult<()> {
44+
fn delete_proposal_review_commit(request: DeleteProposalReviewCommitRequest) -> ApiResult<()> {
5045
let calling_principal = caller();
5146

5247
ProposalReviewCommitController::default()
@@ -89,7 +84,7 @@ impl<A: AccessControlService, P: ProposalReviewCommitService> ProposalReviewComm
8984
}
9085
}
9186

92-
async fn create_proposal_review_commit(
87+
fn create_proposal_review_commit(
9388
&self,
9489
calling_principal: Principal,
9590
request: CreateProposalReviewCommitRequest,
@@ -99,7 +94,6 @@ impl<A: AccessControlService, P: ProposalReviewCommitService> ProposalReviewComm
9994

10095
self.proposal_review_commit_service
10196
.create_proposal_review_commit(calling_principal, request)
102-
.await
10397
}
10498

10599
fn update_proposal_review_commit(
@@ -138,7 +132,7 @@ mod tests {
138132
use rstest::*;
139133

140134
#[rstest]
141-
async fn create_proposal_review_commit() {
135+
fn create_proposal_review_commit() {
142136
let calling_principal = fixtures::principal_a();
143137
let request = CreateProposalReviewCommitRequest {
144138
proposal_review_id: "proposal_review_id".to_string(),
@@ -172,14 +166,13 @@ mod tests {
172166

173167
let result = controller
174168
.create_proposal_review_commit(calling_principal, request)
175-
.await
176169
.unwrap();
177170

178171
assert_eq!(result, response);
179172
}
180173

181174
#[rstest]
182-
async fn create_proposal_review_commit_unauthorized() {
175+
fn create_proposal_review_commit_unauthorized() {
183176
let calling_principal = fixtures::principal_a();
184177
let request = CreateProposalReviewCommitRequest {
185178
proposal_review_id: "proposal_review_id".to_string(),
@@ -209,7 +202,6 @@ mod tests {
209202

210203
let result = controller
211204
.create_proposal_review_commit(calling_principal, request)
212-
.await
213205
.unwrap_err();
214206

215207
assert_eq!(result, error);

src/backend/impl/src/controllers/proposal_review_controller.rs

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,13 @@ use ic_cdk::*;
2222

2323
#[update]
2424
#[log_errors(crate::services::log_update_call_error)]
25-
async fn create_proposal_review(
25+
fn create_proposal_review(
2626
request: CreateProposalReviewRequest,
2727
) -> ApiResult<CreateProposalReviewResponse> {
2828
let calling_principal = caller();
2929

3030
ProposalReviewController::default()
3131
.create_proposal_review(calling_principal, request)
32-
.await
3332
.into()
3433
}
3534

@@ -65,14 +64,13 @@ fn get_proposal_review(request: GetProposalReviewRequest) -> ApiResult<GetPropos
6564

6665
#[update]
6766
#[log_errors(crate::services::log_update_call_error)]
68-
async fn create_proposal_review_image(
67+
fn create_proposal_review_image(
6968
request: CreateProposalReviewImageRequest,
7069
) -> ApiResult<CreateProposalReviewImageResponse> {
7170
let calling_principal = caller();
7271

7372
ProposalReviewController::default()
7473
.create_proposal_review_image(calling_principal, request)
75-
.await
7674
.into()
7775
}
7876

@@ -142,7 +140,7 @@ impl<A: AccessControlService, P: ProposalReviewService> ProposalReviewController
142140
}
143141
}
144142

145-
async fn create_proposal_review(
143+
fn create_proposal_review(
146144
&self,
147145
calling_principal: Principal,
148146
request: CreateProposalReviewRequest,
@@ -152,8 +150,7 @@ impl<A: AccessControlService, P: ProposalReviewService> ProposalReviewController
152150

153151
let proposal_review = self
154152
.proposal_review_service
155-
.create_proposal_review(calling_principal, request)
156-
.await?;
153+
.create_proposal_review(calling_principal, request)?;
157154

158155
Ok(proposal_review)
159156
}
@@ -188,7 +185,7 @@ impl<A: AccessControlService, P: ProposalReviewService> ProposalReviewController
188185
.get_proposal_review(calling_principal, request)
189186
}
190187

191-
async fn create_proposal_review_image(
188+
fn create_proposal_review_image(
192189
&self,
193190
calling_principal: Principal,
194191
request: CreateProposalReviewImageRequest,
@@ -198,7 +195,6 @@ impl<A: AccessControlService, P: ProposalReviewService> ProposalReviewController
198195

199196
self.proposal_review_service
200197
.create_proposal_review_image(calling_principal, request)
201-
.await
202198
}
203199

204200
fn get_my_proposal_review(
@@ -254,7 +250,7 @@ mod tests {
254250
use rstest::*;
255251

256252
#[rstest]
257-
async fn create_proposal_review() {
253+
fn create_proposal_review() {
258254
let calling_principal = fixtures::principal_a();
259255
let request = CreateProposalReviewRequest {
260256
proposal_id: "proposal_id".to_string(),
@@ -289,14 +285,13 @@ mod tests {
289285

290286
let result = controller
291287
.create_proposal_review(calling_principal, request)
292-
.await
293288
.unwrap();
294289

295290
assert_eq!(result, response);
296291
}
297292

298293
#[rstest]
299-
async fn create_proposal_review_unauthorized() {
294+
fn create_proposal_review_unauthorized() {
300295
let calling_principal = fixtures::principal_a();
301296
let request = CreateProposalReviewRequest {
302297
proposal_id: "proposal_id".to_string(),
@@ -328,7 +323,6 @@ mod tests {
328323

329324
let result = controller
330325
.create_proposal_review(calling_principal, request)
331-
.await
332326
.unwrap_err();
333327

334328
assert_eq!(result, error);
@@ -409,7 +403,7 @@ mod tests {
409403
}
410404

411405
#[rstest]
412-
async fn create_proposal_review_image() {
406+
fn create_proposal_review_image() {
413407
let calling_principal = fixtures::principal_a();
414408
let request = CreateProposalReviewImageRequest {
415409
proposal_id: fixtures::proposal_id().to_string(),
@@ -441,14 +435,13 @@ mod tests {
441435

442436
let result = controller
443437
.create_proposal_review_image(calling_principal, request)
444-
.await
445438
.unwrap();
446439

447440
assert_eq!(result, response);
448441
}
449442

450443
#[rstest]
451-
async fn create_proposal_review_image_unauthorized() {
444+
fn create_proposal_review_image_unauthorized() {
452445
let calling_principal = fixtures::principal_a();
453446
let request = CreateProposalReviewImageRequest {
454447
proposal_id: fixtures::proposal_id().to_string(),
@@ -479,14 +472,13 @@ mod tests {
479472

480473
let result = controller
481474
.create_proposal_review_image(calling_principal, request)
482-
.await
483475
.unwrap_err();
484476

485477
assert_eq!(result, error);
486478
}
487479

488480
#[rstest]
489-
async fn delete_proposal_review_image() {
481+
fn delete_proposal_review_image() {
490482
let calling_principal = fixtures::principal_a();
491483
let request = DeleteProposalReviewImageRequest {
492484
proposal_id: fixtures::proposal_id().to_string(),
@@ -518,7 +510,7 @@ mod tests {
518510
}
519511

520512
#[rstest]
521-
async fn delete_proposal_review_image_unauthorized() {
513+
fn delete_proposal_review_image_unauthorized() {
522514
let calling_principal = fixtures::principal_a();
523515
let request = DeleteProposalReviewImageRequest {
524516
proposal_id: fixtures::proposal_id().to_string(),

src/backend/impl/src/controllers/user_profile_controller.rs

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,11 @@ fn get_my_user_profile_history() -> ApiResult<GetMyUserProfileHistoryResponse> {
4040

4141
#[update]
4242
#[log_errors(crate::services::log_update_call_error)]
43-
async fn create_my_user_profile() -> ApiResult<CreateMyUserProfileResponse> {
43+
fn create_my_user_profile() -> ApiResult<CreateMyUserProfileResponse> {
4444
let calling_principal = caller();
4545

4646
UserProfileController::default()
4747
.create_my_user_profile(calling_principal)
48-
.await
4948
.into()
5049
}
5150

@@ -61,7 +60,7 @@ fn update_my_user_profile(request: UpdateMyUserProfileRequest) -> ApiResult<()>
6160

6261
#[update]
6362
#[log_errors(crate::services::log_update_call_error)]
64-
async fn update_user_profile(request: UpdateUserProfileRequest) -> ApiResult<()> {
63+
fn update_user_profile(request: UpdateUserProfileRequest) -> ApiResult<()> {
6564
let calling_principal = caller();
6665

6766
UserProfileController::default()
@@ -130,7 +129,7 @@ impl<A: AccessControlService, U: UserProfileService> UserProfileController<A, U>
130129
Ok(profile_history)
131130
}
132131

133-
async fn create_my_user_profile(
132+
fn create_my_user_profile(
134133
&self,
135134
calling_principal: Principal,
136135
) -> Result<CreateMyUserProfileResponse, ApiError> {
@@ -139,8 +138,7 @@ impl<A: AccessControlService, U: UserProfileService> UserProfileController<A, U>
139138

140139
let profile = self
141140
.user_profile_service
142-
.create_my_user_profile(calling_principal)
143-
.await?;
141+
.create_my_user_profile(calling_principal)?;
144142

145143
Ok(profile)
146144
}
@@ -369,7 +367,7 @@ mod tests {
369367
}
370368

371369
#[rstest]
372-
async fn create_my_user_profile() {
370+
fn create_my_user_profile() {
373371
let calling_principal = fixtures::principal_a();
374372
let profile = CreateMyUserProfileResponse {
375373
id: "id".to_string(),
@@ -396,14 +394,13 @@ mod tests {
396394

397395
let result = controller
398396
.create_my_user_profile(calling_principal)
399-
.await
400397
.unwrap();
401398

402399
assert_eq!(result, profile);
403400
}
404401

405402
#[rstest]
406-
async fn create_my_user_profile_anonymous_principal() {
403+
fn create_my_user_profile_anonymous_principal() {
407404
let calling_principal = Principal::anonymous();
408405

409406
let mut access_control_service_mock = MockAccessControlService::new();
@@ -420,7 +417,6 @@ mod tests {
420417

421418
let result = controller
422419
.create_my_user_profile(calling_principal)
423-
.await
424420
.unwrap_err();
425421

426422
assert_eq!(result, ApiError::unauthenticated());

0 commit comments

Comments
 (0)