diff --git a/space/proto/space.pb.go b/space/proto/space.pb.go index d3f6a10..8d2c401 100644 --- a/space/proto/space.pb.go +++ b/space/proto/space.pb.go @@ -20,15 +20,13 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -// Create an object. Returns error if object with this name already exists. If you want to update an existing object use the `Update` endpoint -// You need to send the request as a multipart/form-data rather than the usual application/json -// with each parameter as a form field. +// Create an object. Returns error if object with this name already exists. Max object size of 10MB, see Upload endpoint for larger objects. If you want to update an existing object use the `Update` endpoint type CreateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The contents of the object + // The contents of the object. Either base64 encoded if sending request as application/json or raw bytes if using multipart/form-data format Object []byte `protobuf:"bytes,1,opt,name=object,proto3" json:"object,omitempty"` // The name of the object. Use forward slash delimiter to implement a nested directory-like structure e.g. images/foo.jpg Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` @@ -138,14 +136,12 @@ func (x *CreateResponse) GetUrl() string { } // Update an object. If an object with this name does not exist, creates a new one. -// You need to send the request as a multipart/form-data rather than the usual application/json -// with each parameter as a form field. type UpdateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The contents of the object + // The contents of the object. Either base64 encoded if sending request as application/json or raw bytes if using multipart/form-data format Object []byte `protobuf:"bytes,1,opt,name=object,proto3" json:"object,omitempty"` // The name of the object. Use forward slash delimiter to implement a nested directory-like structure e.g. images/foo.jpg Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` @@ -984,7 +980,7 @@ func (x *DownloadResponse) GetUrl() string { return "" } -// Upload a large object. Returns a time limited presigned URL to be used for uploading the object +// Upload a large object (> 10MB). Returns a time limited presigned URL to be used for uploading the object type UploadRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1046,7 +1042,7 @@ type UploadResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // a presigned url to be used for uploading + // a presigned url to be used for uploading. To use the URL call it with HTTP PUT and pass the object as the request data Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` } diff --git a/space/proto/space.proto b/space/proto/space.proto index 857c441..1b6693c 100644 --- a/space/proto/space.proto +++ b/space/proto/space.proto @@ -16,10 +16,8 @@ service Space { } // Create an object. Returns error if object with this name already exists. Max object size of 10MB, see Upload endpoint for larger objects. If you want to update an existing object use the `Update` endpoint -// You need to send the request as a multipart/form-data rather than the usual application/json -// with each parameter as a form field. message CreateRequest { - // The contents of the object + // The contents of the object. Either base64 encoded if sending request as application/json or raw bytes if using multipart/form-data format bytes object = 1; // The name of the object. Use forward slash delimiter to implement a nested directory-like structure e.g. images/foo.jpg string name = 2; @@ -33,10 +31,8 @@ message CreateResponse { } // Update an object. If an object with this name does not exist, creates a new one. -// You need to send the request as a multipart/form-data rather than the usual application/json -// with each parameter as a form field. message UpdateRequest { - // The contents of the object + // The contents of the object. Either base64 encoded if sending request as application/json or raw bytes if using multipart/form-data format bytes object = 1; // The name of the object. Use forward slash delimiter to implement a nested directory-like structure e.g. images/foo.jpg string name = 2; diff --git a/user/domain/domain.go b/user/domain/domain.go index 8a42fd5..454019a 100644 --- a/user/domain/domain.go +++ b/user/domain/domain.go @@ -499,15 +499,17 @@ func (domain *Domain) CacheReadToken(ctx context.Context, token string) (string, var email string - expires, err := cache.Context(ctx).Get(token, email) + expires, err := cache.Context(ctx).Get(token, &email) - if err == cache.ErrNotFound { + if err != nil && err == cache.ErrNotFound { return "", errors.New("token not found") - } else if time.Until(expires).Seconds() < 0 { - return "", errors.New("token expired") } else if err != nil { return "", microerr.InternalServerError("CacheReadToken", err.Error()) } + if time.Until(expires).Seconds() < 0 { + return "", errors.New("token expired") + } + return email, nil } diff --git a/user/handler/handler.go b/user/handler/handler.go index cac0129..14a1f34 100644 --- a/user/handler/handler.go +++ b/user/handler/handler.go @@ -437,15 +437,15 @@ func (s *User) VerifyToken(ctx context.Context, req *pb.VerifyTokenRequest, rsp // check if token is valid email, err := s.domain.CacheReadToken(ctx, token) - if err.Error() == "token not found" { + if err != nil && err.Error() == "token not found" { rsp.IsValid = false rsp.Message = err.Error() return nil - } else if err.Error() == "token expired" { + } else if err != nil && err.Error() == "token expired" { rsp.IsValid = false rsp.Message = err.Error() return nil - } else if err.Error() == "token empty" { + } else if err != nil && err.Error() == "token empty" { rsp.IsValid = false rsp.Message = err.Error() return nil