diff --git a/api/v1/shortcut.go b/api/v1/shortcut.go index 8633973..9047620 100644 --- a/api/v1/shortcut.go +++ b/api/v1/shortcut.go @@ -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, diff --git a/api/v2/shortcut_service.go b/api/v2/shortcut_service.go index 9092faa..7772115 100644 --- a/api/v2/shortcut_service.go +++ b/api/v2/shortcut_service.go @@ -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, diff --git a/store/shortcut.go b/store/shortcut.go index 175c975..a72eadd 100644 --- a/store/shortcut.go +++ b/store/shortcut.go @@ -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)) }