chore: fix update shortcut

This commit is contained in:
Steven 2023-11-21 22:32:55 +08:00
parent 0c2283a831
commit c449669793
3 changed files with 11 additions and 14 deletions

View File

@ -182,7 +182,7 @@ func (s *APIV1Service) registerShortcutRoutes(g *echo.Group) {
shortcutUpdate.Tag = &tag
}
if patch.OpenGraphMetadata != nil {
shortcutUpdate.OpenGraphMetadata = &store.OpenGraphMetadata{
shortcutUpdate.OpenGraphMetadata = &storepb.OpenGraphMetadata{
Title: patch.OpenGraphMetadata.Title,
Description: patch.OpenGraphMetadata.Description,
Image: patch.OpenGraphMetadata.Image,

View File

@ -143,9 +143,13 @@ func (s *APIV2Service) UpdateShortcut(ctx context.Context, request *apiv2pb.Upda
return nil, status.Errorf(codes.PermissionDenied, "Permission denied")
}
update := &store.UpdateShortcut{}
update := &store.UpdateShortcut{
ID: shortcut.Id,
}
for _, path := range request.UpdateMask.Paths {
switch path {
case "name":
update.Name = &request.Shortcut.Name
case "link":
update.Link = &request.Shortcut.Link
case "title":
@ -160,7 +164,7 @@ func (s *APIV2Service) UpdateShortcut(ctx context.Context, request *apiv2pb.Upda
update.Visibility = &visibility
case "og_metadata":
if request.Shortcut.OgMetadata != nil {
update.OpenGraphMetadata = &store.OpenGraphMetadata{
update.OpenGraphMetadata = &storepb.OpenGraphMetadata{
Title: request.Shortcut.OgMetadata.Title,
Description: request.Shortcut.OgMetadata.Description,
Image: request.Shortcut.OgMetadata.Image,

View File

@ -3,22 +3,15 @@ package store
import (
"context"
"database/sql"
"encoding/json"
"errors"
"fmt"
"strings"
"github.com/pkg/errors"
"google.golang.org/protobuf/encoding/protojson"
storepb "github.com/boojack/slash/proto/gen/store"
)
type OpenGraphMetadata struct {
Title string `json:"title"`
Description string `json:"description"`
Image string `json:"image"`
}
type UpdateShortcut struct {
ID int32
@ -29,7 +22,7 @@ type UpdateShortcut struct {
Description *string
Visibility *Visibility
Tag *string
OpenGraphMetadata *OpenGraphMetadata
OpenGraphMetadata *storepb.OpenGraphMetadata
}
type FindShortcut struct {
@ -105,9 +98,9 @@ func (s *Store) UpdateShortcut(ctx context.Context, update *UpdateShortcut) (*st
set, args = append(set, "tag = ?"), append(args, *update.Tag)
}
if update.OpenGraphMetadata != nil {
openGraphMetadataBytes, err := json.Marshal(update.OpenGraphMetadata)
openGraphMetadataBytes, err := protojson.Marshal(update.OpenGraphMetadata)
if err != nil {
return nil, err
return nil, errors.Wrap(err, "Failed to marshal activity payload")
}
set, args = append(set, "og_metadata = ?"), append(args, string(openGraphMetadataBytes))
}