Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
canifa_note
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Vũ Hoàng Anh
canifa_note
Commits
21f18f7c
Commit
21f18f7c
authored
Aug 01, 2024
by
Steven
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: tweak activity service definition
parent
cc91b1e5
Changes
15
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
259 additions
and
233 deletions
+259
-233
apidocs.swagger.yaml
docs/apidocs.swagger.yaml
+58
-56
activity_service.proto
proto/api/v1/activity_service.proto
+14
-12
activity_service.pb.go
proto/gen/api/v1/activity_service.pb.go
+133
-130
activity_service.pb.gw.go
proto/gen/api/v1/activity_service.pb.gw.go
+11
-11
activity_service.go
server/router/api/v1/activity_service.go
+7
-2
resource_name.go
server/router/api/v1/resource_name.go
+13
-0
MemoCommentMessage.tsx
web/src/components/Inbox/MemoCommentMessage.tsx
+2
-2
VersionUpdateMessage.tsx
web/src/components/Inbox/VersionUpdateMessage.tsx
+2
-2
MemoRelatedSettings.tsx
web/src/components/Settings/MemoRelatedSettings.tsx
+2
-2
StorageSection.tsx
web/src/components/Settings/StorageSection.tsx
+2
-2
WorkspaceSection.tsx
web/src/components/Settings/WorkspaceSection.tsx
+3
-3
UpdateAccountDialog.tsx
web/src/components/UpdateAccountDialog.tsx
+2
-2
UpdateCustomizedProfileDialog.tsx
web/src/components/UpdateCustomizedProfileDialog.tsx
+2
-2
resourceName.ts
web/src/store/v1/resourceName.ts
+5
-4
workspaceSetting.ts
web/src/store/v1/workspaceSetting.ts
+3
-3
No files found.
docs/apidocs.swagger.yaml
View file @
21f18f7c
...
@@ -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
:
Get
IdentityProvider gets an identity provider
.
summary
:
Get
User gets a user by name
.
operationId
:
IdentityProviderService_GetIdentityProvid
er
operationId
:
UserService_GetUs
er
responses
:
responses
:
"
200"
:
"
200"
:
description
:
A successful response.
description
:
A successful response.
schema
:
schema
:
$ref
:
'
#/definitions/
apiv1IdentityProvid
er'
$ref
:
'
#/definitions/
v1Us
er'
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:
identityProvid
ers/{id}
Format:
us
ers/{id}
in: path
in: path
required: true
required: true
type: string
type: string
pattern:
identityProvid
ers/[^/]+
pattern:
us
ers/[^/]+
tags
:
tags
:
-
IdentityProvid
erService
-
Us
erService
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
:
Get
Resource returns a resource by name
.
summary
:
Get
IdentityProvider 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:
resource
s/[^/]+
pattern:
identityProvider
s/[^/]+
tags
:
tags
:
-
Resource
Service
-
IdentityProvider
Service
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
:
Get
Memo gets a memo
.
summary
:
Get
Resource 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/v1
Memo
'
$ref
:
'
#/definitions/v1
Resource
'
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:
memo
s/[^/]+
pattern:
resource
s/[^/]+
tags
:
tags
:
-
Memo
Service
-
Resource
Service
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
:
Get
User gets a user by name
.
summary
:
Get
Activity 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/v1
User
'
$ref
:
'
#/definitions/v1
Activity
'
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:
user
s/{id}
Format:
activitie
s/{id}
in: path
in: path
required: true
required: true
type: string
type: string
pattern:
user
s/[^/]+
pattern:
activitie
s/[^/]+
tags
:
tags
:
-
User
Service
-
Activity
Service
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.
...
...
proto/api/v1/activity_service.proto
View file @
21f18f7c
...
@@ -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
;
}
}
proto/gen/api/v1/activity_service.pb.go
View file @
21f18f7c
This diff is collapsed.
Click to expand it.
proto/gen/api/v1/activity_service.pb.gw.go
View file @
21f18f7c
...
@@ -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
(
...
...
server/router/api/v1/activity_service.go
View file @
21f18f7c
...
@@ -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
(),
...
...
server/router/api/v1/resource_name.go
View file @
21f18f7c
...
@@ -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
}
web/src/components/Inbox/MemoCommentMessage.tsx
View file @
21f18f7c
...
@@ -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
;
...
...
web/src/components/Inbox/VersionUpdateMessage.tsx
View file @
21f18f7c
...
@@ -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
);
})();
})();
...
...
web/src/components/Settings/MemoRelatedSettings.tsx
View file @
21f18f7c
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
{
WorkspaceSetting
Prefix
,
useWorkspaceSettingStore
}
from
"@/store/v1"
;
import
{
workspaceSettingName
Prefix
,
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
:
`
${
WorkspaceSetting
Prefix
}${
WorkspaceSettingKey
.
MEMO_RELATED
}
`
,
name
:
`
${
workspaceSettingName
Prefix
}${
WorkspaceSettingKey
.
MEMO_RELATED
}
`
,
memoRelatedSetting
,
memoRelatedSetting
,
});
});
};
};
...
...
web/src/components/Settings/StorageSection.tsx
View file @
21f18f7c
...
@@ -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
{
WorkspaceSetting
Prefix
,
useWorkspaceSettingStore
}
from
"@/store/v1"
;
import
{
workspaceSettingName
Prefix
,
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
:
`
${
WorkspaceSetting
Prefix
}${
WorkspaceSettingKey
.
STORAGE
}
`
,
name
:
`
${
workspaceSettingName
Prefix
}${
WorkspaceSettingKey
.
STORAGE
}
`
,
storageSetting
:
workspaceStorageSetting
,
storageSetting
:
workspaceStorageSetting
,
});
});
toast
.
success
(
"Updated"
);
toast
.
success
(
"Updated"
);
...
...
web/src/components/Settings/WorkspaceSection.tsx
View file @
21f18f7c
...
@@ -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
{
WorkspaceSetting
Prefix
,
useWorkspaceSettingStore
}
from
"@/store/v1"
;
import
{
workspaceSettingName
Prefix
,
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
:
`
${
WorkspaceSetting
Prefix
}${
WorkspaceSettingKey
.
GENERAL
}
`
,
name
:
`
${
workspaceSettingName
Prefix
}${
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
:
`
${
WorkspaceSetting
Prefix
}${
WorkspaceSettingKey
.
GENERAL
}
`
,
name
:
`
${
workspaceSettingName
Prefix
}${
WorkspaceSettingKey
.
GENERAL
}
`
,
generalSetting
:
workspaceGeneralSetting
,
generalSetting
:
workspaceGeneralSetting
,
},
},
});
});
...
...
web/src/components/UpdateAccountDialog.tsx
View file @
21f18f7c
...
@@ -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
{
U
serNamePrefix
,
useUserStore
}
from
"@/store/v1"
;
import
{
u
serNamePrefix
,
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
(
U
serNamePrefix
,
""
),
state
.
username
))
{
if
(
!
isEqual
(
currentUser
.
name
.
replace
(
u
serNamePrefix
,
""
),
state
.
username
))
{
updateMask
.
push
(
"username"
);
updateMask
.
push
(
"username"
);
}
}
if
(
!
isEqual
(
currentUser
.
nickname
,
state
.
nickname
))
{
if
(
!
isEqual
(
currentUser
.
nickname
,
state
.
nickname
))
{
...
...
web/src/components/UpdateCustomizedProfileDialog.tsx
View file @
21f18f7c
...
@@ -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
{
WorkspaceSetting
Prefix
,
useWorkspaceSettingStore
}
from
"@/store/v1"
;
import
{
workspaceSettingName
Prefix
,
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
:
`
${
WorkspaceSetting
Prefix
}${
WorkspaceSettingKey
.
GENERAL
}
`
,
name
:
`
${
workspaceSettingName
Prefix
}${
WorkspaceSettingKey
.
GENERAL
}
`
,
generalSetting
:
{
generalSetting
:
{
...
workspaceGeneralSetting
,
...
workspaceGeneralSetting
,
customProfile
:
customProfile
,
customProfile
:
customProfile
,
...
...
web/src/store/v1/resourceName.ts
View file @
21f18f7c
export
const
WorkspaceSetting
Prefix
=
"settings/"
;
export
const
workspaceSettingName
Prefix
=
"settings/"
;
export
const
U
serNamePrefix
=
"users/"
;
export
const
u
serNamePrefix
=
"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
(
I
dentityProviderNamePrefix
).
pop
()
||
""
,
10
);
return
parseInt
(
name
.
split
(
i
dentityProviderNamePrefix
).
pop
()
||
""
,
10
);
};
};
web/src/store/v1/workspaceSetting.ts
View file @
21f18f7c
...
@@ -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
{
WorkspaceSetting
Prefix
}
from
"./resourceName"
;
import
{
workspaceSettingName
Prefix
}
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
:
`
${
WorkspaceSetting
Prefix
}${
key
}
`
});
const
setting
=
await
workspaceSettingServiceClient
.
getWorkspaceSetting
({
name
:
`
${
workspaceSettingName
Prefix
}${
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
[
`
${
WorkspaceSetting
Prefix
}${
key
}
`
]
||
WorkspaceSetting
.
fromPartial
({});
return
get
().
workspaceSettingByName
[
`
${
workspaceSettingName
Prefix
}${
key
}
`
]
||
WorkspaceSetting
.
fromPartial
({});
},
},
setWorkspaceSetting
:
async
(
setting
:
WorkspaceSetting
)
=>
{
setWorkspaceSetting
:
async
(
setting
:
WorkspaceSetting
)
=>
{
await
workspaceSettingServiceClient
.
setWorkspaceSetting
({
setting
});
await
workspaceSettingServiceClient
.
setWorkspaceSetting
({
setting
});
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment