1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- 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
- }
|