diff --git a/src/help.rs b/src/help.rs index b3c843a..6e73263 100644 --- a/src/help.rs +++ b/src/help.rs @@ -17,7 +17,7 @@ pub fn help_text() -> String { [Body] ::send {}: - GET, POST, PUT, PATCH, DELETE + GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS {}: : param: = diff --git a/src/helper.rs b/src/helper.rs index 6540e41..ea12aee 100644 --- a/src/helper.rs +++ b/src/helper.rs @@ -5,8 +5,8 @@ use rustyline::validate::Validator; use rustyline::{Context, Helper, Result}; const BUILTINS: &[&str] = &[ - "GET", "POST", "PUT", "PATCH", "DELETE", "base", "header", "exit", "help", "history", "rerun", - "set", "unset", "save", "run", "vars", "headers", "requests", + "GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS", "base", "header", "exit", "help", + "history", "rerun", "set", "unset", "save", "run", "vars", "headers", "requests", ]; pub struct ShellHelper; diff --git a/src/main.rs b/src/main.rs index 6780e69..c067130 100644 --- a/src/main.rs +++ b/src/main.rs @@ -42,7 +42,7 @@ fn shell_loop() { } let tokens: Vec<&str> = line.split_whitespace().collect(); - let methods = ["GET", "POST", "PUT", "PATCH", "DELETE"]; + let methods = ["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"]; let raw = if methods.contains(&tokens[0]) { collect_input(&mut rl, line) } else { diff --git a/src/parser.rs b/src/parser.rs index 7ac0750..a9020a9 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -19,7 +19,7 @@ pub fn parse(input: String) -> Result { let token_match = tokens[0].to_lowercase(); match token_match.as_str() { - "get" | "post" | "put" | "patch" | "delete" => { + "get" | "post" | "put" | "patch" | "delete" | "head" | "options" => { let result = parse_request(input)?; Ok(Parsed::Request(result)) } @@ -53,7 +53,10 @@ fn parse_request(buffer: String) -> Result { "get" => Method::GET, "post" => Method::POST, "put" => Method::PUT, + "patch" => Method::PATCH, "delete" => Method::DELETE, + "head" => Method::HEAD, + "options" => Method::OPTIONS, _ => return Err("Invalid Method".to_string()), }; diff --git a/src/request.rs b/src/request.rs index 074e49e..3cbebcc 100644 --- a/src/request.rs +++ b/src/request.rs @@ -40,6 +40,8 @@ pub enum Method { PUT, PATCH, DELETE, + HEAD, + OPTIONS, } impl Method { @@ -50,6 +52,8 @@ impl Method { Method::PUT => "PUT", Method::PATCH => "PATCH", Method::DELETE => "DELETE", + Method::HEAD => "HEAD", + Method::OPTIONS => "OPTIONS", } } } diff --git a/src/runner.rs b/src/runner.rs index 5aef6f9..f2c3bb4 100644 --- a/src/runner.rs +++ b/src/runner.rs @@ -41,6 +41,8 @@ pub fn fetch( Method::PUT => client.put(full_url), Method::PATCH => client.patch(full_url), Method::DELETE => client.delete(full_url), + Method::HEAD => client.head(full_url), + Method::OPTIONS => client.request(reqwest::Method::OPTIONS, full_url), }; //Global Headers