Commit 21f18f7c authored by Steven's avatar Steven

chore: tweak activity service definition

parent cc91b1e5
...@@ -19,28 +19,6 @@ consumes: ...@@ -19,28 +19,6 @@ consumes:
produces: produces:
- application/json - application/json
paths: paths:
/api/v1/activities/{id}:
get:
summary: GetActivity returns the activity with the given id.
operationId: ActivityService_GetActivity
responses:
"200":
description: A successful response.
schema:
$ref: '#/definitions/v1Activity'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: id
description: The system-generated unique identifier for the activity.
in: path
required: true
type: integer
format: int32
tags:
- ActivityService
/api/v1/auth/signin: /api/v1/auth/signin:
post: post:
summary: SignIn signs in the user with the given username and password. summary: SignIn signs in the user with the given username and password.
...@@ -925,13 +903,13 @@ paths: ...@@ -925,13 +903,13 @@ paths:
- MemoService - MemoService
/api/v1/{name_1}: /api/v1/{name_1}:
get: get:
summary: GetIdentityProvider gets an identity provider. summary: GetUser gets a user by name.
operationId: IdentityProviderService_GetIdentityProvider operationId: UserService_GetUser
responses: responses:
"200": "200":
description: A successful response. description: A successful response.
schema: schema:
$ref: '#/definitions/apiv1IdentityProvider' $ref: '#/definitions/v1User'
default: default:
description: An unexpected error response. description: An unexpected error response.
schema: schema:
...@@ -939,14 +917,14 @@ paths: ...@@ -939,14 +917,14 @@ paths:
parameters: parameters:
- name: name_1 - name: name_1
description: |- description: |-
The name of the identityProvider to get. The name of the user.
Format: identityProviders/{id} Format: users/{id}
in: path in: path
required: true required: true
type: string type: string
pattern: identityProviders/[^/]+ pattern: users/[^/]+
tags: tags:
- IdentityProviderService - UserService
delete: delete:
summary: DeleteIdentityProvider deletes an identity provider. summary: DeleteIdentityProvider deletes an identity provider.
operationId: IdentityProviderService_DeleteIdentityProvider operationId: IdentityProviderService_DeleteIdentityProvider
...@@ -973,13 +951,13 @@ paths: ...@@ -973,13 +951,13 @@ paths:
- IdentityProviderService - IdentityProviderService
/api/v1/{name_2}: /api/v1/{name_2}:
get: get:
summary: GetResource returns a resource by name. summary: GetIdentityProvider gets an identity provider.
operationId: ResourceService_GetResource operationId: IdentityProviderService_GetIdentityProvider
responses: responses:
"200": "200":
description: A successful response. description: A successful response.
schema: schema:
$ref: '#/definitions/v1Resource' $ref: '#/definitions/apiv1IdentityProvider'
default: default:
description: An unexpected error response. description: An unexpected error response.
schema: schema:
...@@ -987,15 +965,14 @@ paths: ...@@ -987,15 +965,14 @@ paths:
parameters: parameters:
- name: name_2 - name: name_2
description: |- description: |-
The name of the resource. The name of the identityProvider to get.
Format: resources/{id} Format: identityProviders/{id}
id is the system generated unique identifier.
in: path in: path
required: true required: true
type: string type: string
pattern: resources/[^/]+ pattern: identityProviders/[^/]+
tags: tags:
- ResourceService - IdentityProviderService
delete: delete:
summary: DeleteInbox deletes an inbox. summary: DeleteInbox deletes an inbox.
operationId: InboxService_DeleteInbox operationId: InboxService_DeleteInbox
...@@ -1022,13 +999,13 @@ paths: ...@@ -1022,13 +999,13 @@ paths:
- InboxService - InboxService
/api/v1/{name_3}: /api/v1/{name_3}:
get: get:
summary: GetMemo gets a memo. summary: GetResource returns a resource by name.
operationId: MemoService_GetMemo operationId: ResourceService_GetResource
responses: responses:
"200": "200":
description: A successful response. description: A successful response.
schema: schema:
$ref: '#/definitions/v1Memo' $ref: '#/definitions/v1Resource'
default: default:
description: An unexpected error response. description: An unexpected error response.
schema: schema:
...@@ -1036,14 +1013,15 @@ paths: ...@@ -1036,14 +1013,15 @@ paths:
parameters: parameters:
- name: name_3 - name: name_3
description: |- description: |-
The name of the memo. The name of the resource.
Format: memos/{id} Format: resources/{id}
id is the system generated unique identifier.
in: path in: path
required: true required: true
type: string type: string
pattern: memos/[^/]+ pattern: resources/[^/]+
tags: tags:
- MemoService - ResourceService
delete: delete:
summary: DeleteResource deletes a resource by name. summary: DeleteResource deletes a resource by name.
operationId: ResourceService_DeleteResource operationId: ResourceService_DeleteResource
...@@ -1070,6 +1048,29 @@ paths: ...@@ -1070,6 +1048,29 @@ paths:
tags: tags:
- ResourceService - ResourceService
/api/v1/{name_4}: /api/v1/{name_4}:
get:
summary: GetMemo gets a memo.
operationId: MemoService_GetMemo
responses:
"200":
description: A successful response.
schema:
$ref: '#/definitions/v1Memo'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name_4
description: |-
The name of the memo.
Format: memos/{id}
in: path
required: true
type: string
pattern: memos/[^/]+
tags:
- MemoService
delete: delete:
summary: DeleteMemo deletes a memo. summary: DeleteMemo deletes a memo.
operationId: MemoService_DeleteMemo operationId: MemoService_DeleteMemo
...@@ -1096,13 +1097,13 @@ paths: ...@@ -1096,13 +1097,13 @@ paths:
- MemoService - MemoService
/api/v1/{name}: /api/v1/{name}:
get: get:
summary: GetUser gets a user by name. summary: GetActivity returns the activity with the given id.
operationId: UserService_GetUser operationId: ActivityService_GetActivity
responses: responses:
"200": "200":
description: A successful response. description: A successful response.
schema: schema:
$ref: '#/definitions/v1User' $ref: '#/definitions/v1Activity'
default: default:
description: An unexpected error response. description: An unexpected error response.
schema: schema:
...@@ -1110,14 +1111,14 @@ paths: ...@@ -1110,14 +1111,14 @@ paths:
parameters: parameters:
- name: name - name: name
description: |- description: |-
The name of the user. The name of the activity.
Format: users/{id} Format: activities/{id}
in: path in: path
required: true required: true
type: string type: string
pattern: users/[^/]+ pattern: activities/[^/]+
tags: tags:
- UserService - ActivityService
delete: delete:
summary: DeleteUser deletes a user. summary: DeleteUser deletes a user.
operationId: UserService_DeleteUser operationId: UserService_DeleteUser
...@@ -2277,14 +2278,15 @@ definitions: ...@@ -2277,14 +2278,15 @@ definitions:
v1Activity: v1Activity:
type: object type: object
properties: properties:
id: name:
type: integer type: string
format: int32 title: |-
description: The system-generated unique identifier for the activity. The name of the activity.
Format: activities/{id}
creatorId: creatorId:
type: integer type: integer
format: int32 format: int32
description: The system-generated unique identifier for the user who created the activity. description: The uid of the user who created the activity.
type: type:
type: string type: string
description: The type of the activity. description: The type of the activity.
......
...@@ -12,15 +12,16 @@ option go_package = "gen/api/v1"; ...@@ -12,15 +12,16 @@ option go_package = "gen/api/v1";
service ActivityService { service ActivityService {
// GetActivity returns the activity with the given id. // GetActivity returns the activity with the given id.
rpc GetActivity(GetActivityRequest) returns (Activity) { rpc GetActivity(GetActivityRequest) returns (Activity) {
option (google.api.http) = {get: "/api/v1/activities/{id}"}; option (google.api.http) = {get: "/api/v1/{name=activities/*}"};
option (google.api.method_signature) = "id"; option (google.api.method_signature) = "name";
} }
} }
message Activity { message Activity {
// The system-generated unique identifier for the activity. // The name of the activity.
int32 id = 1; // Format: activities/{id}
// The system-generated unique identifier for the user who created the activity. string name = 1;
// The uid of the user who created the activity.
int32 creator_id = 2; int32 creator_id = 2;
// The type of the activity. // The type of the activity.
string type = 3; string type = 3;
...@@ -32,6 +33,11 @@ message Activity { ...@@ -32,6 +33,11 @@ message Activity {
ActivityPayload payload = 6; ActivityPayload payload = 6;
} }
message ActivityPayload {
ActivityMemoCommentPayload memo_comment = 1;
ActivityVersionUpdatePayload version_update = 2;
}
// ActivityMemoCommentPayload represents the payload of a memo comment activity. // ActivityMemoCommentPayload represents the payload of a memo comment activity.
message ActivityMemoCommentPayload { message ActivityMemoCommentPayload {
// The memo id of comment. // The memo id of comment.
...@@ -45,12 +51,8 @@ message ActivityVersionUpdatePayload { ...@@ -45,12 +51,8 @@ message ActivityVersionUpdatePayload {
string version = 1; string version = 1;
} }
message ActivityPayload {
ActivityMemoCommentPayload memo_comment = 1;
ActivityVersionUpdatePayload version_update = 2;
}
message GetActivityRequest { message GetActivityRequest {
// The system-generated unique identifier for the activity. // The name of the activity.
int32 id = 1; // Format: activities/{id}
string name = 1;
} }
This diff is collapsed.
...@@ -42,14 +42,14 @@ func request_ActivityService_GetActivity_0(ctx context.Context, marshaler runtim ...@@ -42,14 +42,14 @@ func request_ActivityService_GetActivity_0(ctx context.Context, marshaler runtim
_ = err _ = err
) )
val, ok = pathParams["id"] val, ok = pathParams["name"]
if !ok { if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name")
} }
protoReq.Id, err = runtime.Int32(val) protoReq.Name, err = runtime.String(val)
if err != nil { if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err)
} }
msg, err := client.GetActivity(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) msg, err := client.GetActivity(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
...@@ -68,14 +68,14 @@ func local_request_ActivityService_GetActivity_0(ctx context.Context, marshaler ...@@ -68,14 +68,14 @@ func local_request_ActivityService_GetActivity_0(ctx context.Context, marshaler
_ = err _ = err
) )
val, ok = pathParams["id"] val, ok = pathParams["name"]
if !ok { if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name")
} }
protoReq.Id, err = runtime.Int32(val) protoReq.Name, err = runtime.String(val)
if err != nil { if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err)
} }
msg, err := server.GetActivity(ctx, &protoReq) msg, err := server.GetActivity(ctx, &protoReq)
...@@ -98,7 +98,7 @@ func RegisterActivityServiceHandlerServer(ctx context.Context, mux *runtime.Serv ...@@ -98,7 +98,7 @@ func RegisterActivityServiceHandlerServer(ctx context.Context, mux *runtime.Serv
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
var err error var err error
var annotatedContext context.Context var annotatedContext context.Context
annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/memos.api.v1.ActivityService/GetActivity", runtime.WithHTTPPathPattern("/api/v1/activities/{id}")) annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/memos.api.v1.ActivityService/GetActivity", runtime.WithHTTPPathPattern("/api/v1/{name=activities/*}"))
if err != nil { if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return return
...@@ -162,7 +162,7 @@ func RegisterActivityServiceHandlerClient(ctx context.Context, mux *runtime.Serv ...@@ -162,7 +162,7 @@ func RegisterActivityServiceHandlerClient(ctx context.Context, mux *runtime.Serv
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
var err error var err error
var annotatedContext context.Context var annotatedContext context.Context
annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/memos.api.v1.ActivityService/GetActivity", runtime.WithHTTPPathPattern("/api/v1/activities/{id}")) annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/memos.api.v1.ActivityService/GetActivity", runtime.WithHTTPPathPattern("/api/v1/{name=activities/*}"))
if err != nil { if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return return
...@@ -182,7 +182,7 @@ func RegisterActivityServiceHandlerClient(ctx context.Context, mux *runtime.Serv ...@@ -182,7 +182,7 @@ func RegisterActivityServiceHandlerClient(ctx context.Context, mux *runtime.Serv
} }
var ( var (
pattern_ActivityService_GetActivity_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "activities", "id"}, "")) pattern_ActivityService_GetActivity_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 2, 5, 3}, []string{"api", "v1", "activities", "name"}, ""))
) )
var ( var (
......
...@@ -2,6 +2,7 @@ package v1 ...@@ -2,6 +2,7 @@ package v1
import ( import (
"context" "context"
"fmt"
"time" "time"
"google.golang.org/grpc/codes" "google.golang.org/grpc/codes"
...@@ -14,8 +15,12 @@ import ( ...@@ -14,8 +15,12 @@ import (
) )
func (s *APIV1Service) GetActivity(ctx context.Context, request *v1pb.GetActivityRequest) (*v1pb.Activity, error) { func (s *APIV1Service) GetActivity(ctx context.Context, request *v1pb.GetActivityRequest) (*v1pb.Activity, error) {
activityID, err := ExtractActivityIDFromName(request.Name)
if err != nil {
return nil, status.Errorf(codes.InvalidArgument, "invalid activity name: %v", err)
}
activity, err := s.Store.GetActivity(ctx, &store.FindActivity{ activity, err := s.Store.GetActivity(ctx, &store.FindActivity{
ID: &request.Id, ID: &activityID,
}) })
if err != nil { if err != nil {
return nil, status.Errorf(codes.Internal, "failed to get activity: %v", err) return nil, status.Errorf(codes.Internal, "failed to get activity: %v", err)
...@@ -30,7 +35,7 @@ func (s *APIV1Service) GetActivity(ctx context.Context, request *v1pb.GetActivit ...@@ -30,7 +35,7 @@ func (s *APIV1Service) GetActivity(ctx context.Context, request *v1pb.GetActivit
func (*APIV1Service) convertActivityFromStore(_ context.Context, activity *store.Activity) (*v1pb.Activity, error) { func (*APIV1Service) convertActivityFromStore(_ context.Context, activity *store.Activity) (*v1pb.Activity, error) {
return &v1pb.Activity{ return &v1pb.Activity{
Id: activity.ID, Name: fmt.Sprintf("%s%d", ActivityNamePrefix, activity.ID),
CreatorId: activity.CreatorID, CreatorId: activity.CreatorID,
Type: activity.Type.String(), Type: activity.Type.String(),
Level: activity.Level.String(), Level: activity.Level.String(),
......
...@@ -17,6 +17,7 @@ const ( ...@@ -17,6 +17,7 @@ const (
InboxNamePrefix = "inboxes/" InboxNamePrefix = "inboxes/"
StorageNamePrefix = "storages/" StorageNamePrefix = "storages/"
IdentityProviderNamePrefix = "identityProviders/" IdentityProviderNamePrefix = "identityProviders/"
ActivityNamePrefix = "activities/"
) )
// GetNameParentTokens returns the tokens from a resource name. // GetNameParentTokens returns the tokens from a resource name.
...@@ -123,3 +124,15 @@ func ExtractIdentityProviderIDFromName(name string) (int32, error) { ...@@ -123,3 +124,15 @@ func ExtractIdentityProviderIDFromName(name string) (int32, error) {
} }
return id, nil return id, nil
} }
func ExtractActivityIDFromName(name string) (int32, error) {
tokens, err := GetNameParentTokens(name, ActivityNamePrefix)
if err != nil {
return 0, err
}
id, err := util.ConvertStringToInt32(tokens[0])
if err != nil {
return 0, errors.Errorf("invalid activity ID %q", tokens[0])
}
return id, nil
}
...@@ -4,7 +4,7 @@ import { useEffect, useState } from "react"; ...@@ -4,7 +4,7 @@ import { useEffect, useState } from "react";
import toast from "react-hot-toast"; import toast from "react-hot-toast";
import { activityServiceClient } from "@/grpcweb"; import { activityServiceClient } from "@/grpcweb";
import useNavigateTo from "@/hooks/useNavigateTo"; import useNavigateTo from "@/hooks/useNavigateTo";
import { MemoNamePrefix, useInboxStore, useMemoStore, useUserStore } from "@/store/v1"; import { activityNamePrefix, MemoNamePrefix, useInboxStore, useMemoStore, useUserStore } from "@/store/v1";
import { Inbox, Inbox_Status } from "@/types/proto/api/v1/inbox_service"; import { Inbox, Inbox_Status } from "@/types/proto/api/v1/inbox_service";
import { Memo } from "@/types/proto/api/v1/memo_service"; import { Memo } from "@/types/proto/api/v1/memo_service";
import { User } from "@/types/proto/api/v1/user_service"; import { User } from "@/types/proto/api/v1/user_service";
...@@ -31,7 +31,7 @@ const MemoCommentMessage = ({ inbox }: Props) => { ...@@ -31,7 +31,7 @@ const MemoCommentMessage = ({ inbox }: Props) => {
(async () => { (async () => {
const activity = await activityServiceClient.getActivity({ const activity = await activityServiceClient.getActivity({
id: inbox.activityId, name: `${activityNamePrefix}${inbox.activityId}`,
}); });
if (activity.payload?.memoComment) { if (activity.payload?.memoComment) {
const memoCommentPayload = activity.payload.memoComment; const memoCommentPayload = activity.payload.memoComment;
......
...@@ -3,7 +3,7 @@ import clsx from "clsx"; ...@@ -3,7 +3,7 @@ import clsx from "clsx";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import toast from "react-hot-toast"; import toast from "react-hot-toast";
import { activityServiceClient } from "@/grpcweb"; import { activityServiceClient } from "@/grpcweb";
import { useInboxStore } from "@/store/v1"; import { activityNamePrefix, useInboxStore } from "@/store/v1";
import { Activity } from "@/types/proto/api/v1/activity_service"; import { Activity } from "@/types/proto/api/v1/activity_service";
import { Inbox, Inbox_Status } from "@/types/proto/api/v1/inbox_service"; import { Inbox, Inbox_Status } from "@/types/proto/api/v1/inbox_service";
import { useTranslate } from "@/utils/i18n"; import { useTranslate } from "@/utils/i18n";
...@@ -25,7 +25,7 @@ const VersionUpdateMessage = ({ inbox }: Props) => { ...@@ -25,7 +25,7 @@ const VersionUpdateMessage = ({ inbox }: Props) => {
(async () => { (async () => {
const activity = await activityServiceClient.getActivity({ const activity = await activityServiceClient.getActivity({
id: inbox.activityId, name: `${activityNamePrefix}${inbox.activityId}`,
}); });
setActivity(activity); setActivity(activity);
})(); })();
......
import { Button, Input, Switch } from "@mui/joy"; import { Button, Input, Switch } from "@mui/joy";
import { isEqual } from "lodash-es"; import { isEqual } from "lodash-es";
import { useState } from "react"; import { useState } from "react";
import { WorkspaceSettingPrefix, useWorkspaceSettingStore } from "@/store/v1"; import { workspaceSettingNamePrefix, useWorkspaceSettingStore } from "@/store/v1";
import { WorkspaceMemoRelatedSetting } from "@/types/proto/api/v1/workspace_setting_service"; import { WorkspaceMemoRelatedSetting } from "@/types/proto/api/v1/workspace_setting_service";
import { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting"; import { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting";
import { useTranslate } from "@/utils/i18n"; import { useTranslate } from "@/utils/i18n";
...@@ -24,7 +24,7 @@ const MemoRelatedSettings = () => { ...@@ -24,7 +24,7 @@ const MemoRelatedSettings = () => {
const updateSetting = async () => { const updateSetting = async () => {
await workspaceSettingStore.setWorkspaceSetting({ await workspaceSettingStore.setWorkspaceSetting({
name: `${WorkspaceSettingPrefix}${WorkspaceSettingKey.MEMO_RELATED}`, name: `${workspaceSettingNamePrefix}${WorkspaceSettingKey.MEMO_RELATED}`,
memoRelatedSetting, memoRelatedSetting,
}); });
}; };
......
...@@ -3,7 +3,7 @@ import { isEqual } from "lodash-es"; ...@@ -3,7 +3,7 @@ import { isEqual } from "lodash-es";
import { useMemo, useState } from "react"; import { useMemo, useState } from "react";
import { toast } from "react-hot-toast"; import { toast } from "react-hot-toast";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import { WorkspaceSettingPrefix, useWorkspaceSettingStore } from "@/store/v1"; import { workspaceSettingNamePrefix, useWorkspaceSettingStore } from "@/store/v1";
import { import {
WorkspaceStorageSetting, WorkspaceStorageSetting,
WorkspaceStorageSetting_S3Config, WorkspaceStorageSetting_S3Config,
...@@ -107,7 +107,7 @@ const StorageSection = () => { ...@@ -107,7 +107,7 @@ const StorageSection = () => {
const saveWorkspaceStorageSetting = async () => { const saveWorkspaceStorageSetting = async () => {
await workspaceSettingStore.setWorkspaceSetting({ await workspaceSettingStore.setWorkspaceSetting({
name: `${WorkspaceSettingPrefix}${WorkspaceSettingKey.STORAGE}`, name: `${workspaceSettingNamePrefix}${WorkspaceSettingKey.STORAGE}`,
storageSetting: workspaceStorageSetting, storageSetting: workspaceStorageSetting,
}); });
toast.success("Updated"); toast.success("Updated");
......
...@@ -3,7 +3,7 @@ import { useState } from "react"; ...@@ -3,7 +3,7 @@ import { useState } from "react";
import { toast } from "react-hot-toast"; import { toast } from "react-hot-toast";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import { workspaceSettingServiceClient } from "@/grpcweb"; import { workspaceSettingServiceClient } from "@/grpcweb";
import { WorkspaceSettingPrefix, useWorkspaceSettingStore } from "@/store/v1"; import { workspaceSettingNamePrefix, useWorkspaceSettingStore } from "@/store/v1";
import { WorkspaceGeneralSetting } from "@/types/proto/api/v1/workspace_setting_service"; import { WorkspaceGeneralSetting } from "@/types/proto/api/v1/workspace_setting_service";
import { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting"; import { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting";
import { useTranslate } from "@/utils/i18n"; import { useTranslate } from "@/utils/i18n";
...@@ -29,7 +29,7 @@ const WorkspaceSection = () => { ...@@ -29,7 +29,7 @@ const WorkspaceSection = () => {
try { try {
await workspaceSettingServiceClient.setWorkspaceSetting({ await workspaceSettingServiceClient.setWorkspaceSetting({
setting: { setting: {
name: `${WorkspaceSettingPrefix}${WorkspaceSettingKey.GENERAL}`, name: `${workspaceSettingNamePrefix}${WorkspaceSettingKey.GENERAL}`,
generalSetting: workspaceGeneralSetting, generalSetting: workspaceGeneralSetting,
}, },
}); });
...@@ -49,7 +49,7 @@ const WorkspaceSection = () => { ...@@ -49,7 +49,7 @@ const WorkspaceSection = () => {
try { try {
await workspaceSettingServiceClient.setWorkspaceSetting({ await workspaceSettingServiceClient.setWorkspaceSetting({
setting: { setting: {
name: `${WorkspaceSettingPrefix}${WorkspaceSettingKey.GENERAL}`, name: `${workspaceSettingNamePrefix}${WorkspaceSettingKey.GENERAL}`,
generalSetting: workspaceGeneralSetting, generalSetting: workspaceGeneralSetting,
}, },
}); });
......
...@@ -4,7 +4,7 @@ import { useState } from "react"; ...@@ -4,7 +4,7 @@ import { useState } from "react";
import { toast } from "react-hot-toast"; import { toast } from "react-hot-toast";
import { convertFileToBase64 } from "@/helpers/utils"; import { convertFileToBase64 } from "@/helpers/utils";
import useCurrentUser from "@/hooks/useCurrentUser"; import useCurrentUser from "@/hooks/useCurrentUser";
import { UserNamePrefix, useUserStore } from "@/store/v1"; import { userNamePrefix, useUserStore } from "@/store/v1";
import { User as UserPb } from "@/types/proto/api/v1/user_service"; import { User as UserPb } from "@/types/proto/api/v1/user_service";
import { useTranslate } from "@/utils/i18n"; import { useTranslate } from "@/utils/i18n";
import { generateDialog } from "./Dialog"; import { generateDialog } from "./Dialog";
...@@ -104,7 +104,7 @@ const UpdateAccountDialog: React.FC<Props> = ({ destroy }: Props) => { ...@@ -104,7 +104,7 @@ const UpdateAccountDialog: React.FC<Props> = ({ destroy }: Props) => {
try { try {
const updateMask = []; const updateMask = [];
if (!isEqual(currentUser.name.replace(UserNamePrefix, ""), state.username)) { if (!isEqual(currentUser.name.replace(userNamePrefix, ""), state.username)) {
updateMask.push("username"); updateMask.push("username");
} }
if (!isEqual(currentUser.nickname, state.nickname)) { if (!isEqual(currentUser.nickname, state.nickname)) {
......
...@@ -2,7 +2,7 @@ import { Button, IconButton, Input } from "@mui/joy"; ...@@ -2,7 +2,7 @@ import { Button, IconButton, Input } from "@mui/joy";
import Textarea from "@mui/joy/Textarea/Textarea"; import Textarea from "@mui/joy/Textarea/Textarea";
import { useState } from "react"; import { useState } from "react";
import { toast } from "react-hot-toast"; import { toast } from "react-hot-toast";
import { WorkspaceSettingPrefix, useWorkspaceSettingStore } from "@/store/v1"; import { workspaceSettingNamePrefix, useWorkspaceSettingStore } from "@/store/v1";
import { WorkspaceCustomProfile, WorkspaceGeneralSetting } from "@/types/proto/api/v1/workspace_setting_service"; import { WorkspaceCustomProfile, WorkspaceGeneralSetting } from "@/types/proto/api/v1/workspace_setting_service";
import { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting"; import { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting";
import { useTranslate } from "@/utils/i18n"; import { useTranslate } from "@/utils/i18n";
...@@ -84,7 +84,7 @@ const UpdateCustomizedProfileDialog: React.FC<Props> = ({ destroy }: Props) => { ...@@ -84,7 +84,7 @@ const UpdateCustomizedProfileDialog: React.FC<Props> = ({ destroy }: Props) => {
try { try {
await workspaceSettingStore.setWorkspaceSetting({ await workspaceSettingStore.setWorkspaceSetting({
name: `${WorkspaceSettingPrefix}${WorkspaceSettingKey.GENERAL}`, name: `${workspaceSettingNamePrefix}${WorkspaceSettingKey.GENERAL}`,
generalSetting: { generalSetting: {
...workspaceGeneralSetting, ...workspaceGeneralSetting,
customProfile: customProfile, customProfile: customProfile,
......
export const WorkspaceSettingPrefix = "settings/"; export const workspaceSettingNamePrefix = "settings/";
export const UserNamePrefix = "users/"; export const userNamePrefix = "users/";
export const MemoNamePrefix = "memos/"; export const MemoNamePrefix = "memos/";
export const IdentityProviderNamePrefix = "identityProviders/"; export const identityProviderNamePrefix = "identityProviders/";
export const activityNamePrefix = "activities/";
export const extractMemoIdFromName = (name: string) => { export const extractMemoIdFromName = (name: string) => {
return parseInt(name.split(MemoNamePrefix).pop() || "", 10); return parseInt(name.split(MemoNamePrefix).pop() || "", 10);
}; };
export const extractIdentityProviderIdFromName = (name: string) => { export const extractIdentityProviderIdFromName = (name: string) => {
return parseInt(name.split(IdentityProviderNamePrefix).pop() || "", 10); return parseInt(name.split(identityProviderNamePrefix).pop() || "", 10);
}; };
...@@ -3,7 +3,7 @@ import { combine } from "zustand/middleware"; ...@@ -3,7 +3,7 @@ import { combine } from "zustand/middleware";
import { workspaceSettingServiceClient } from "@/grpcweb"; import { workspaceSettingServiceClient } from "@/grpcweb";
import { WorkspaceSetting } from "@/types/proto/api/v1/workspace_setting_service"; import { WorkspaceSetting } from "@/types/proto/api/v1/workspace_setting_service";
import { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting"; import { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting";
import { WorkspaceSettingPrefix } from "./resourceName"; import { workspaceSettingNamePrefix } from "./resourceName";
interface State { interface State {
workspaceSettingByName: Record<string, WorkspaceSetting>; workspaceSettingByName: Record<string, WorkspaceSetting>;
...@@ -19,11 +19,11 @@ export const useWorkspaceSettingStore = create( ...@@ -19,11 +19,11 @@ export const useWorkspaceSettingStore = create(
return get(); return get();
}, },
fetchWorkspaceSetting: async (key: WorkspaceSettingKey) => { fetchWorkspaceSetting: async (key: WorkspaceSettingKey) => {
const setting = await workspaceSettingServiceClient.getWorkspaceSetting({ name: `${WorkspaceSettingPrefix}${key}` }); const setting = await workspaceSettingServiceClient.getWorkspaceSetting({ name: `${workspaceSettingNamePrefix}${key}` });
set({ workspaceSettingByName: { ...get().workspaceSettingByName, [setting.name]: setting } }); set({ workspaceSettingByName: { ...get().workspaceSettingByName, [setting.name]: setting } });
}, },
getWorkspaceSettingByKey: (key: WorkspaceSettingKey): WorkspaceSetting => { getWorkspaceSettingByKey: (key: WorkspaceSettingKey): WorkspaceSetting => {
return get().workspaceSettingByName[`${WorkspaceSettingPrefix}${key}`] || WorkspaceSetting.fromPartial({}); return get().workspaceSettingByName[`${workspaceSettingNamePrefix}${key}`] || WorkspaceSetting.fromPartial({});
}, },
setWorkspaceSetting: async (setting: WorkspaceSetting) => { setWorkspaceSetting: async (setting: WorkspaceSetting) => {
await workspaceSettingServiceClient.setWorkspaceSetting({ setting }); await workspaceSettingServiceClient.setWorkspaceSetting({ setting });
......
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