-
Notifications
You must be signed in to change notification settings - Fork 10
Open
Description
Hello, I am using sonarqube v25.3.0.104237 with 0.2.3 version of this plugin installed and i am getting below errors during the scan.
repository
10:49:26.575 INFO Load metrics repository (done) | time=61ms
10:49:27.350 INFO Sensor RustSensor [communityrust]
10:49:27.766 ERROR Unable to parse file: balance-sheet/src/package/library/evaluation.rs
10:49:27.768 ERROR Parse error at line 180 column 32:
170: Ok(m_id) => {
171: if let AppResponse::Ok(mev) =
172: mission_evaluation::database::get_last_evaluation_in_period(
173: connections_manager,
174: m_id,
175: NaiveDateTime::new(evaluation_start, ts),
176: NaiveDateTime::new(evaluation_end, te),
177: )
178: .into()
179:
180: && let AppResponse::Ok(dts) = mission_evaluation_detail::database::get_mission_evaluation_data_by_evaluation_id(
^
181: connections_manager,
182: mev.id
183: ).into() {
184: for dt in dts {
185: if ref_search.contains(&dt.field_id.clone().to_string()) {
186: let field_key: String = format!(
187: "{}_{}",
188: dt.field_id.clone(),
189: period_mission.id
190: );
10:49:28.330 ERROR Unable to parse file: directory/src/package/client/client.scope.rs
10:49:28.331 ERROR Parse error at line 104 column 20:
94: connections_manager: &ConnectionsManager,
95: claims: &Claims,
96: method: ScopeAction,
97: scope: &Scope,
98: ) -> ScopeAuthorization<i64> {
99: let mut boss_filters = BossFilter::default().boss_ids(vec![claims.sub]);
100:
101: if method == ScopeAction::UPDATE {
102: boss_filters.types = Some(vec![UserBossType::Manager, UserBossType::CoManager]);
103: if claims.role.contains(&UserRole::Adv)
104: && let Some(types) = boss_filters.types.as_mut()
^
105: {
106: types.extend(vec![UserBossType::Adv]);
107: }
108: }
109:
110: if scope == &Scope::Perso {
111: boss_filters = boss_filters.root(true);
112: }
113:
114: let boss_ids = boss::database::get_user_bosses(connections_manager, boss_filters)
10:49:29.312 ERROR Unable to parse file: lib_util/src/lib/xlsx.rs
10:49:29.313 ERROR Parse error at line 74 column 20:
64: T: Debug + Serialize + for<'a> Deserialize<'a>,
65: {
66: let mut row_writing_count = 0;
67: // Create a sheet on the workbook
68: let mut worksheet = match workbook.add_worksheet(Some(self.name.as_str())) {
69: Ok(worksheet) => worksheet,
70: Err(err) => return Err(err.to_string()),
71: };
72: // Set the col width of the sheet
73: if let Some(cols_width) = self.cols_width
74: && let Err(err) = worksheet.set_column(0, 100, cols_width, None)
^
75: {
76: return Err(err.to_string());
77: }
78: // If no value to export return empty sheet
79: if elements.is_empty() {
80: return Ok(());
81: }
82: // Get the header of the first element
83: let header = match get_struct_keys_and_values(&elements[0]) {
84: Ok(destructured_item) => {
10:49:29.767 ERROR Unable to parse file: directory/src/package/consultant/consultant.scope.rs
10:49:29.767 ERROR Parse error at line 105 column 20:
95: claims: &Claims,
96: method: ScopeAction,
97: ) -> ScopeAuthorization<i64> {
98: let mut boss_filters = BossFilter::default().boss_ids(vec![claims.sub]);
99:
100: if method == ScopeAction::UPDATE {
101: boss_filters.types = Some(vec![UserBossType::Manager, UserBossType::CoManager]);
102: if [UserRole::Gp, UserRole::RgnAssist]
103: .iter()
104: .any(|role| claims.role.contains(role))
105: && let Some(types) = boss_filters.types.as_mut()
^
106: {
107: types.extend(vec![UserBossType::Gp]);
108: }
109: }
110:
111: if scope == &Scope::Perso {
112: boss_filters = boss_filters.root(true);
113: }
114:
115: let boss_ids = boss::database::get_user_bosses(connections_manager, boss_filters)
10:49:31.163 ERROR Unable to parse file: balance-sheet/src/package/evaluation_module/evaluation_module.controller.rs
10:49:31.163 ERROR Parse error at line 212 column 60:
202: data_value = pm.mission_end.clone();
203: }
204: val if val == AutofillField::ReferenceValue.as_str() => {
205: if m.reference_field_id.is_some() {
206: let field_key: String = format!(
207: "{}_{}",
208: m.reference_field_id.clone().unwrap(),
209: pm.id.clone()
210: );
211: if evaluation_data.contains_key(&field_key)
212: && let Some(val) =
^
213: evaluation_data.get(&field_key)
214: {
215: data_value = val.value.clone();
216: }
217: }
218: }
219: _ => {}
220: }
221: }
222:
10:49:32.027 ERROR Unable to parse file: directory/src/package/client/client.controller.rs
10:49:32.028 ERROR Parse error at line 654 column 16:
644: }
645:
646: // Manager might not have a traffic light for this client
647: if let AppResponse::Ok(traffic) = traffic_light::database::get_traffic_light(
648: connections_manager,
649: TrafficLightFilter::new()
650: .client_ids(vec![client_id])
651: .user_ids(vec![claims.sub]),
652: )
653: .into()
654: && let Some(err) =
^
655: traffic_light::database::detach_traffic_light(connections_manager, traffic.id).err()
656: {
657: log::error!(
658: "Failed to detach manager {} for client {client_id}. Err: {err:?}",
659: claims.sub
660: );
661: }
662:
663: manager_per_client::database::unlink_manager_to_client(
664: connections_manager,
10:49:32.400 ERROR Unable to parse file: storage/src/package/storage/storage.view.rs
10:49:32.401 ERROR Parse error at line 46 column 16:
36: claims: Claims,
37: file_id: &str,
38: options: FileResponseOptions,
39: ) -> impl Responder<'r, 'static> {
40: let file = handle_get_file_by_id(connections_manager, file_id)
41: .await
42: .into();
43: log::info!("Getting file {file_id} with options: {options:?}");
44:
45: if let AppResponse::Ok(ref file) = file
46: && let Some(metadata) = &file.metadata
^
47: && let Some(privileges) = metadata.privileges
48: && claims.authorize(vec![privileges]).is_err()
49: {
50: return Err(rocket::response::status::Custom(
51: rocket::http::Status::Unauthorized,
52: None::<FileAppResponse>,
53: ));
54: }
55:
56: Ok(FileAppResponse(file, options))
10:49:33.195 ERROR Unable to parse file: timeline/src/package/correspondances/correspondances.controller.rs
10:49:33.196 ERROR Parse error at line 206 column 20:
196: // format worker_gender
197: if format_gender {
198: correspondance.worker_gender = match correspondance.worker_gender.as_str() {
199: "m" => "Mr".to_string(),
200: "mrs" => "Mme".to_string(),
201: other => other.to_string(),
202: };
203: }
204: // Apply manager_branch_id/name in filters.end_date
205: if let Some(manager_id) = &correspondance.manager_id
206: && let Some(contract) = manager_contracts.get(manager_id)
^
207: {
208: correspondance.manager_branch_id_at_date = Some(contract.branch_id);
209: if let Some(branch) = branches.get(&contract.branch_id) {
210: correspondance.manager_branch_name_at_date = Some(branch.name.clone());
211: }
212: }
213: // Get country_holiday
214: let country_holiday = correspondance
215: .worker_branch_id
216: .and_then(|worker_branch_id| branches.get(&worker_branch_id))
10:49:35.176 ERROR Unable to parse file: balance-sheet/src/package/person_evaluation/person_evaluation.controller.rs
10:49:35.176 ERROR Parse error at line 1017 column 16:
1007: #[tracing::instrument(level = "error")]
1008: pub async fn retrieve_autocomplete_proto_data(person: PersonResponse) -> HashMap<String, String> {
1009: // RETRIEVE ALL AUTOCOMPLETE DATA
1010: let mut autocomplete_data: HashMap<String, String> = HashMap::new();
1011:
1012: // Retrieve the current manager
1013: let mut mgr_name = "".to_string();
1014: let mut exp_years = 0;
1015:
1016: if let Some(manager_id) = person.manager_id
1017: && let Ok(mgr) = proto_get_person_by_id(manager_id).await
^
1018: {
1019: mgr_name = format!("{} {}", mgr.first_name, mgr.last_name);
1020: }
1021:
1022: autocomplete_data.insert(AutofillFieldTag::ManagerName.to_string(), mgr_name);
1023:
1024: // Retrieve the current contract data
1025: let mut ctr_sd = "".to_string();
1026:
1027: if let Ok(ctrc) = proto_get_current_contract_for_person(person.id).await {
10:49:37.887 ERROR Unable to parse file: api-live/src/package/api_live/api_live.utils.rs
10:49:37.888 ERROR Parse error at line 67 column 20:
57: impl<'r> FromRequest<'r> for SubmitAvatarGuard {
58: type Error = serde_json::Value;
59:
60: /// This Request Guard reproduces the behavior of EOS legacy code, by checking if the provided file format matches with the expected ones
61: /// It is by no mean the safe way to do so, but here we are simply trying to be ISO with legacy
62: async fn from_request(req: &'r rocket::Request<'_>) -> Outcome<Self, Self::Error> {
63: let regex = regex::Regex::new(r#"filename="[^"\n\r]+\.([A-Za-z0-9]+)""#)
64: .expect("Regex should be valid");
65:
66: if let Some(header_content) = req.headers().get_one("Content-Disposition")
67: && let Some(matches) = regex.captures(header_content)
^
68: && let Some(extension) = matches.get(1)
69: // Checks that the avatar file extension is valid
70: && ValidAvatarFileExtension::from_str(extension.as_str()).is_ok()
71: {
72: Outcome::Success(SubmitAvatarGuard)
73: } else {
74: Outcome::Error((
75: Status::NotFound,
76: serde_json::json!("invalid-file-extension"),
77: ))
10:49:39.481 ERROR Unable to parse file: storage/src/library/pptx_patcher.rs
10:49:39.482 ERROR Parse error at line 226 column 32:
216: writer.write_event(Event::Text(BytesText::from_escaped(new_text)))
217: {
218: return AppResponse::InternalError(json!(format!(
219: "Failed to write patched text: {err}"
220: )));
221: }
222: }
223: }
224:
225: if !written
226: && let Err(err) =
^
227: writer.write_event(Event::Text(BytesText::from_escaped(text)))
228: {
229: log::error!("Something happened while writing text to ppt: {err}");
230: }
231: }
232:
233: Ok(Event::Eof) => break,
234: // sink all the others events types
235: Ok(event) => {
236: if let Err(err) = writer.write_event(event) {
10:49:40.732 ERROR Unable to parse file: directory/src/package/staff/staff.scope.rs
10:49:40.732 ERROR Parse error at line 102 column 20:
92: claims: &Claims,
93: scope: &Scope,
94: method: ScopeAction,
95: ) -> ScopeAuthorization<i64> {
96: let mut boss_filters = BossFilter::default().boss_ids(vec![claims.sub]);
97: if method == ScopeAction::UPDATE {
98: boss_filters.types = Some(vec![UserBossType::Manager]);
99: if [UserRole::Gp, UserRole::RgnAssist]
100: .iter()
101: .any(|role| claims.role.contains(role))
102: && let Some(types) = boss_filters.types.as_mut()
^
103: {
104: types.extend(vec![UserBossType::Gp]);
105: }
106: }
107:
108: if scope == &Scope::Perso {
109: boss_filters = boss_filters.root(true);
110: }
111:
112: let mut boss_ids = boss::database::get_user_bosses(connections_manager, boss_filters)
10:49:41.823 ERROR Unable to parse file: directory/src/package/prospection/prospection.controller.rs
10:49:41.824 ERROR Parse error at line 597 column 16:
587: refusal_reason,
588: };
589: dispatcher.on_prospection_attribution_refused(connections_manager);
590:
591: return AppResponse::Ok(String::from("Successfully denied")).into();
592: }
593:
594: // Si le manager accepte mais demande de ne plus être sur cette prospection,
595: // on le détache depuis traffic light
596: if let AssignmentAnswer::YesAndDetach = new_answer.answer
597: && let AppResponse::Ok(traffic) = traffic_light::database::get_traffic_light(
^
598: connections_manager,
599: TrafficLightFilter::new()
600: .prospected_client_ids(vec![prospection_id])
601: .user_ids(vec![claims.sub]),
602: )
603: .into()
604: {
605: traffic_light::database::detach_traffic_light(connections_manager, traffic.id)?;
606: }
607:
10:49:42.428 ERROR Unable to parse file: datatrack/src/package/manager/manager.database.rs
10:49:42.429 ERROR Parse error at line 224 column 16:
214: let t = Into::<TracedAppResponse<DatatrackManagerModel>>::into(
215: connections_manager.pg_pool().run(|conn| {
216: diesel::insert_into(datatrack_history_manager::table)
217: .values(&data.to_manager(dt, dt))
218: .get_result(conn)
219: }),
220: )?;
221:
222: let current_manager = update_datatrack_manager_end_dates(connections_manager, t.person_id)?;
223: if !current_manager.is_empty()
224: && let Some(last_manager) = current_manager.last().cloned()
^
225: {
226: connections_manager.pg_pool().run(|conn| {
227: diesel::update(user_person::table.find(t.person_id))
228: .set(user_person::manager_id.eq(last_manager.manager_id))
229: .execute(conn)
230: .unwrap_or(0)
231: });
232: }
233: get_manager_change_by_id(connections_manager, t.id)
234: }
10:49:43.037 ERROR Unable to parse file: storage/src/library/tmp_file.rs
10:49:43.038 ERROR Parse error at line 30 column 20:
20: pub struct TmpFile<'a> {
21: path: &'a Path,
22: }
23:
24: impl<'a> TmpFile<'a> {
25: pub fn new(path: &'a str) -> AppResponse<TmpFile<'a>> {
26: let file_path = Path::new(path);
27:
28: // if the file doesn't exists, create an empty one
29: if !file_path.exists()
30: && let Err(err) = fs::File::create(file_path)
^
31: {
32: log::debug!("(TmpFile) Error: Failed to create TmpFile: {err}");
33: return AppResponse::InternalError(json!("Failed to create temporary file"));
34: }
35: debug_assert!(file_path.exists(), "File should exist by now");
36:
37: AppResponse::Ok(Self { path: file_path })
38: }
39:
40: pub fn content(&self) -> AppResponse<Vec<u8>> {
10:49:43.588 ERROR Unable to parse file: storage/src/package/document_generation/quote/quote.model.rs
10:49:43.589 ERROR Parse error at line 131 column 20:
121: .with_patches(&prepared)
122: .compile_template()?
123: .save_to_bucket_with_permissions(bucket_connection, UserRole::Mgr)
124: .await
125: }
126:
127: async fn embed_images(&self, bucket_connection: &Client) -> Quote {
128: let mut prepared = self.clone();
129:
130: if let Some(file_id) = &self.client_logo_uri
131: && let Some(mut image) =
^
132: ImageWithDims::load_from_fs_by_id(bucket_connection, file_id).await
133: {
134: image.scale_object_fit(100);
135: prepared.client_logo.replace(image.bundle());
136: return prepared;
137: }
138:
139: if let Some(mut image) = ImageWithDims::load_from_fs_by_filter(
140: bucket_connection,
141: FindFilters {
10:49:44.286 ERROR Unable to parse file: api-live/src/package/api_live/api_live.controller.rs
10:49:44.287 ERROR Parse error at line 385 column 20:
375: .collect();
376:
377: // get branch associate that is the big boss of each manager
378: let mut branches_partners: HashMap<i64, i64> = HashMap::new();
379: for manager_id in manager_ids {
380: let mut currently_tested_manager_id = managers_persons
381: .get(&manager_id)
382: .and_then(|person| person.manager_id)
383: .unwrap_or(manager_id);
384: if let Some(contract) = managers_contracts.get(&manager_id)
385: && let Some(associates) = associates_by_branches.get(&contract.branch_id)
^
386: {
387: // find the hierarchy manager which id matches an associate of the branch
388: while !associates.contains(¤tly_tested_manager_id) {
389: if let AppResponse::Ok(person) = call_proto(
390: DirectoryClient::get_person_by_id,
391: directory::PersonRequest {
392: id: currently_tested_manager_id,
393: },
394: )
395: .await
10:49:44.619 ERROR Unable to parse file: balance-sheet/src/package/mission_evaluation/mission_evaluation.controller.rs
10:49:44.620 ERROR Parse error at line 735 column 16:
725: // * If evaluation.status = CLIENT_PENDING/PENDING => load data and merge with autofill
726: // * If evaluation.status = CLIENT_CREATED/CREATED => load autofill only (any saved data will be overwritten)
727: // * If evaluation.status = CLIENT_FINISHED/PUBLISHED => load data only
728: let mut evaluation_data: HashMap<String, EvaluationData> = HashMap::new();
729:
730: // retrieved saved data
731: if (mission_eval.status == MissionEvaluationStatus::ClientPending.as_str()
732: || mission_eval.status == MissionEvaluationStatus::Pending.as_str()
733: || mission_eval.status == MissionEvaluationStatus::ClientFinished.as_str()
734: || mission_eval.status == MissionEvaluationStatus::Published.as_str())
735: && let AppResponse::Ok(fields) =
^
736: mission_evaluation_detail::database::get_mission_evaluation_data_by_evaluation_id(
737: connections_manager,
738: mission_eval.id,
739: )
740: .into()
741: {
742: for m in fields.into_iter() {
743: if m.value.clone().is_some() {
744: let key = format!("{}_{}", m.field_id.clone(), m.moduleorder.clone());
745: evaluation_data.insert(
10:49:47.228 ERROR Unable to parse file: directory/src/package/client/client.database.rs
10:49:47.228 ERROR Parse error at line 342 column 20:
332: let mut names_filter: Box<dyn BoxableExpression<_, Pg, SqlType = Bool>> =
333: Box::new(diesel::dsl::sql("FALSE"));
334: for name in names {
335: names_filter =
336: Box::new(names_filter.or(user_client::name.ilike(format!("%{name}%"))));
337: }
338: query_filters = Box::new(query_filters.and(names_filter));
339: }
340:
341: if let Some(updated_at_from) = self.updated_at_from
342: && let Some(date) = NaiveDate::parse_from_str(&updated_at_from, NAIVE_DATE_FORMAT)
^
343: .ok()
344: .and_then(|datetime| datetime.and_hms_opt(0, 0, 0))
345: {
346: query_filters = Box::new(query_filters.and(user_client::updated_at.ge(date)));
347: }
348:
349: if let Some(updated_at_to) = self.updated_at_to
350: && let Some(date) = NaiveDate::parse_from_str(&updated_at_to, NAIVE_DATE_FORMAT)
351: .ok()
352: .and_then(|datetime| datetime.and_hms_opt(0, 0, 0))
10:49:47.874 ERROR Unable to parse file: directory/src/package/manager_per_client/manager_per_client.controller.rs
10:49:47.875 ERROR Parse error at line 200 column 16:
190: .iter()
191: .find(|manager| item.staff_id.is_some_and(|staff_id| staff_id == manager.id))
192: .cloned();
193:
194: Some(ClientWithoutManagerContent { client, manager })
195: })
196: .collect();
197:
198: // Envoi d'une alerte à twister quand des clients n'ont pas de manager
199: if !response.is_empty()
200: && let Some(err) = call_proto(
^
201: MailingClient::send_email,
202: mailing::CreateEmail {
203: key: format!("directory/clients-without-manager/{:?}", get_current_date()),
204: to: String::from("[email protected]"),
205: reply_to: String::new(),
206: cc: vec![],
207: bcc: vec![],
208: language: String::from("Fr"),
209: template: String::from("ClientsWithoutManager"),
210: planned_at: Some(convert_naive_date_time_into_prost_wkt_types_time_stamp(
10:49:48.021 INFO Sensor RustSensor [communityrust] (done) | time=20675ms
Metadata
Metadata
Assignees
Labels
No labels