MCPcopy Create free account
hub / github.com/NVIDIA/OpenShell / classify_envelope

Function classify_envelope

crates/openshell-supervisor-network/src/l7/graphql.rs:160–194  ·  view source on GitHub ↗
(
    query: Option<&str>,
    operation_name: Option<&str>,
    extensions: Option<&Value>,
    persisted_id: Option<String>,
)

Source from the content-addressed store, hash-verified

158}
159
160fn classify_envelope(
161 query: Option<&str>,
162 operation_name: Option<&str>,
163 extensions: Option<&Value>,
164 persisted_id: Option<String>,
165) -> std::result::Result<Vec<GraphqlOperationInfo>, String> {
166 let persisted_hash = persisted_query_hash(extensions);
167 let query = query.filter(|q| !q.trim().is_empty());
168
169 if let Some(query) = query {
170 let mut operation = classify_document(query, operation_name)?;
171 if let Some(hash) = persisted_hash {
172 operation.persisted_query = true;
173 operation.persisted_query_hash = Some(hash);
174 }
175 if let Some(id) = persisted_id {
176 operation.persisted_query = true;
177 operation.persisted_query_id = Some(id);
178 }
179 return Ok(vec![operation]);
180 }
181
182 if persisted_hash.is_some() || persisted_id.is_some() {
183 return Ok(vec![GraphqlOperationInfo {
184 operation_type: String::new(),
185 operation_name: operation_name.map(ToString::to_string),
186 fields: Vec::new(),
187 persisted_query: true,
188 persisted_query_hash: persisted_hash,
189 persisted_query_id: persisted_id,
190 }]);
191 }
192
193 Err("GraphQL request has no query document or persisted query identifier".to_string())
194}
195
196fn classify_document(
197 query: &str,

Callers 2

classify_getFunction · 0.85
classify_json_envelopeFunction · 0.85

Calls 3

persisted_query_hashFunction · 0.85
classify_documentFunction · 0.85
is_emptyMethod · 0.45

Tested by

no test coverage detected