diff options
Diffstat (limited to 'zenserver/cache/structuredcache.cpp')
| -rw-r--r-- | zenserver/cache/structuredcache.cpp | 63 |
1 files changed, 23 insertions, 40 deletions
diff --git a/zenserver/cache/structuredcache.cpp b/zenserver/cache/structuredcache.cpp index 0e235a9be..b2f8d191c 100644 --- a/zenserver/cache/structuredcache.cpp +++ b/zenserver/cache/structuredcache.cpp @@ -4,8 +4,8 @@ #include <zencore/compactbinaryvalidation.h> #include <zencore/compress.h> #include <zencore/fmtutils.h> -#include <zencore/httpserver.h> #include <zencore/timer.h> +#include <zenhttp/httpserver.h> #include "structuredcache.h" #include "structuredcachestore.h" @@ -25,27 +25,6 @@ namespace zen { using namespace std::literals; -zen::HttpContentType -MapToHttpContentType(zen::ZenContentType Type) -{ - switch (Type) - { - default: - case zen::ZenContentType::kBinary: - return zen::HttpContentType::kBinary; - case zen::ZenContentType::kCbObject: - return zen::HttpContentType::kCbObject; - case zen::ZenContentType::kCbPackage: - return zen::HttpContentType::kCbPackage; - case zen::ZenContentType::kText: - return zen::HttpContentType::kText; - case zen::ZenContentType::kJSON: - return zen::HttpContentType::kJSON; - case zen::ZenContentType::kYAML: - return zen::HttpContentType::kYAML; - } -}; - ////////////////////////////////////////////////////////////////////////// HttpStructuredCacheService::HttpStructuredCacheService(::ZenCacheStore& InCacheStore, @@ -93,7 +72,7 @@ HttpStructuredCacheService::HandleRequest(zen::HttpServerRequest& Request) return HandleCacheBucketRequest(Request, Key); } - return Request.WriteResponse(zen::HttpResponse::BadRequest); // invalid URL + return Request.WriteResponse(zen::HttpResponseCode::BadRequest); // invalid URL } if (Ref.PayloadId == IoHash::Zero) @@ -128,11 +107,11 @@ HttpStructuredCacheService::HandleCacheBucketRequest(zen::HttpServerRequest& Req if (m_CacheStore.DropBucket(Bucket)) { - return Request.WriteResponse(zen::HttpResponse::OK); + return Request.WriteResponse(zen::HttpResponseCode::OK); } else { - return Request.WriteResponse(zen::HttpResponse::NotFound); + return Request.WriteResponse(zen::HttpResponseCode::NotFound); } break; } @@ -209,7 +188,7 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req { m_Log.debug("MISS - '{}/{}'", Ref.BucketSegment, Ref.HashKey); - return Request.WriteResponse(zen::HttpResponse::NotFound); + return Request.WriteResponse(zen::HttpResponseCode::NotFound); } if (Verb == kHead) @@ -224,7 +203,7 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req Value.Value.GetContentType(), InUpstreamCache ? "upstream" : "local"); - return Request.WriteResponse(zen::HttpResponse::OK, MapToHttpContentType(Value.Value.GetContentType()), Value.Value); + return Request.WriteResponse(zen::HttpResponseCode::OK, Value.Value.GetContentType(), Value.Value); } break; @@ -234,7 +213,7 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req if (!Body || Body.Size() == 0) { - return Request.WriteResponse(zen::HttpResponse::BadRequest); + return Request.WriteResponse(zen::HttpResponseCode::BadRequest); } const HttpContentType ContentType = Request.RequestContentType(); @@ -253,7 +232,7 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req break; default: - return Request.WriteResponse(zen::HttpResponse::BadRequest); + return Request.WriteResponse(zen::HttpResponseCode::BadRequest); } if (!IsCompactBinary) @@ -272,7 +251,7 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req {.Type = ZenContentType::kBinary, .CacheKey = {Ref.BucketSegment, Ref.HashKey}}); } - return Request.WriteResponse(zen::HttpResponse::Created); + return Request.WriteResponse(zen::HttpResponseCode::Created); } // Validate payload before accessing it @@ -284,7 +263,9 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req m_Log.warn("Payload for key '{}/{}' ({} bytes) failed validation", Ref.BucketSegment, Ref.HashKey, Body.Size()); // TODO: add details in response, kText || kCbObject? - return Request.WriteResponse(HttpResponse::BadRequest, HttpContentType::kText, "Compact binary validation failed"sv); + return Request.WriteResponse(HttpResponseCode::BadRequest, + HttpContentType::kText, + "Compact binary validation failed"sv); } // Extract referenced payload hashes @@ -336,7 +317,7 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req .PayloadIds = std::move(References)}); } - return Request.WriteResponse(zen::HttpResponse::Created); + return Request.WriteResponse(zen::HttpResponseCode::Created); } else { @@ -351,7 +332,7 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req Response.EndArray(); // Return Created | BadRequest? - return Request.WriteResponse(zen::HttpResponse::Created, Response.Save()); + return Request.WriteResponse(zen::HttpResponseCode::Created, Response.Save()); } } break; @@ -407,7 +388,7 @@ HttpStructuredCacheService::HandleCachePayloadRequest(zen::HttpServerRequest& Re if (!Payload) { m_Log.debug("MISS - '{}/{}/{}'", Ref.BucketSegment, Ref.HashKey, Ref.PayloadId); - return Request.WriteResponse(zen::HttpResponse::NotFound); + return Request.WriteResponse(zen::HttpResponseCode::NotFound); } m_Log.debug("HIT - '{}/{}/{}' ({} bytes, {}) ({})", @@ -423,7 +404,7 @@ HttpStructuredCacheService::HandleCachePayloadRequest(zen::HttpServerRequest& Re Request.SetSuppressResponseBody(); } - return Request.WriteResponse(zen::HttpResponse::OK, zen::HttpContentType::kBinary, Payload); + return Request.WriteResponse(zen::HttpResponseCode::OK, zen::HttpContentType::kBinary, Payload); } break; @@ -433,7 +414,9 @@ HttpStructuredCacheService::HandleCachePayloadRequest(zen::HttpServerRequest& Re { if (Body.Size() == 0) { - return Request.WriteResponse(zen::HttpResponse::BadRequest, HttpContentType::kText, "Empty payload not permitted"); + return Request.WriteResponse(zen::HttpResponseCode::BadRequest, + HttpContentType::kText, + "Empty payload not permitted"); } zen::IoHash ChunkHash = zen::IoHash::HashBuffer(Body); @@ -443,7 +426,7 @@ HttpStructuredCacheService::HandleCachePayloadRequest(zen::HttpServerRequest& Re if (!Compressed) { // All attachment payloads need to be in compressed buffer format - return Request.WriteResponse(zen::HttpResponse::BadRequest, + return Request.WriteResponse(zen::HttpResponseCode::BadRequest, HttpContentType::kText, "Attachments must be compressed"); } @@ -452,7 +435,7 @@ HttpStructuredCacheService::HandleCachePayloadRequest(zen::HttpServerRequest& Re if (IoHash::FromBLAKE3(Compressed.GetRawHash()) != Ref.PayloadId) { // the URL specified content id and content hashes don't match! - return Request.WriteResponse(HttpResponse::BadRequest); + return Request.WriteResponse(HttpResponseCode::BadRequest); } zen::CasStore::InsertResult Result = m_CasStore.InsertChunk(Body, ChunkHash); @@ -469,11 +452,11 @@ HttpStructuredCacheService::HandleCachePayloadRequest(zen::HttpServerRequest& Re if (Result.New) { - return Request.WriteResponse(zen::HttpResponse::Created); + return Request.WriteResponse(zen::HttpResponseCode::Created); } else { - return Request.WriteResponse(zen::HttpResponse::OK); + return Request.WriteResponse(zen::HttpResponseCode::OK); } } } |