rpc ListLocations (ListLocationsRequest) returns (ListLocationsResponse) {
option (google.api.http) = { custom:
{
kind: "options"
path: "/v1/patient/locations"
};
additional_bindings {
get: "/v1/patient/locations"
}
};
};
func newHttpAndGrpcMux(httpHandler http.Handler, grpcHandler http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS")
w.Header().Set("Access-Control-Allow-Headers", "*, Authorization")
w.Header().Set("Access-Control-Expose-Headers", "*")
w.Header().Set("Access-Control-Max-Age", "1728000")
if r.Method == "OPTIONS" {
return
}
if r.ProtoMajor == 2 && strings.HasPrefix(r.Header.Get("content-type"), "application/grpc") {
grpcHandler.ServeHTTP(w, r)
return
}
httpHandler.ServeHTTP(w, r)
})
}