1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package v1
- import (
- "context"
- "time"
- "google.golang.org/grpc/codes"
- "google.golang.org/grpc/status"
- "google.golang.org/protobuf/types/known/timestamppb"
- v1pb "github.com/usememos/memos/proto/gen/api/v1"
- storepb "github.com/usememos/memos/proto/gen/store"
- "github.com/usememos/memos/store"
- )
- func (s *APIV1Service) GetActivity(ctx context.Context, request *v1pb.GetActivityRequest) (*v1pb.Activity, error) {
- activity, err := s.Store.GetActivity(ctx, &store.FindActivity{
- ID: &request.Id,
- })
- if err != nil {
- return nil, status.Errorf(codes.Internal, "failed to get activity: %v", err)
- }
- activityMessage, err := s.convertActivityFromStore(ctx, activity)
- if err != nil {
- return nil, status.Errorf(codes.Internal, "failed to convert activity from store: %v", err)
- }
- return activityMessage, nil
- }
- func (*APIV1Service) convertActivityFromStore(_ context.Context, activity *store.Activity) (*v1pb.Activity, error) {
- return &v1pb.Activity{
- Id: activity.ID,
- CreatorId: activity.CreatorID,
- Type: activity.Type.String(),
- Level: activity.Level.String(),
- CreateTime: timestamppb.New(time.Unix(activity.CreatedTs, 0)),
- Payload: convertActivityPayloadFromStore(activity.Payload),
- }, nil
- }
- func convertActivityPayloadFromStore(payload *storepb.ActivityPayload) *v1pb.ActivityPayload {
- v2Payload := &v1pb.ActivityPayload{}
- if payload.MemoComment != nil {
- v2Payload.MemoComment = &v1pb.ActivityMemoCommentPayload{
- MemoId: payload.MemoComment.MemoId,
- RelatedMemoId: payload.MemoComment.RelatedMemoId,
- }
- }
- if payload.VersionUpdate != nil {
- v2Payload.VersionUpdate = &v1pb.ActivityVersionUpdatePayload{
- Version: payload.VersionUpdate.Version,
- }
- }
- return v2Payload
- }
|