chore: tweak activity service definition

This commit is contained in:
Steven
2024-08-01 23:40:16 +08:00
parent cc91b1e512
commit 21f18f7c56
15 changed files with 268 additions and 242 deletions

View File

@@ -2,6 +2,7 @@ package v1
import (
"context"
"fmt"
"time"
"google.golang.org/grpc/codes"
@@ -14,8 +15,12 @@ import (
)
func (s *APIV1Service) GetActivity(ctx context.Context, request *v1pb.GetActivityRequest) (*v1pb.Activity, error) {
activityID, err := ExtractActivityIDFromName(request.Name)
if err != nil {
return nil, status.Errorf(codes.InvalidArgument, "invalid activity name: %v", err)
}
activity, err := s.Store.GetActivity(ctx, &store.FindActivity{
ID: &request.Id,
ID: &activityID,
})
if err != nil {
return nil, status.Errorf(codes.Internal, "failed to get activity: %v", err)
@@ -30,7 +35,7 @@ func (s *APIV1Service) GetActivity(ctx context.Context, request *v1pb.GetActivit
func (*APIV1Service) convertActivityFromStore(_ context.Context, activity *store.Activity) (*v1pb.Activity, error) {
return &v1pb.Activity{
Id: activity.ID,
Name: fmt.Sprintf("%s%d", ActivityNamePrefix, activity.ID),
CreatorId: activity.CreatorID,
Type: activity.Type.String(),
Level: activity.Level.String(),

View File

@@ -17,6 +17,7 @@ const (
InboxNamePrefix = "inboxes/"
StorageNamePrefix = "storages/"
IdentityProviderNamePrefix = "identityProviders/"
ActivityNamePrefix = "activities/"
)
// GetNameParentTokens returns the tokens from a resource name.
@@ -123,3 +124,15 @@ func ExtractIdentityProviderIDFromName(name string) (int32, error) {
}
return id, nil
}
func ExtractActivityIDFromName(name string) (int32, error) {
tokens, err := GetNameParentTokens(name, ActivityNamePrefix)
if err != nil {
return 0, err
}
id, err := util.ConvertStringToInt32(tokens[0])
if err != nil {
return 0, errors.Errorf("invalid activity ID %q", tokens[0])
}
return id, nil
}