From c8d75500c7d804dcb00701ad4f37b6c793850a92 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Mon, 10 Apr 2023 17:13:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E7=BC=93=E5=AD=98=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rpc/services/service_http_cache_task.go | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/internal/rpc/services/service_http_cache_task.go b/internal/rpc/services/service_http_cache_task.go index 1051904d..a5d88faf 100644 --- a/internal/rpc/services/service_http_cache_task.go +++ b/internal/rpc/services/service_http_cache_task.go @@ -29,8 +29,29 @@ func (this *HTTPCacheTaskService) CreateHTTPCacheTask(ctx context.Context, req * var tx = this.NullTx() // 检查操作类型 + if len(req.Type) == 0 { + return nil, errors.New("require 'type' parameter") + } if req.Type != models.HTTPCacheTaskTypePurge && req.Type != models.HTTPCacheTaskTypeFetch { - return nil, errors.New("invalid type '" + req.Type + "'") + return nil, errors.New("'type' must be 'purge' or 'fetch'") + } + + // 检查Key类型 + if len(req.KeyType) == 0 { + return nil, errors.New("require 'keyType' parameter") + } + if req.KeyType != "key" && req.KeyType != "prefix" { + return nil, errors.New("'keyType' must be 'key' or 'prefix'") + } + + // 预热只能是Key + if req.Type == models.HTTPCacheTaskTypeFetch && req.KeyType != "key" { + return nil, errors.New("'keyType' should be 'key' when fetching cache") + } + + // 检查key是否为空 + if len(req.Keys) == 0 { + return nil, errors.New("'keys' should not be empty") } // 检查Key数量