Skip to content

Commit

Permalink
chore: handle http OPTIONS method
Browse files Browse the repository at this point in the history
Signed-off-by: Xin Liu <[email protected]>
  • Loading branch information
apepkuss committed Aug 8, 2024
1 parent da55c2b commit 60558b6
Showing 1 changed file with 80 additions and 0 deletions.
80 changes: 80 additions & 0 deletions src/backend/ggml.rs
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,27 @@ pub(crate) async fn embeddings_handler(mut req: Request<Body>) -> Response<Body>
// log
info!(target: "embeddings_handler", "Handling the coming embeddings request");

if req.method().eq(&hyper::http::Method::OPTIONS) {
let result = Response::builder()
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "*")
.header("Access-Control-Allow-Headers", "*")
.header("Content-Type", "application/json")
.body(Body::empty());

match result {
Ok(response) => return response,
Err(e) => {
let err_msg = e.to_string();

// log
error!(target: "embeddings_handler", "{}", &err_msg);

return error::internal_server_error(err_msg);
}
}
}

// parse request
let body_bytes = match to_bytes(req.body_mut()).await {
Ok(body_bytes) => body_bytes,
Expand Down Expand Up @@ -1067,6 +1088,25 @@ pub(crate) async fn files_handler(req: Request<Body>) -> Response<Body> {
error::internal_server_error(err_msg)
}
}
} else if req.method() == Method::OPTIONS {
let result = Response::builder()
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "*")
.header("Access-Control-Allow-Headers", "*")
.header("Content-Type", "application/json")
.body(Body::empty());

match result {
Ok(response) => return response,
Err(e) => {
let err_msg = e.to_string();

// log
error!(target: "files_handler", "{}", &err_msg);

return error::internal_server_error(err_msg);
}
}
} else {
let err_msg = "Invalid HTTP Method.";

Expand All @@ -1085,6 +1125,27 @@ pub(crate) async fn chunks_handler(mut req: Request<Body>) -> Response<Body> {
// log
info!(target: "chunks_handler", "Handling the coming chunks request");

if req.method().eq(&hyper::http::Method::OPTIONS) {
let result = Response::builder()
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "*")
.header("Access-Control-Allow-Headers", "*")
.header("Content-Type", "application/json")
.body(Body::empty());

match result {
Ok(response) => return response,
Err(e) => {
let err_msg = e.to_string();

// log
error!(target: "chunks_handler", "{}", &err_msg);

return error::internal_server_error(err_msg);
}
}
}

// parse request
let body_bytes = match to_bytes(req.body_mut()).await {
Ok(body_bytes) => body_bytes,
Expand Down Expand Up @@ -1392,6 +1453,25 @@ pub(crate) async fn doc_to_embeddings_handler(
error!(target: "doc_to_embeddings_handler", "{}", &err_msg);

return error::internal_server_error(err_msg);
} else if req.method() == Method::OPTIONS {
let result = Response::builder()
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "*")
.header("Access-Control-Allow-Headers", "*")
.header("Content-Type", "application/json")
.body(Body::empty());

match result {
Ok(response) => return response,
Err(e) => {
let err_msg = e.to_string();

// log
error!(target: "doc_to_embeddings_handler", "{}", &err_msg);

return error::internal_server_error(err_msg);
}
}
} else {
let err_msg = "Invalid HTTP Method.";

Expand Down

0 comments on commit 60558b6

Please sign in to comment.