(
ctx: &mut crate::vm::State<'gc>,
args: Vec<Value<'gc>>,
)
| 194 | } |
| 195 | |
| 196 | fn http_put<'gc>( |
| 197 | ctx: &mut crate::vm::State<'gc>, |
| 198 | args: Vec<Value<'gc>>, |
| 199 | ) -> Result<Value<'gc>, VmError> { |
| 200 | if args.len() < 2 { |
| 201 | return Err(VmError::RuntimeError( |
| 202 | "URL and body required for PUT request".into(), |
| 203 | )); |
| 204 | } |
| 205 | |
| 206 | let url = args[0].as_string()?.to_string(); |
| 207 | let body = args[1].as_string()?.to_string(); |
| 208 | let headers = if args.len() > 2 { |
| 209 | if let Value::Object(obj) = args[2] { |
| 210 | obj.borrow().fields.clone() |
| 211 | } else { |
| 212 | return Err(VmError::RuntimeError("Headers must be an object".into())); |
| 213 | } |
| 214 | } else { |
| 215 | HashMap::default() |
| 216 | }; |
| 217 | |
| 218 | let headers_map = parse_headers(headers); |
| 219 | |
| 220 | let result = Handle::current().block_on(async { |
| 221 | let response = make_request(reqwest::Method::PUT, &url, headers_map, Some(body)) |
| 222 | .await |
| 223 | .map_err(|e| VmError::RuntimeError(format!("HTTP request failed: {}", e)))?; |
| 224 | |
| 225 | response_to_object(ctx.get_context(), response).await |
| 226 | })?; |
| 227 | |
| 228 | Ok(result) |
| 229 | } |
| 230 | |
| 231 | fn http_delete<'gc>( |
| 232 | ctx: &mut crate::vm::State<'gc>, |
nothing calls this directly
no test coverage detected