MCPcopy Create free account
hub / github.com/dfinity/orbit / get_request_additional_info

Method get_request_additional_info

core/station/impl/src/services/request.rs:102–143  ·  view source on GitHub ↗
(
        &self,
        request: &Request,
        with_evaluation_results: bool,
    )

Source from the content-addressed store, hash-verified

100 }
101
102 pub fn get_request_additional_info(
103 &self,
104 request: &Request,
105 with_evaluation_results: bool,
106 ) -> ServiceResult<RequestAdditionalInfo> {
107 let requester = self.user_service.get_user(&request.requested_by);
108 let approvers = request
109 .approvals
110 .iter()
111 .filter_map(
112 |approval| match self.user_service.get_user(&approval.approver_id) {
113 Ok(user) => Some(DisplayUser {
114 name: user.name,
115 id: user.id,
116 }),
117 Err(_) => {
118 print(format!(
119 "Failed to get user with id {}",
120 Uuid::from_bytes(approval.approver_id.to_owned()).hyphenated()
121 ));
122
123 None
124 }
125 },
126 )
127 .collect::<Vec<DisplayUser>>();
128
129 let evaluation_result = with_evaluation_results
130 .then(|| {
131 self.evaluation_result_repository
132 .get(&request.id)
133 .map(|evaluation: crate::models::RequestEvaluationResult| evaluation.to_owned())
134 })
135 .flatten();
136
137 Ok(RequestAdditionalInfo {
138 id: request.id,
139 requester_name: requester.map_or("Unknown".to_string(), |user| user.name),
140 approvers,
141 evaluation_result,
142 })
143 }
144
145 pub async fn list_requests(
146 &self,

Callers 5

create_requestMethod · 0.80
get_requestMethod · 0.80
list_requestsMethod · 0.80

Calls 5

printFunction · 0.85
iterMethod · 0.80
mapMethod · 0.80
get_userMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected