refactor: remove resource uid

This commit is contained in:
johnnyjoy
2025-02-01 12:50:15 +08:00
parent 97d12db3d5
commit 0dcd0904e8
12 changed files with 180 additions and 412 deletions

View File

@@ -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: &currentTs,
}
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,