|
|
|
@ -27,6 +27,10 @@ import (
|
|
|
|
|
"github.com/usememos/memos/store"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
const (
|
|
|
|
|
MaxContentLength = 8 * 1024
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func (s *APIV2Service) CreateMemo(ctx context.Context, request *apiv2pb.CreateMemoRequest) (*apiv2pb.CreateMemoResponse, error) {
|
|
|
|
|
user, err := getCurrentUser(ctx, s.Store)
|
|
|
|
|
if err != nil {
|
|
|
|
@ -35,6 +39,9 @@ func (s *APIV2Service) CreateMemo(ctx context.Context, request *apiv2pb.CreateMe
|
|
|
|
|
if user == nil {
|
|
|
|
|
return nil, status.Errorf(codes.PermissionDenied, "permission denied")
|
|
|
|
|
}
|
|
|
|
|
if len(request.Content) > MaxContentLength {
|
|
|
|
|
return nil, status.Errorf(codes.InvalidArgument, "content too long")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
nodes, err := parser.Parse(tokenizer.Tokenize(request.Content))
|
|
|
|
|
if err != nil {
|
|
|
|
@ -260,6 +267,9 @@ func (s *APIV2Service) UpdateMemo(ctx context.Context, request *apiv2pb.UpdateMe
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if update.Content != nil && len(*update.Content) > MaxContentLength {
|
|
|
|
|
return nil, status.Errorf(codes.InvalidArgument, "content too long")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if err = s.Store.UpdateMemo(ctx, update); err != nil {
|
|
|
|
|
return nil, status.Errorf(codes.Internal, "failed to update memo")
|
|
|
|
|