mirror of
https://github.com/usememos/memos.git
synced 2025-06-05 22:09:59 +02:00
refactor: remove resource uid
This commit is contained in:
@@ -114,27 +114,11 @@ func (s *APIV1Service) ListResources(ctx context.Context, _ *v1pb.ListResourcesR
|
||||
}
|
||||
|
||||
func (s *APIV1Service) GetResource(ctx context.Context, request *v1pb.GetResourceRequest) (*v1pb.Resource, error) {
|
||||
id, err := ExtractResourceIDFromName(request.Name)
|
||||
resourceUID, err := ExtractResourceUIDFromName(request.Name)
|
||||
if err != nil {
|
||||
return nil, status.Errorf(codes.InvalidArgument, "invalid resource id: %v", err)
|
||||
}
|
||||
resource, err := s.Store.GetResource(ctx, &store.FindResource{
|
||||
ID: &id,
|
||||
})
|
||||
if err != nil {
|
||||
return nil, status.Errorf(codes.Internal, "failed to get resource: %v", err)
|
||||
}
|
||||
if resource == nil {
|
||||
return nil, status.Errorf(codes.NotFound, "resource not found")
|
||||
}
|
||||
return s.convertResourceFromStore(ctx, resource), nil
|
||||
}
|
||||
|
||||
//nolint:all
|
||||
func (s *APIV1Service) GetResourceByUid(ctx context.Context, request *v1pb.GetResourceByUidRequest) (*v1pb.Resource, error) {
|
||||
resource, err := s.Store.GetResource(ctx, &store.FindResource{
|
||||
UID: &request.Uid,
|
||||
})
|
||||
resource, err := s.Store.GetResource(ctx, &store.FindResource{UID: &resourceUID})
|
||||
if err != nil {
|
||||
return nil, status.Errorf(codes.Internal, "failed to get resource: %v", err)
|
||||
}
|
||||
@@ -149,11 +133,11 @@ func (s *APIV1Service) GetResourceBinary(ctx context.Context, request *v1pb.GetR
|
||||
GetBlob: true,
|
||||
}
|
||||
if request.Name != "" {
|
||||
id, err := ExtractResourceIDFromName(request.Name)
|
||||
resourceUID, err := ExtractResourceUIDFromName(request.Name)
|
||||
if err != nil {
|
||||
return nil, status.Errorf(codes.InvalidArgument, "invalid resource id: %v", err)
|
||||
}
|
||||
resourceFind.ID = &id
|
||||
resourceFind.UID = &resourceUID
|
||||
}
|
||||
resource, err := s.Store.GetResource(ctx, resourceFind)
|
||||
if err != nil {
|
||||
@@ -215,17 +199,21 @@ func (s *APIV1Service) GetResourceBinary(ctx context.Context, request *v1pb.GetR
|
||||
}
|
||||
|
||||
func (s *APIV1Service) UpdateResource(ctx context.Context, request *v1pb.UpdateResourceRequest) (*v1pb.Resource, error) {
|
||||
id, err := ExtractResourceIDFromName(request.Resource.Name)
|
||||
resourceUID, err := ExtractResourceUIDFromName(request.Resource.Name)
|
||||
if err != nil {
|
||||
return nil, status.Errorf(codes.InvalidArgument, "invalid resource id: %v", err)
|
||||
}
|
||||
if request.UpdateMask == nil || len(request.UpdateMask.Paths) == 0 {
|
||||
return nil, status.Errorf(codes.InvalidArgument, "update mask is required")
|
||||
}
|
||||
resource, err := s.Store.GetResource(ctx, &store.FindResource{UID: &resourceUID})
|
||||
if err != nil {
|
||||
return nil, status.Errorf(codes.Internal, "failed to get resource: %v", err)
|
||||
}
|
||||
|
||||
currentTs := time.Now().Unix()
|
||||
update := &store.UpdateResource{
|
||||
ID: id,
|
||||
ID: resource.ID,
|
||||
UpdatedTs: ¤tTs,
|
||||
}
|
||||
for _, field := range request.UpdateMask.Paths {
|
||||
@@ -243,7 +231,7 @@ func (s *APIV1Service) UpdateResource(ctx context.Context, request *v1pb.UpdateR
|
||||
}
|
||||
|
||||
func (s *APIV1Service) DeleteResource(ctx context.Context, request *v1pb.DeleteResourceRequest) (*emptypb.Empty, error) {
|
||||
id, err := ExtractResourceIDFromName(request.Name)
|
||||
resourceUID, err := ExtractResourceUIDFromName(request.Name)
|
||||
if err != nil {
|
||||
return nil, status.Errorf(codes.InvalidArgument, "invalid resource id: %v", err)
|
||||
}
|
||||
@@ -252,7 +240,7 @@ func (s *APIV1Service) DeleteResource(ctx context.Context, request *v1pb.DeleteR
|
||||
return nil, status.Errorf(codes.Internal, "failed to get current user: %v", err)
|
||||
}
|
||||
resource, err := s.Store.GetResource(ctx, &store.FindResource{
|
||||
ID: &id,
|
||||
UID: &resourceUID,
|
||||
CreatorID: &user.ID,
|
||||
})
|
||||
if err != nil {
|
||||
@@ -272,8 +260,7 @@ func (s *APIV1Service) DeleteResource(ctx context.Context, request *v1pb.DeleteR
|
||||
|
||||
func (s *APIV1Service) convertResourceFromStore(ctx context.Context, resource *store.Resource) *v1pb.Resource {
|
||||
resourceMessage := &v1pb.Resource{
|
||||
Name: fmt.Sprintf("%s%d", ResourceNamePrefix, resource.ID),
|
||||
Uid: resource.UID,
|
||||
Name: fmt.Sprintf("%s%s", ResourceNamePrefix, resource.UID),
|
||||
CreateTime: timestamppb.New(time.Unix(resource.CreatedTs, 0)),
|
||||
Filename: resource.Filename,
|
||||
Type: resource.Type,
|
||||
|
Reference in New Issue
Block a user