mirror of
https://github.com/usememos/memos.git
synced 2024-11-15 03:07:04 +08:00
74 lines
1.7 KiB
Go
74 lines
1.7 KiB
Go
package v2
|
|
|
|
import (
|
|
"context"
|
|
"encoding/base64"
|
|
|
|
"github.com/pkg/errors"
|
|
"google.golang.org/protobuf/proto"
|
|
|
|
apiv2pb "github.com/usememos/memos/proto/gen/api/v2"
|
|
"github.com/usememos/memos/store"
|
|
)
|
|
|
|
func convertRowStatusFromStore(rowStatus store.RowStatus) apiv2pb.RowStatus {
|
|
switch rowStatus {
|
|
case store.Normal:
|
|
return apiv2pb.RowStatus_ACTIVE
|
|
case store.Archived:
|
|
return apiv2pb.RowStatus_ARCHIVED
|
|
default:
|
|
return apiv2pb.RowStatus_ROW_STATUS_UNSPECIFIED
|
|
}
|
|
}
|
|
|
|
func convertRowStatusToStore(rowStatus apiv2pb.RowStatus) store.RowStatus {
|
|
switch rowStatus {
|
|
case apiv2pb.RowStatus_ACTIVE:
|
|
return store.Normal
|
|
case apiv2pb.RowStatus_ARCHIVED:
|
|
return store.Archived
|
|
default:
|
|
return store.Normal
|
|
}
|
|
}
|
|
|
|
func getCurrentUser(ctx context.Context, s *store.Store) (*store.User, error) {
|
|
username, ok := ctx.Value(usernameContextKey).(string)
|
|
if !ok {
|
|
return nil, nil
|
|
}
|
|
user, err := s.GetUser(ctx, &store.FindUser{
|
|
Username: &username,
|
|
})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return user, nil
|
|
}
|
|
|
|
func getPageToken(limit int, offset int) (string, error) {
|
|
return marshalPageToken(&apiv2pb.PageToken{
|
|
Limit: int32(limit),
|
|
Offset: int32(offset),
|
|
})
|
|
}
|
|
|
|
func marshalPageToken(pageToken *apiv2pb.PageToken) (string, error) {
|
|
b, err := proto.Marshal(pageToken)
|
|
if err != nil {
|
|
return "", errors.Wrapf(err, "failed to marshal page token")
|
|
}
|
|
return base64.StdEncoding.EncodeToString(b), nil
|
|
}
|
|
|
|
func unmarshalPageToken(s string, pageToken *apiv2pb.PageToken) error {
|
|
b, err := base64.StdEncoding.DecodeString(s)
|
|
if err != nil {
|
|
return errors.Wrapf(err, "failed to decode page token")
|
|
}
|
|
if err := proto.Unmarshal(b, pageToken); err != nil {
|
|
return errors.Wrapf(err, "failed to unmarshal page token")
|
|
}
|
|
return nil
|
|
}
|