Commit 4ddd3cae authored by Steven's avatar Steven

chore: update user setting api

parent c1f55aba
......@@ -187,7 +187,7 @@ func (s *APIV2Service) DeleteUser(ctx context.Context, request *apiv2pb.DeleteUs
return &apiv2pb.DeleteUserResponse{}, nil
}
func (s *APIV2Service) GetUserSettings(ctx context.Context, _ *apiv2pb.GetUserSettingsRequest) (*apiv2pb.GetUserSettingsResponse, error) {
func (s *APIV2Service) GetUserSetting(ctx context.Context, _ *apiv2pb.GetUserSettingRequest) (*apiv2pb.GetUserSettingResponse, error) {
user, err := getCurrentUser(ctx, s.Store)
if err != nil {
return nil, status.Errorf(codes.Internal, "failed to get current user: %v", err)
......@@ -199,24 +199,24 @@ func (s *APIV2Service) GetUserSettings(ctx context.Context, _ *apiv2pb.GetUserSe
if err != nil {
return nil, status.Errorf(codes.Internal, "failed to list user settings: %v", err)
}
userSetting := &apiv2pb.UserSetting{}
userSettingMessage := &apiv2pb.UserSetting{}
for _, setting := range userSettings {
if setting.Key == storepb.UserSettingKey_USER_SETTING_LOCALE {
userSetting.Locale = setting.GetLocale()
userSettingMessage.Locale = setting.GetLocale()
} else if setting.Key == storepb.UserSettingKey_USER_SETTING_APPEARANCE {
userSetting.Appearance = setting.GetAppearance()
userSettingMessage.Appearance = setting.GetAppearance()
} else if setting.Key == storepb.UserSettingKey_USER_SETTING_MEMO_VISIBILITY {
userSetting.MemoVisibility = setting.GetMemoVisibility()
userSettingMessage.MemoVisibility = setting.GetMemoVisibility()
} else if setting.Key == storepb.UserSettingKey_USER_SETTING_TELEGRAM_USER_ID {
userSetting.TelegramUserId = setting.GetTelegramUserId()
userSettingMessage.TelegramUserId = setting.GetTelegramUserId()
}
}
return &apiv2pb.GetUserSettingsResponse{
Settings: userSetting,
return &apiv2pb.GetUserSettingResponse{
Setting: userSettingMessage,
}, nil
}
func (s *APIV2Service) UpdateUserSettings(ctx context.Context, request *apiv2pb.UpdateUserSettingsRequest) (*apiv2pb.UpdateUserSettingsResponse, error) {
func (s *APIV2Service) UpdateUserSetting(ctx context.Context, request *apiv2pb.UpdateUserSettingRequest) (*apiv2pb.UpdateUserSettingResponse, error) {
user, err := getCurrentUser(ctx, s.Store)
if err != nil {
return nil, status.Errorf(codes.Internal, "failed to get current user: %v", err)
......@@ -232,7 +232,7 @@ func (s *APIV2Service) UpdateUserSettings(ctx context.Context, request *apiv2pb.
UserId: user.ID,
Key: storepb.UserSettingKey_USER_SETTING_LOCALE,
Value: &storepb.UserSetting_Locale{
Locale: request.Settings.Locale,
Locale: request.Setting.Locale,
},
}); err != nil {
return nil, status.Errorf(codes.Internal, "failed to upsert user setting: %v", err)
......@@ -242,7 +242,7 @@ func (s *APIV2Service) UpdateUserSettings(ctx context.Context, request *apiv2pb.
UserId: user.ID,
Key: storepb.UserSettingKey_USER_SETTING_APPEARANCE,
Value: &storepb.UserSetting_Appearance{
Appearance: request.Settings.Appearance,
Appearance: request.Setting.Appearance,
},
}); err != nil {
return nil, status.Errorf(codes.Internal, "failed to upsert user setting: %v", err)
......@@ -252,7 +252,7 @@ func (s *APIV2Service) UpdateUserSettings(ctx context.Context, request *apiv2pb.
UserId: user.ID,
Key: storepb.UserSettingKey_USER_SETTING_MEMO_VISIBILITY,
Value: &storepb.UserSetting_MemoVisibility{
MemoVisibility: request.Settings.MemoVisibility,
MemoVisibility: request.Setting.MemoVisibility,
},
}); err != nil {
return nil, status.Errorf(codes.Internal, "failed to upsert user setting: %v", err)
......@@ -262,7 +262,7 @@ func (s *APIV2Service) UpdateUserSettings(ctx context.Context, request *apiv2pb.
UserId: user.ID,
Key: storepb.UserSettingKey_USER_SETTING_TELEGRAM_USER_ID,
Value: &storepb.UserSetting_TelegramUserId{
TelegramUserId: request.Settings.TelegramUserId,
TelegramUserId: request.Setting.TelegramUserId,
},
}); err != nil {
return nil, status.Errorf(codes.Internal, "failed to upsert user setting: %v", err)
......@@ -272,7 +272,13 @@ func (s *APIV2Service) UpdateUserSettings(ctx context.Context, request *apiv2pb.
}
}
return &apiv2pb.UpdateUserSettingsResponse{}, nil
userSettingResponse, err := s.GetUserSetting(ctx, &apiv2pb.GetUserSettingRequest{})
if err != nil {
return nil, status.Errorf(codes.Internal, "failed to get user setting: %v", err)
}
return &apiv2pb.UpdateUserSettingResponse{
Setting: userSettingResponse.Setting,
}, nil
}
func (s *APIV2Service) ListUserAccessTokens(ctx context.Context, request *apiv2pb.ListUserAccessTokensRequest) (*apiv2pb.ListUserAccessTokensResponse, error) {
......
......@@ -38,16 +38,16 @@ service UserService {
option (google.api.http) = {delete: "/api/v2/{name=users/*}"};
option (google.api.method_signature) = "name";
}
rpc GetUserSettings(GetUserSettingsRequest) returns (GetUserSettingsResponse) {
option (google.api.http) = {get: "/api/v2/{name=users/*}/settings"};
rpc GetUserSetting(GetUserSettingRequest) returns (GetUserSettingResponse) {
option (google.api.http) = {get: "/api/v2/{name=users/*}/setting"};
option (google.api.method_signature) = "name";
}
rpc UpdateUserSettings(UpdateUserSettingsRequest) returns (UpdateUserSettingsResponse) {
rpc UpdateUserSetting(UpdateUserSettingRequest) returns (UpdateUserSettingResponse) {
option (google.api.http) = {
patch: "/api/v2/{settings.name=users/*/settings}"
body: "settings"
patch: "/api/v2/{setting.name=users/*/setting}"
body: "setting"
};
option (google.api.method_signature) = "settings,update_mask";
option (google.api.method_signature) = "setting,update_mask";
}
// ListUserAccessTokens returns a list of access tokens for a user.
rpc ListUserAccessTokens(ListUserAccessTokensRequest) returns (ListUserAccessTokensResponse) {
......@@ -149,24 +149,24 @@ message UserSetting {
string telegram_user_id = 5;
}
message GetUserSettingsRequest {
message GetUserSettingRequest {
// The name of the user.
// Format: users/{username}
string name = 1;
}
message GetUserSettingsResponse {
UserSetting settings = 1;
message GetUserSettingResponse {
UserSetting setting = 1;
}
message UpdateUserSettingsRequest {
UserSetting settings = 1 [(google.api.field_behavior) = REQUIRED];
message UpdateUserSettingRequest {
UserSetting setting = 1 [(google.api.field_behavior) = REQUIRED];
google.protobuf.FieldMask update_mask = 2;
}
message UpdateUserSettingsResponse {
UserSetting settings = 1;
message UpdateUserSettingResponse {
UserSetting setting = 1;
}
message UserAccessToken {
......
......@@ -27,14 +27,14 @@
- [DeleteUserResponse](#memos-api-v2-DeleteUserResponse)
- [GetUserRequest](#memos-api-v2-GetUserRequest)
- [GetUserResponse](#memos-api-v2-GetUserResponse)
- [GetUserSettingsRequest](#memos-api-v2-GetUserSettingsRequest)
- [GetUserSettingsResponse](#memos-api-v2-GetUserSettingsResponse)
- [GetUserSettingRequest](#memos-api-v2-GetUserSettingRequest)
- [GetUserSettingResponse](#memos-api-v2-GetUserSettingResponse)
- [ListUserAccessTokensRequest](#memos-api-v2-ListUserAccessTokensRequest)
- [ListUserAccessTokensResponse](#memos-api-v2-ListUserAccessTokensResponse)
- [UpdateUserRequest](#memos-api-v2-UpdateUserRequest)
- [UpdateUserResponse](#memos-api-v2-UpdateUserResponse)
- [UpdateUserSettingsRequest](#memos-api-v2-UpdateUserSettingsRequest)
- [UpdateUserSettingsResponse](#memos-api-v2-UpdateUserSettingsResponse)
- [UpdateUserSettingRequest](#memos-api-v2-UpdateUserSettingRequest)
- [UpdateUserSettingResponse](#memos-api-v2-UpdateUserSettingResponse)
- [User](#memos-api-v2-User)
- [UserAccessToken](#memos-api-v2-UserAccessToken)
- [UserSetting](#memos-api-v2-UserSetting)
......@@ -436,9 +436,9 @@
<a name="memos-api-v2-GetUserSettingsRequest"></a>
<a name="memos-api-v2-GetUserSettingRequest"></a>
### GetUserSettingsRequest
### GetUserSettingRequest
......@@ -451,15 +451,15 @@
<a name="memos-api-v2-GetUserSettingsResponse"></a>
<a name="memos-api-v2-GetUserSettingResponse"></a>
### GetUserSettingsResponse
### GetUserSettingResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| settings | [UserSetting](#memos-api-v2-UserSetting) | | |
| setting | [UserSetting](#memos-api-v2-UserSetting) | | |
......@@ -527,15 +527,15 @@
<a name="memos-api-v2-UpdateUserSettingsRequest"></a>
<a name="memos-api-v2-UpdateUserSettingRequest"></a>
### UpdateUserSettingsRequest
### UpdateUserSettingRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| settings | [UserSetting](#memos-api-v2-UserSetting) | | |
| setting | [UserSetting](#memos-api-v2-UserSetting) | | |
| update_mask | [google.protobuf.FieldMask](#google-protobuf-FieldMask) | | |
......@@ -543,15 +543,15 @@
<a name="memos-api-v2-UpdateUserSettingsResponse"></a>
<a name="memos-api-v2-UpdateUserSettingResponse"></a>
### UpdateUserSettingsResponse
### UpdateUserSettingResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| settings | [UserSetting](#memos-api-v2-UserSetting) | | |
| setting | [UserSetting](#memos-api-v2-UserSetting) | | |
......@@ -650,8 +650,8 @@
| CreateUser | [CreateUserRequest](#memos-api-v2-CreateUserRequest) | [CreateUserResponse](#memos-api-v2-CreateUserResponse) | CreateUser creates a new user. |
| UpdateUser | [UpdateUserRequest](#memos-api-v2-UpdateUserRequest) | [UpdateUserResponse](#memos-api-v2-UpdateUserResponse) | UpdateUser updates a user. |
| DeleteUser | [DeleteUserRequest](#memos-api-v2-DeleteUserRequest) | [DeleteUserResponse](#memos-api-v2-DeleteUserResponse) | DeleteUser deletes a user. |
| GetUserSettings | [GetUserSettingsRequest](#memos-api-v2-GetUserSettingsRequest) | [GetUserSettingsResponse](#memos-api-v2-GetUserSettingsResponse) | |
| UpdateUserSettings | [UpdateUserSettingsRequest](#memos-api-v2-UpdateUserSettingsRequest) | [UpdateUserSettingsResponse](#memos-api-v2-UpdateUserSettingsResponse) | |
| GetUserSetting | [GetUserSettingRequest](#memos-api-v2-GetUserSettingRequest) | [GetUserSettingResponse](#memos-api-v2-GetUserSettingResponse) | |
| UpdateUserSetting | [UpdateUserSettingRequest](#memos-api-v2-UpdateUserSettingRequest) | [UpdateUserSettingResponse](#memos-api-v2-UpdateUserSettingResponse) | |
| ListUserAccessTokens | [ListUserAccessTokensRequest](#memos-api-v2-ListUserAccessTokensRequest) | [ListUserAccessTokensResponse](#memos-api-v2-ListUserAccessTokensResponse) | ListUserAccessTokens returns a list of access tokens for a user. |
| CreateUserAccessToken | [CreateUserAccessTokenRequest](#memos-api-v2-CreateUserAccessTokenRequest) | [CreateUserAccessTokenResponse](#memos-api-v2-CreateUserAccessTokenResponse) | CreateUserAccessToken creates a new access token for a user. |
| DeleteUserAccessToken | [DeleteUserAccessTokenRequest](#memos-api-v2-DeleteUserAccessTokenRequest) | [DeleteUserAccessTokenResponse](#memos-api-v2-DeleteUserAccessTokenResponse) | DeleteUserAccessToken deletes an access token for a user. |
......
This diff is collapsed.
This diff is collapsed.
......@@ -23,8 +23,8 @@ const (
UserService_CreateUser_FullMethodName = "/memos.api.v2.UserService/CreateUser"
UserService_UpdateUser_FullMethodName = "/memos.api.v2.UserService/UpdateUser"
UserService_DeleteUser_FullMethodName = "/memos.api.v2.UserService/DeleteUser"
UserService_GetUserSettings_FullMethodName = "/memos.api.v2.UserService/GetUserSettings"
UserService_UpdateUserSettings_FullMethodName = "/memos.api.v2.UserService/UpdateUserSettings"
UserService_GetUserSetting_FullMethodName = "/memos.api.v2.UserService/GetUserSetting"
UserService_UpdateUserSetting_FullMethodName = "/memos.api.v2.UserService/UpdateUserSetting"
UserService_ListUserAccessTokens_FullMethodName = "/memos.api.v2.UserService/ListUserAccessTokens"
UserService_CreateUserAccessToken_FullMethodName = "/memos.api.v2.UserService/CreateUserAccessToken"
UserService_DeleteUserAccessToken_FullMethodName = "/memos.api.v2.UserService/DeleteUserAccessToken"
......@@ -42,8 +42,8 @@ type UserServiceClient interface {
UpdateUser(ctx context.Context, in *UpdateUserRequest, opts ...grpc.CallOption) (*UpdateUserResponse, error)
// DeleteUser deletes a user.
DeleteUser(ctx context.Context, in *DeleteUserRequest, opts ...grpc.CallOption) (*DeleteUserResponse, error)
GetUserSettings(ctx context.Context, in *GetUserSettingsRequest, opts ...grpc.CallOption) (*GetUserSettingsResponse, error)
UpdateUserSettings(ctx context.Context, in *UpdateUserSettingsRequest, opts ...grpc.CallOption) (*UpdateUserSettingsResponse, error)
GetUserSetting(ctx context.Context, in *GetUserSettingRequest, opts ...grpc.CallOption) (*GetUserSettingResponse, error)
UpdateUserSetting(ctx context.Context, in *UpdateUserSettingRequest, opts ...grpc.CallOption) (*UpdateUserSettingResponse, error)
// ListUserAccessTokens returns a list of access tokens for a user.
ListUserAccessTokens(ctx context.Context, in *ListUserAccessTokensRequest, opts ...grpc.CallOption) (*ListUserAccessTokensResponse, error)
// CreateUserAccessToken creates a new access token for a user.
......@@ -96,18 +96,18 @@ func (c *userServiceClient) DeleteUser(ctx context.Context, in *DeleteUserReques
return out, nil
}
func (c *userServiceClient) GetUserSettings(ctx context.Context, in *GetUserSettingsRequest, opts ...grpc.CallOption) (*GetUserSettingsResponse, error) {
out := new(GetUserSettingsResponse)
err := c.cc.Invoke(ctx, UserService_GetUserSettings_FullMethodName, in, out, opts...)
func (c *userServiceClient) GetUserSetting(ctx context.Context, in *GetUserSettingRequest, opts ...grpc.CallOption) (*GetUserSettingResponse, error) {
out := new(GetUserSettingResponse)
err := c.cc.Invoke(ctx, UserService_GetUserSetting_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *userServiceClient) UpdateUserSettings(ctx context.Context, in *UpdateUserSettingsRequest, opts ...grpc.CallOption) (*UpdateUserSettingsResponse, error) {
out := new(UpdateUserSettingsResponse)
err := c.cc.Invoke(ctx, UserService_UpdateUserSettings_FullMethodName, in, out, opts...)
func (c *userServiceClient) UpdateUserSetting(ctx context.Context, in *UpdateUserSettingRequest, opts ...grpc.CallOption) (*UpdateUserSettingResponse, error) {
out := new(UpdateUserSettingResponse)
err := c.cc.Invoke(ctx, UserService_UpdateUserSetting_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
......@@ -153,8 +153,8 @@ type UserServiceServer interface {
UpdateUser(context.Context, *UpdateUserRequest) (*UpdateUserResponse, error)
// DeleteUser deletes a user.
DeleteUser(context.Context, *DeleteUserRequest) (*DeleteUserResponse, error)
GetUserSettings(context.Context, *GetUserSettingsRequest) (*GetUserSettingsResponse, error)
UpdateUserSettings(context.Context, *UpdateUserSettingsRequest) (*UpdateUserSettingsResponse, error)
GetUserSetting(context.Context, *GetUserSettingRequest) (*GetUserSettingResponse, error)
UpdateUserSetting(context.Context, *UpdateUserSettingRequest) (*UpdateUserSettingResponse, error)
// ListUserAccessTokens returns a list of access tokens for a user.
ListUserAccessTokens(context.Context, *ListUserAccessTokensRequest) (*ListUserAccessTokensResponse, error)
// CreateUserAccessToken creates a new access token for a user.
......@@ -180,11 +180,11 @@ func (UnimplementedUserServiceServer) UpdateUser(context.Context, *UpdateUserReq
func (UnimplementedUserServiceServer) DeleteUser(context.Context, *DeleteUserRequest) (*DeleteUserResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteUser not implemented")
}
func (UnimplementedUserServiceServer) GetUserSettings(context.Context, *GetUserSettingsRequest) (*GetUserSettingsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetUserSettings not implemented")
func (UnimplementedUserServiceServer) GetUserSetting(context.Context, *GetUserSettingRequest) (*GetUserSettingResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetUserSetting not implemented")
}
func (UnimplementedUserServiceServer) UpdateUserSettings(context.Context, *UpdateUserSettingsRequest) (*UpdateUserSettingsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method UpdateUserSettings not implemented")
func (UnimplementedUserServiceServer) UpdateUserSetting(context.Context, *UpdateUserSettingRequest) (*UpdateUserSettingResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method UpdateUserSetting not implemented")
}
func (UnimplementedUserServiceServer) ListUserAccessTokens(context.Context, *ListUserAccessTokensRequest) (*ListUserAccessTokensResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ListUserAccessTokens not implemented")
......@@ -280,38 +280,38 @@ func _UserService_DeleteUser_Handler(srv interface{}, ctx context.Context, dec f
return interceptor(ctx, in, info, handler)
}
func _UserService_GetUserSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetUserSettingsRequest)
func _UserService_GetUserSetting_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetUserSettingRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(UserServiceServer).GetUserSettings(ctx, in)
return srv.(UserServiceServer).GetUserSetting(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: UserService_GetUserSettings_FullMethodName,
FullMethod: UserService_GetUserSetting_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(UserServiceServer).GetUserSettings(ctx, req.(*GetUserSettingsRequest))
return srv.(UserServiceServer).GetUserSetting(ctx, req.(*GetUserSettingRequest))
}
return interceptor(ctx, in, info, handler)
}
func _UserService_UpdateUserSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(UpdateUserSettingsRequest)
func _UserService_UpdateUserSetting_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(UpdateUserSettingRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(UserServiceServer).UpdateUserSettings(ctx, in)
return srv.(UserServiceServer).UpdateUserSetting(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: UserService_UpdateUserSettings_FullMethodName,
FullMethod: UserService_UpdateUserSetting_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(UserServiceServer).UpdateUserSettings(ctx, req.(*UpdateUserSettingsRequest))
return srv.(UserServiceServer).UpdateUserSetting(ctx, req.(*UpdateUserSettingRequest))
}
return interceptor(ctx, in, info, handler)
}
......@@ -394,12 +394,12 @@ var UserService_ServiceDesc = grpc.ServiceDesc{
Handler: _UserService_DeleteUser_Handler,
},
{
MethodName: "GetUserSettings",
Handler: _UserService_GetUserSettings_Handler,
MethodName: "GetUserSetting",
Handler: _UserService_GetUserSetting_Handler,
},
{
MethodName: "UpdateUserSettings",
Handler: _UserService_UpdateUserSettings_Handler,
MethodName: "UpdateUserSetting",
Handler: _UserService_UpdateUserSetting_Handler,
},
{
MethodName: "ListUserAccessTokens",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment