chore: fix collection service

This commit is contained in:
Steven 2023-11-11 21:06:52 +08:00
parent 8f982c5695
commit 8f608dc522
5 changed files with 16 additions and 3 deletions

View File

@ -100,7 +100,9 @@ func (s *APIV2Service) UpdateCollection(ctx context.Context, request *apiv2pb.Up
return nil, status.Errorf(codes.PermissionDenied, "Permission denied") return nil, status.Errorf(codes.PermissionDenied, "Permission denied")
} }
update := &store.UpdateCollection{} update := &store.UpdateCollection{
ID: collection.Id,
}
for _, path := range request.UpdateMask.Paths { for _, path := range request.UpdateMask.Paths {
switch path { switch path {
case "name": case "name":
@ -112,7 +114,7 @@ func (s *APIV2Service) UpdateCollection(ctx context.Context, request *apiv2pb.Up
case "shortcut_ids": case "shortcut_ids":
update.ShortcutIDs = request.Collection.ShortcutIds update.ShortcutIDs = request.Collection.ShortcutIds
case "visibility": case "visibility":
visibility := store.Visibility(request.Collection.Visibility) visibility := store.Visibility(request.Collection.Visibility.String())
update.Visibility = &visibility update.Visibility = &visibility
} }
} }

View File

@ -149,7 +149,7 @@ func (s *APIV2Service) UpdateShortcut(ctx context.Context, request *apiv2pb.Upda
case "description": case "description":
update.Description = &request.Shortcut.Description update.Description = &request.Shortcut.Description
case "visibility": case "visibility":
visibility := store.Visibility(request.Shortcut.Visibility) visibility := store.Visibility(request.Shortcut.Visibility.String())
update.Visibility = &visibility update.Visibility = &visibility
case "og_metadata": case "og_metadata":
if request.Shortcut.OgMetadata != nil { if request.Shortcut.OgMetadata != nil {

View File

@ -23,6 +23,7 @@ type APIV2Service struct {
apiv2pb.UnimplementedUserServiceServer apiv2pb.UnimplementedUserServiceServer
apiv2pb.UnimplementedUserSettingServiceServer apiv2pb.UnimplementedUserSettingServiceServer
apiv2pb.UnimplementedShortcutServiceServer apiv2pb.UnimplementedShortcutServiceServer
apiv2pb.UnimplementedCollectionServiceServer
Secret string Secret string
Profile *profile.Profile Profile *profile.Profile
@ -54,6 +55,7 @@ func NewAPIV2Service(secret string, profile *profile.Profile, store *store.Store
apiv2pb.RegisterUserServiceServer(grpcServer, apiV2Service) apiv2pb.RegisterUserServiceServer(grpcServer, apiV2Service)
apiv2pb.RegisterUserSettingServiceServer(grpcServer, apiV2Service) apiv2pb.RegisterUserSettingServiceServer(grpcServer, apiV2Service)
apiv2pb.RegisterShortcutServiceServer(grpcServer, apiV2Service) apiv2pb.RegisterShortcutServiceServer(grpcServer, apiV2Service)
apiv2pb.RegisterCollectionServiceServer(grpcServer, apiV2Service)
reflection.Register(grpcServer) reflection.Register(grpcServer)
return apiV2Service return apiV2Service
@ -92,6 +94,9 @@ func (s *APIV2Service) RegisterGateway(ctx context.Context, e *echo.Echo) error
if err := apiv2pb.RegisterShortcutServiceHandler(context.Background(), gwMux, conn); err != nil { if err := apiv2pb.RegisterShortcutServiceHandler(context.Background(), gwMux, conn); err != nil {
return err return err
} }
if err := apiv2pb.RegisterCollectionServiceHandler(context.Background(), gwMux, conn); err != nil {
return err
}
e.Any("/api/v2/*", echo.WrapHandler(gwMux)) e.Any("/api/v2/*", echo.WrapHandler(gwMux))
// GRPC web proxy. // GRPC web proxy.

View File

@ -1,4 +1,5 @@
import { createChannel, createClientFactory, FetchTransport } from "nice-grpc-web"; import { createChannel, createClientFactory, FetchTransport } from "nice-grpc-web";
import { CollectionServiceDefinition } from "./types/proto/api/v2/collection_service";
import { ShortcutServiceDefinition } from "./types/proto/api/v2/shortcut_service"; import { ShortcutServiceDefinition } from "./types/proto/api/v2/shortcut_service";
import { SubscriptionServiceDefinition } from "./types/proto/api/v2/subscription_service"; import { SubscriptionServiceDefinition } from "./types/proto/api/v2/subscription_service";
import { UserServiceDefinition } from "./types/proto/api/v2/user_service"; import { UserServiceDefinition } from "./types/proto/api/v2/user_service";
@ -25,3 +26,5 @@ export const userServiceClient = clientFactory.create(UserServiceDefinition, cha
export const userSettingServiceClient = clientFactory.create(UserSettingServiceDefinition, channel); export const userSettingServiceClient = clientFactory.create(UserSettingServiceDefinition, channel);
export const shortcutServiceClient = clientFactory.create(ShortcutServiceDefinition, channel); export const shortcutServiceClient = clientFactory.create(ShortcutServiceDefinition, channel);
export const collectionServiceClient = clientFactory.create(CollectionServiceDefinition, channel);

View File

@ -30,12 +30,15 @@ func TestCollectionStore(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, 1, len(collections)) require.Equal(t, 1, len(collections))
require.Equal(t, collection, collections[0]) require.Equal(t, collection, collections[0])
newTitle := "My new collection"
newShortcutIds := []int32{101, 103} newShortcutIds := []int32{101, 103}
updatedCollection, err := ts.UpdateCollection(ctx, &store.UpdateCollection{ updatedCollection, err := ts.UpdateCollection(ctx, &store.UpdateCollection{
ID: collection.Id, ID: collection.Id,
Title: &newTitle,
ShortcutIDs: newShortcutIds, ShortcutIDs: newShortcutIds,
}) })
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, newTitle, updatedCollection.Title)
require.Equal(t, newShortcutIds, updatedCollection.ShortcutIds) require.Equal(t, newShortcutIds, updatedCollection.ShortcutIds)
err = ts.DeleteCollection(ctx, &store.DeleteCollection{ err = ts.DeleteCollection(ctx, &store.DeleteCollection{
ID: collection.Id, ID: collection.Id,