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
0dcd0904
Commit
0dcd0904
authored
Feb 01, 2025
by
johnnyjoy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactor: remove resource uid
parent
97d12db3
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
179 additions
and
411 deletions
+179
-411
resource_service.proto
proto/api/v1/resource_service.proto
+3
-14
resource_service.pb.go
proto/gen/api/v1/resource_service.pb.go
+142
-210
resource_service.pb.gw.go
proto/gen/api/v1/resource_service.pb.gw.go
+0
-75
resource_service_grpc.pb.go
proto/gen/api/v1/resource_service_grpc.pb.go
+0
-40
apidocs.swagger.yaml
proto/gen/apidocs.swagger.yaml
+2
-29
acl_config.go
server/router/api/v1/acl_config.go
+0
-2
memo_resource_service.go
server/router/api/v1/memo_resource_service.go
+11
-3
memo_service_converter.go
server/router/api/v1/memo_service_converter.go
+0
-1
resource_name.go
server/router/api/v1/resource_name.go
+4
-7
resource_service.go
server/router/api/v1/resource_service.go
+13
-26
EmbeddedResource.tsx
...mponents/MemoContent/EmbeddedContent/EmbeddedResource.tsx
+1
-1
resource.ts
web/src/store/v1/resource.ts
+3
-3
No files found.
proto/api/v1/resource_service.proto
View file @
0dcd0904
...
...
@@ -29,11 +29,6 @@ service ResourceService {
option
(
google.api.http
)
=
{
get
:
"/api/v1/{name=resources/*}"
};
option
(
google.api.method_signature
)
=
"name"
;
}
// GetResourceByUid returns a resource by uid.
rpc
GetResourceByUid
(
GetResourceByUidRequest
)
returns
(
Resource
)
{
option
(
google.api.http
)
=
{
get
:
"/api/v1/resources:by-uid/{uid}"
};
option
(
google.api.method_signature
)
=
"uid"
;
}
// GetResourceBinary returns a resource binary by name.
rpc
GetResourceBinary
(
GetResourceBinaryRequest
)
returns
(
google.api.HttpBody
)
{
option
(
google.api.http
)
=
{
get
:
"/file/{name=resources/*}/{filename}"
};
...
...
@@ -55,13 +50,12 @@ service ResourceService {
}
message
Resource
{
reserved
2
;
// The name of the resource.
// Format: resources/{
id}, id is the system generated auto-incremented
id.
// Format: resources/{
resource}, resource is the user defined if or uu
id.
string
name
=
1
;
// The user defined id of the resource.
string
uid
=
2
;
google.protobuf.Timestamp
create_time
=
3
[(
google.api.field_behavior
)
=
OUTPUT_ONLY
];
string
filename
=
4
;
...
...
@@ -93,11 +87,6 @@ message GetResourceRequest {
string
name
=
1
;
}
message
GetResourceByUidRequest
{
// The uid of the resource.
string
uid
=
1
;
}
message
GetResourceBinaryRequest
{
// The name of the resource.
string
name
=
1
;
...
...
proto/gen/api/v1/resource_service.pb.go
View file @
0dcd0904
...
...
@@ -29,10 +29,8 @@ const (
type
Resource
struct
{
state
protoimpl
.
MessageState
`protogen:"open.v1"`
// The name of the resource.
// Format: resources/{id}, id is the system generated auto-incremented id.
Name
string
`protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// The user defined id of the resource.
Uid
string
`protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"`
// Format: resources/{resource}, resource is the user defined if or uuid.
Name
string
`protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
CreateTime
*
timestamppb
.
Timestamp
`protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
Filename
string
`protobuf:"bytes,4,opt,name=filename,proto3" json:"filename,omitempty"`
Content
[]
byte
`protobuf:"bytes,5,opt,name=content,proto3" json:"content,omitempty"`
...
...
@@ -82,13 +80,6 @@ func (x *Resource) GetName() string {
return
""
}
func
(
x
*
Resource
)
GetUid
()
string
{
if
x
!=
nil
{
return
x
.
Uid
}
return
""
}
func
(
x
*
Resource
)
GetCreateTime
()
*
timestamppb
.
Timestamp
{
if
x
!=
nil
{
return
x
.
CreateTime
...
...
@@ -307,51 +298,6 @@ func (x *GetResourceRequest) GetName() string {
return
""
}
type
GetResourceByUidRequest
struct
{
state
protoimpl
.
MessageState
`protogen:"open.v1"`
// The uid of the resource.
Uid
string
`protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"`
unknownFields
protoimpl
.
UnknownFields
sizeCache
protoimpl
.
SizeCache
}
func
(
x
*
GetResourceByUidRequest
)
Reset
()
{
*
x
=
GetResourceByUidRequest
{}
mi
:=
&
file_api_v1_resource_service_proto_msgTypes
[
5
]
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
.
StoreMessageInfo
(
mi
)
}
func
(
x
*
GetResourceByUidRequest
)
String
()
string
{
return
protoimpl
.
X
.
MessageStringOf
(
x
)
}
func
(
*
GetResourceByUidRequest
)
ProtoMessage
()
{}
func
(
x
*
GetResourceByUidRequest
)
ProtoReflect
()
protoreflect
.
Message
{
mi
:=
&
file_api_v1_resource_service_proto_msgTypes
[
5
]
if
x
!=
nil
{
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
if
ms
.
LoadMessageInfo
()
==
nil
{
ms
.
StoreMessageInfo
(
mi
)
}
return
ms
}
return
mi
.
MessageOf
(
x
)
}
// Deprecated: Use GetResourceByUidRequest.ProtoReflect.Descriptor instead.
func
(
*
GetResourceByUidRequest
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
file_api_v1_resource_service_proto_rawDescGZIP
(),
[]
int
{
5
}
}
func
(
x
*
GetResourceByUidRequest
)
GetUid
()
string
{
if
x
!=
nil
{
return
x
.
Uid
}
return
""
}
type
GetResourceBinaryRequest
struct
{
state
protoimpl
.
MessageState
`protogen:"open.v1"`
// The name of the resource.
...
...
@@ -366,7 +312,7 @@ type GetResourceBinaryRequest struct {
func
(
x
*
GetResourceBinaryRequest
)
Reset
()
{
*
x
=
GetResourceBinaryRequest
{}
mi
:=
&
file_api_v1_resource_service_proto_msgTypes
[
6
]
mi
:=
&
file_api_v1_resource_service_proto_msgTypes
[
5
]
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
.
StoreMessageInfo
(
mi
)
}
...
...
@@ -378,7 +324,7 @@ func (x *GetResourceBinaryRequest) String() string {
func
(
*
GetResourceBinaryRequest
)
ProtoMessage
()
{}
func
(
x
*
GetResourceBinaryRequest
)
ProtoReflect
()
protoreflect
.
Message
{
mi
:=
&
file_api_v1_resource_service_proto_msgTypes
[
6
]
mi
:=
&
file_api_v1_resource_service_proto_msgTypes
[
5
]
if
x
!=
nil
{
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
if
ms
.
LoadMessageInfo
()
==
nil
{
...
...
@@ -391,7 +337,7 @@ func (x *GetResourceBinaryRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetResourceBinaryRequest.ProtoReflect.Descriptor instead.
func
(
*
GetResourceBinaryRequest
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
file_api_v1_resource_service_proto_rawDescGZIP
(),
[]
int
{
6
}
return
file_api_v1_resource_service_proto_rawDescGZIP
(),
[]
int
{
5
}
}
func
(
x
*
GetResourceBinaryRequest
)
GetName
()
string
{
...
...
@@ -425,7 +371,7 @@ type UpdateResourceRequest struct {
func
(
x
*
UpdateResourceRequest
)
Reset
()
{
*
x
=
UpdateResourceRequest
{}
mi
:=
&
file_api_v1_resource_service_proto_msgTypes
[
7
]
mi
:=
&
file_api_v1_resource_service_proto_msgTypes
[
6
]
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
.
StoreMessageInfo
(
mi
)
}
...
...
@@ -437,7 +383,7 @@ func (x *UpdateResourceRequest) String() string {
func
(
*
UpdateResourceRequest
)
ProtoMessage
()
{}
func
(
x
*
UpdateResourceRequest
)
ProtoReflect
()
protoreflect
.
Message
{
mi
:=
&
file_api_v1_resource_service_proto_msgTypes
[
7
]
mi
:=
&
file_api_v1_resource_service_proto_msgTypes
[
6
]
if
x
!=
nil
{
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
if
ms
.
LoadMessageInfo
()
==
nil
{
...
...
@@ -450,7 +396,7 @@ func (x *UpdateResourceRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use UpdateResourceRequest.ProtoReflect.Descriptor instead.
func
(
*
UpdateResourceRequest
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
file_api_v1_resource_service_proto_rawDescGZIP
(),
[]
int
{
7
}
return
file_api_v1_resource_service_proto_rawDescGZIP
(),
[]
int
{
6
}
}
func
(
x
*
UpdateResourceRequest
)
GetResource
()
*
Resource
{
...
...
@@ -477,7 +423,7 @@ type DeleteResourceRequest struct {
func
(
x
*
DeleteResourceRequest
)
Reset
()
{
*
x
=
DeleteResourceRequest
{}
mi
:=
&
file_api_v1_resource_service_proto_msgTypes
[
8
]
mi
:=
&
file_api_v1_resource_service_proto_msgTypes
[
7
]
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
.
StoreMessageInfo
(
mi
)
}
...
...
@@ -489,7 +435,7 @@ func (x *DeleteResourceRequest) String() string {
func
(
*
DeleteResourceRequest
)
ProtoMessage
()
{}
func
(
x
*
DeleteResourceRequest
)
ProtoReflect
()
protoreflect
.
Message
{
mi
:=
&
file_api_v1_resource_service_proto_msgTypes
[
8
]
mi
:=
&
file_api_v1_resource_service_proto_msgTypes
[
7
]
if
x
!=
nil
{
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
if
ms
.
LoadMessageInfo
()
==
nil
{
...
...
@@ -502,7 +448,7 @@ func (x *DeleteResourceRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use DeleteResourceRequest.ProtoReflect.Descriptor instead.
func
(
*
DeleteResourceRequest
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
file_api_v1_resource_service_proto_rawDescGZIP
(),
[]
int
{
8
}
return
file_api_v1_resource_service_proto_rawDescGZIP
(),
[]
int
{
7
}
}
func
(
x
*
DeleteResourceRequest
)
GetName
()
string
{
...
...
@@ -531,128 +477,117 @@ var file_api_v1_resource_service_proto_rawDesc = string([]byte{
0x69
,
0x65
,
0x6c
,
0x64
,
0x5f
,
0x6d
,
0x61
,
0x73
,
0x6b
,
0x2e
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x1a
,
0x1f
,
0x67
,
0x6f
,
0x6f
,
0x67
,
0x6c
,
0x65
,
0x2f
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x62
,
0x75
,
0x66
,
0x2f
,
0x74
,
0x69
,
0x6d
,
0x65
,
0x73
,
0x74
,
0x61
,
0x6d
,
0x70
,
0x2e
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x22
,
0x9
e
,
0x02
,
0x0a
,
0x08
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x12
,
0x12
,
0x0a
,
0x22
,
0x9
2
,
0x02
,
0x0a
,
0x08
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x12
,
0x10
,
0x0a
,
0x03
,
0x75
,
0x69
,
0x64
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x03
,
0x75
,
0x69
,
0x64
,
0x12
,
0x41
,
0x0a
,
0x0b
,
0x63
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x5f
,
0x74
,
0x69
,
0x6d
,
0x65
,
0x18
,
0x03
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x1a
,
0x2e
,
0x67
,
0x6f
,
0x6f
,
0x67
,
0x6c
,
0x65
,
0x2e
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x62
,
0x75
,
0x66
,
0x2e
,
0x54
,
0x69
,
0x6d
,
0x65
,
0x73
,
0x74
,
0x61
,
0x6d
,
0x70
,
0x42
,
0x04
,
0xe2
,
0x41
,
0x01
,
0x03
,
0x52
,
0x0a
,
0x63
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x54
,
0x69
,
0x6d
,
0x65
,
0x12
,
0x1a
,
0x0a
,
0x08
,
0x66
,
0x69
,
0x6c
,
0x65
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x18
,
0x04
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x08
,
0x66
,
0x69
,
0x6c
,
0x65
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x12
,
0x1e
,
0x0a
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x05
,
0x20
,
0x01
,
0x28
,
0x0c
,
0x42
,
0x04
,
0xe2
,
0x41
,
0x01
,
0x04
,
0x52
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x12
,
0x23
,
0x0a
,
0x0d
,
0x65
,
0x78
,
0x74
,
0x65
,
0x72
,
0x6e
,
0x61
,
0x6c
,
0x5f
,
0x6c
,
0x69
,
0x6e
,
0x6b
,
0x18
,
0x06
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x0c
,
0x65
,
0x78
,
0x74
,
0x65
,
0x72
,
0x6e
,
0x61
,
0x6c
,
0x4c
,
0x69
,
0x6e
,
0x6b
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x74
,
0x79
,
0x70
,
0x65
,
0x18
,
0x07
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x04
,
0x74
,
0x79
,
0x70
,
0x65
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x73
,
0x69
,
0x7a
,
0x65
,
0x18
,
0x08
,
0x20
,
0x01
,
0x28
,
0x03
,
0x52
,
0x04
,
0x73
,
0x69
,
0x7a
,
0x65
,
0x12
,
0x17
,
0x0a
,
0x04
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x18
,
0x09
,
0x20
,
0x01
,
0x28
,
0x09
,
0x48
,
0x00
,
0x52
,
0x04
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x88
,
0x01
,
0x01
,
0x42
,
0x07
,
0x0a
,
0x05
,
0x5f
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x22
,
0x4b
,
0x0a
,
0x15
,
0x43
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x12
,
0x32
,
0x0a
,
0x08
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x16
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x52
,
0x08
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x22
,
0x16
,
0x0a
,
0x14
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x22
,
0x4d
,
0x0a
,
0x15
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x12
,
0x34
,
0x0a
,
0x09
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x18
,
0x01
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x16
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x52
,
0x09
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x22
,
0x28
,
0x0a
,
0x12
,
0x47
,
0x65
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x22
,
0x2b
,
0x0a
,
0x17
,
0x47
,
0x65
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x42
,
0x79
,
0x55
,
0x69
,
0x64
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x12
,
0x10
,
0x0a
,
0x03
,
0x75
,
0x69
,
0x64
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x03
,
0x75
,
0x69
,
0x64
,
0x22
,
0x68
,
0x0a
,
0x18
,
0x47
,
0x65
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x42
,
0x69
,
0x6e
,
0x61
,
0x72
,
0x79
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x12
,
0x1a
,
0x0a
,
0x08
,
0x66
,
0x69
,
0x6c
,
0x65
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x08
,
0x66
,
0x69
,
0x6c
,
0x65
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x12
,
0x1c
,
0x0a
,
0x09
,
0x74
,
0x68
,
0x75
,
0x6d
,
0x62
,
0x6e
,
0x61
,
0x69
,
0x6c
,
0x18
,
0x03
,
0x20
,
0x01
,
0x28
,
0x08
,
0x52
,
0x09
,
0x74
,
0x68
,
0x75
,
0x6d
,
0x62
,
0x6e
,
0x61
,
0x69
,
0x6c
,
0x22
,
0x88
,
0x01
,
0x0a
,
0x15
,
0x55
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x12
,
0x32
,
0x0a
,
0x08
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x16
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x52
,
0x08
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x12
,
0x3b
,
0x0a
,
0x0b
,
0x75
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x5f
,
0x6d
,
0x61
,
0x73
,
0x6b
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x1a
,
0x2e
,
0x67
,
0x6f
,
0x6f
,
0x67
,
0x6c
,
0x65
,
0x2e
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x62
,
0x75
,
0x66
,
0x2e
,
0x46
,
0x69
,
0x65
,
0x6c
,
0x64
,
0x4d
,
0x61
,
0x73
,
0x6b
,
0x52
,
0x0a
,
0x75
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x4d
,
0x61
,
0x73
,
0x6b
,
0x22
,
0x2b
,
0x0a
,
0x15
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x32
,
0x98
,
0x07
,
0x0a
,
0x0f
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x53
,
0x65
,
0x72
,
0x76
,
0x69
,
0x63
,
0x65
,
0x12
,
0x72
,
0x0a
,
0x0e
,
0x43
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x12
,
0x23
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x43
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x16
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x22
,
0x23
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x1d
,
0x3a
,
0x08
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x22
,
0x11
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x31
,
0x2f
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x12
,
0x73
,
0x0a
,
0x0d
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x12
,
0x22
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x23
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x22
,
0x19
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x13
,
0x12
,
0x11
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x31
,
0x2f
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x12
,
0x72
,
0x0a
,
0x0b
,
0x47
,
0x65
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x12
,
0x20
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x47
,
0x65
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x16
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x22
,
0x29
,
0xda
,
0x41
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x1c
,
0x12
,
0x1a
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x31
,
0x2f
,
0x7b
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x3d
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x2f
,
0x2a
,
0x7d
,
0x12
,
0x7f
,
0x0a
,
0x10
,
0x47
,
0x65
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x42
,
0x79
,
0x55
,
0x69
,
0x64
,
0x12
,
0x25
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x47
,
0x65
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x42
,
0x79
,
0x55
,
0x69
,
0x64
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x16
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x22
,
0x2c
,
0xda
,
0x41
,
0x03
,
0x75
,
0x69
,
0x64
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x20
,
0x12
,
0x1e
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x31
,
0x2f
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x3a
,
0x62
,
0x79
,
0x2d
,
0x75
,
0x69
,
0x64
,
0x2f
,
0x7b
,
0x75
,
0x69
,
0x64
,
0x7d
,
0x12
,
0x8e
,
0x01
,
0x0a
,
0x11
,
0x47
,
0x65
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x42
,
0x69
,
0x6e
,
0x61
,
0x72
,
0x79
,
0x12
,
0x26
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x47
,
0x65
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x42
,
0x69
,
0x6e
,
0x61
,
0x72
,
0x79
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x14
,
0x2e
,
0x67
,
0x6f
,
0x6f
,
0x67
,
0x6c
,
0x65
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x48
,
0x74
,
0x74
,
0x70
,
0x42
,
0x6f
,
0x64
,
0x79
,
0x22
,
0x3b
,
0xda
,
0x41
,
0x0d
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x2c
,
0x66
,
0x69
,
0x6c
,
0x65
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x25
,
0x12
,
0x23
,
0x2f
,
0x66
,
0x69
,
0x6c
,
0x65
,
0x2f
,
0x7b
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x3d
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x2f
,
0x2a
,
0x7d
,
0x2f
,
0x7b
,
0x66
,
0x69
,
0x6c
,
0x65
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x7d
,
0x12
,
0x9b
,
0x01
,
0x0a
,
0x0e
,
0x55
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x12
,
0x23
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x55
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x16
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x65
,
0x12
,
0x41
,
0x0a
,
0x0b
,
0x63
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x5f
,
0x74
,
0x69
,
0x6d
,
0x65
,
0x18
,
0x03
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x1a
,
0x2e
,
0x67
,
0x6f
,
0x6f
,
0x67
,
0x6c
,
0x65
,
0x2e
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x62
,
0x75
,
0x66
,
0x2e
,
0x54
,
0x69
,
0x6d
,
0x65
,
0x73
,
0x74
,
0x61
,
0x6d
,
0x70
,
0x42
,
0x04
,
0xe2
,
0x41
,
0x01
,
0x03
,
0x52
,
0x0a
,
0x63
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x54
,
0x69
,
0x6d
,
0x65
,
0x12
,
0x1a
,
0x0a
,
0x08
,
0x66
,
0x69
,
0x6c
,
0x65
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x18
,
0x04
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x08
,
0x66
,
0x69
,
0x6c
,
0x65
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x12
,
0x1e
,
0x0a
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x05
,
0x20
,
0x01
,
0x28
,
0x0c
,
0x42
,
0x04
,
0xe2
,
0x41
,
0x01
,
0x04
,
0x52
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x12
,
0x23
,
0x0a
,
0x0d
,
0x65
,
0x78
,
0x74
,
0x65
,
0x72
,
0x6e
,
0x61
,
0x6c
,
0x5f
,
0x6c
,
0x69
,
0x6e
,
0x6b
,
0x18
,
0x06
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x0c
,
0x65
,
0x78
,
0x74
,
0x65
,
0x72
,
0x6e
,
0x61
,
0x6c
,
0x4c
,
0x69
,
0x6e
,
0x6b
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x74
,
0x79
,
0x70
,
0x65
,
0x18
,
0x07
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x04
,
0x74
,
0x79
,
0x70
,
0x65
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x73
,
0x69
,
0x7a
,
0x65
,
0x18
,
0x08
,
0x20
,
0x01
,
0x28
,
0x03
,
0x52
,
0x04
,
0x73
,
0x69
,
0x7a
,
0x65
,
0x12
,
0x17
,
0x0a
,
0x04
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x18
,
0x09
,
0x20
,
0x01
,
0x28
,
0x09
,
0x48
,
0x00
,
0x52
,
0x04
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x88
,
0x01
,
0x01
,
0x42
,
0x07
,
0x0a
,
0x05
,
0x5f
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x4a
,
0x04
,
0x08
,
0x02
,
0x10
,
0x03
,
0x22
,
0x4b
,
0x0a
,
0x15
,
0x43
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x12
,
0x32
,
0x0a
,
0x08
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x16
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x52
,
0x08
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x22
,
0x16
,
0x0a
,
0x14
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x22
,
0x4d
,
0x0a
,
0x15
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x12
,
0x34
,
0x0a
,
0x09
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x18
,
0x01
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x16
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x52
,
0x09
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x22
,
0x28
,
0x0a
,
0x12
,
0x47
,
0x65
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x22
,
0x68
,
0x0a
,
0x18
,
0x47
,
0x65
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x42
,
0x69
,
0x6e
,
0x61
,
0x72
,
0x79
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x12
,
0x1a
,
0x0a
,
0x08
,
0x66
,
0x69
,
0x6c
,
0x65
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x08
,
0x66
,
0x69
,
0x6c
,
0x65
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x12
,
0x1c
,
0x0a
,
0x09
,
0x74
,
0x68
,
0x75
,
0x6d
,
0x62
,
0x6e
,
0x61
,
0x69
,
0x6c
,
0x18
,
0x03
,
0x20
,
0x01
,
0x28
,
0x08
,
0x52
,
0x09
,
0x74
,
0x68
,
0x75
,
0x6d
,
0x62
,
0x6e
,
0x61
,
0x69
,
0x6c
,
0x22
,
0x88
,
0x01
,
0x0a
,
0x15
,
0x55
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x12
,
0x32
,
0x0a
,
0x08
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x16
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x22
,
0x4c
,
0xda
,
0x41
,
0x14
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x2c
,
0x75
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x5f
,
0x6d
,
0x61
,
0x73
,
0x6b
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x2f
,
0x3a
,
0x08
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x32
,
0x23
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x31
,
0x2f
,
0x7b
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x2e
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x3d
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x2f
,
0x2a
,
0x7d
,
0x12
,
0x78
,
0x0a
,
0x0e
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x12
,
0x23
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x16
,
0x2e
,
0x67
,
0x6f
,
0x6f
,
0x67
,
0x6c
,
0x65
,
0x2e
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x62
,
0x75
,
0x66
,
0x2e
,
0x45
,
0x6d
,
0x70
,
0x74
,
0x79
,
0x22
,
0x29
,
0xda
,
0x41
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x1c
,
0x2a
,
0x1a
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x31
,
0x2f
,
0x7b
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x3d
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x2f
,
0x2a
,
0x7d
,
0x42
,
0xac
,
0x01
,
0x0a
,
0x10
,
0x63
,
0x6f
,
0x6d
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x42
,
0x14
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x53
,
0x65
,
0x72
,
0x76
,
0x69
,
0x63
,
0x65
,
0x50
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x50
,
0x01
,
0x5a
,
0x30
,
0x67
,
0x69
,
0x74
,
0x68
,
0x75
,
0x62
,
0x2e
,
0x63
,
0x6f
,
0x6d
,
0x2f
,
0x75
,
0x73
,
0x65
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2f
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2f
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x2f
,
0x67
,
0x65
,
0x6e
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x31
,
0x3b
,
0x61
,
0x70
,
0x69
,
0x76
,
0x31
,
0xa2
,
0x02
,
0x03
,
0x4d
,
0x41
,
0x58
,
0xaa
,
0x02
,
0x0c
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x41
,
0x70
,
0x69
,
0x2e
,
0x56
,
0x31
,
0xca
,
0x02
,
0x0c
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x5c
,
0x41
,
0x70
,
0x69
,
0x5c
,
0x56
,
0x31
,
0xe2
,
0x02
,
0x18
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x5c
,
0x41
,
0x70
,
0x69
,
0x5c
,
0x56
,
0x31
,
0x5c
,
0x47
,
0x50
,
0x42
,
0x4d
,
0x65
,
0x74
,
0x61
,
0x64
,
0x61
,
0x74
,
0x61
,
0xea
,
0x02
,
0x0e
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x3a
,
0x3a
,
0x41
,
0x70
,
0x69
,
0x3a
,
0x3a
,
0x56
,
0x31
,
0x62
,
0x06
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x33
,
0x65
,
0x52
,
0x08
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x12
,
0x3b
,
0x0a
,
0x0b
,
0x75
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x5f
,
0x6d
,
0x61
,
0x73
,
0x6b
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x1a
,
0x2e
,
0x67
,
0x6f
,
0x6f
,
0x67
,
0x6c
,
0x65
,
0x2e
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x62
,
0x75
,
0x66
,
0x2e
,
0x46
,
0x69
,
0x65
,
0x6c
,
0x64
,
0x4d
,
0x61
,
0x73
,
0x6b
,
0x52
,
0x0a
,
0x75
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x4d
,
0x61
,
0x73
,
0x6b
,
0x22
,
0x2b
,
0x0a
,
0x15
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x32
,
0x97
,
0x06
,
0x0a
,
0x0f
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x53
,
0x65
,
0x72
,
0x76
,
0x69
,
0x63
,
0x65
,
0x12
,
0x72
,
0x0a
,
0x0e
,
0x43
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x12
,
0x23
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x43
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x16
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x22
,
0x23
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x1d
,
0x3a
,
0x08
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x22
,
0x11
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x31
,
0x2f
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x12
,
0x73
,
0x0a
,
0x0d
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x12
,
0x22
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x23
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x22
,
0x19
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x13
,
0x12
,
0x11
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x31
,
0x2f
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x12
,
0x72
,
0x0a
,
0x0b
,
0x47
,
0x65
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x12
,
0x20
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x47
,
0x65
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x16
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x22
,
0x29
,
0xda
,
0x41
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x1c
,
0x12
,
0x1a
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x31
,
0x2f
,
0x7b
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x3d
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x2f
,
0x2a
,
0x7d
,
0x12
,
0x8e
,
0x01
,
0x0a
,
0x11
,
0x47
,
0x65
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x42
,
0x69
,
0x6e
,
0x61
,
0x72
,
0x79
,
0x12
,
0x26
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x47
,
0x65
,
0x74
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x42
,
0x69
,
0x6e
,
0x61
,
0x72
,
0x79
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x14
,
0x2e
,
0x67
,
0x6f
,
0x6f
,
0x67
,
0x6c
,
0x65
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x48
,
0x74
,
0x74
,
0x70
,
0x42
,
0x6f
,
0x64
,
0x79
,
0x22
,
0x3b
,
0xda
,
0x41
,
0x0d
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x2c
,
0x66
,
0x69
,
0x6c
,
0x65
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x25
,
0x12
,
0x23
,
0x2f
,
0x66
,
0x69
,
0x6c
,
0x65
,
0x2f
,
0x7b
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x3d
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x2f
,
0x2a
,
0x7d
,
0x2f
,
0x7b
,
0x66
,
0x69
,
0x6c
,
0x65
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x7d
,
0x12
,
0x9b
,
0x01
,
0x0a
,
0x0e
,
0x55
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x12
,
0x23
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x55
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x16
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x22
,
0x4c
,
0xda
,
0x41
,
0x14
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x2c
,
0x75
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x5f
,
0x6d
,
0x61
,
0x73
,
0x6b
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x2f
,
0x3a
,
0x08
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x32
,
0x23
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x31
,
0x2f
,
0x7b
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x2e
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x3d
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x2f
,
0x2a
,
0x7d
,
0x12
,
0x78
,
0x0a
,
0x0e
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x12
,
0x23
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x2e
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x16
,
0x2e
,
0x67
,
0x6f
,
0x6f
,
0x67
,
0x6c
,
0x65
,
0x2e
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x62
,
0x75
,
0x66
,
0x2e
,
0x45
,
0x6d
,
0x70
,
0x74
,
0x79
,
0x22
,
0x29
,
0xda
,
0x41
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x1c
,
0x2a
,
0x1a
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x31
,
0x2f
,
0x7b
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x3d
,
0x72
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x73
,
0x2f
,
0x2a
,
0x7d
,
0x42
,
0xac
,
0x01
,
0x0a
,
0x10
,
0x63
,
0x6f
,
0x6d
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x31
,
0x42
,
0x14
,
0x52
,
0x65
,
0x73
,
0x6f
,
0x75
,
0x72
,
0x63
,
0x65
,
0x53
,
0x65
,
0x72
,
0x76
,
0x69
,
0x63
,
0x65
,
0x50
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x50
,
0x01
,
0x5a
,
0x30
,
0x67
,
0x69
,
0x74
,
0x68
,
0x75
,
0x62
,
0x2e
,
0x63
,
0x6f
,
0x6d
,
0x2f
,
0x75
,
0x73
,
0x65
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2f
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2f
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x2f
,
0x67
,
0x65
,
0x6e
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x31
,
0x3b
,
0x61
,
0x70
,
0x69
,
0x76
,
0x31
,
0xa2
,
0x02
,
0x03
,
0x4d
,
0x41
,
0x58
,
0xaa
,
0x02
,
0x0c
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x41
,
0x70
,
0x69
,
0x2e
,
0x56
,
0x31
,
0xca
,
0x02
,
0x0c
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x5c
,
0x41
,
0x70
,
0x69
,
0x5c
,
0x56
,
0x31
,
0xe2
,
0x02
,
0x18
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x5c
,
0x41
,
0x70
,
0x69
,
0x5c
,
0x56
,
0x31
,
0x5c
,
0x47
,
0x50
,
0x42
,
0x4d
,
0x65
,
0x74
,
0x61
,
0x64
,
0x61
,
0x74
,
0x61
,
0xea
,
0x02
,
0x0e
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x3a
,
0x3a
,
0x41
,
0x70
,
0x69
,
0x3a
,
0x3a
,
0x56
,
0x31
,
0x62
,
0x06
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x33
,
})
var
(
...
...
@@ -667,44 +602,41 @@ func file_api_v1_resource_service_proto_rawDescGZIP() []byte {
return
file_api_v1_resource_service_proto_rawDescData
}
var
file_api_v1_resource_service_proto_msgTypes
=
make
([]
protoimpl
.
MessageInfo
,
9
)
var
file_api_v1_resource_service_proto_msgTypes
=
make
([]
protoimpl
.
MessageInfo
,
8
)
var
file_api_v1_resource_service_proto_goTypes
=
[]
any
{
(
*
Resource
)(
nil
),
// 0: memos.api.v1.Resource
(
*
CreateResourceRequest
)(
nil
),
// 1: memos.api.v1.CreateResourceRequest
(
*
ListResourcesRequest
)(
nil
),
// 2: memos.api.v1.ListResourcesRequest
(
*
ListResourcesResponse
)(
nil
),
// 3: memos.api.v1.ListResourcesResponse
(
*
GetResourceRequest
)(
nil
),
// 4: memos.api.v1.GetResourceRequest
(
*
GetResourceByUidRequest
)(
nil
),
// 5: memos.api.v1.GetResourceByUidRequest
(
*
GetResourceBinaryRequest
)(
nil
),
// 6: memos.api.v1.GetResourceBinaryRequest
(
*
UpdateResourceRequest
)(
nil
),
// 7: memos.api.v1.UpdateResourceRequest
(
*
DeleteResourceRequest
)(
nil
),
// 8: memos.api.v1.DeleteResourceRequest
(
*
timestamppb
.
Timestamp
)(
nil
),
// 9: google.protobuf.Timestamp
(
*
fieldmaskpb
.
FieldMask
)(
nil
),
// 10: google.protobuf.FieldMask
(
*
httpbody
.
HttpBody
)(
nil
),
// 11: google.api.HttpBody
(
*
emptypb
.
Empty
)(
nil
),
// 12: google.protobuf.Empty
(
*
GetResourceBinaryRequest
)(
nil
),
// 5: memos.api.v1.GetResourceBinaryRequest
(
*
UpdateResourceRequest
)(
nil
),
// 6: memos.api.v1.UpdateResourceRequest
(
*
DeleteResourceRequest
)(
nil
),
// 7: memos.api.v1.DeleteResourceRequest
(
*
timestamppb
.
Timestamp
)(
nil
),
// 8: google.protobuf.Timestamp
(
*
fieldmaskpb
.
FieldMask
)(
nil
),
// 9: google.protobuf.FieldMask
(
*
httpbody
.
HttpBody
)(
nil
),
// 10: google.api.HttpBody
(
*
emptypb
.
Empty
)(
nil
),
// 11: google.protobuf.Empty
}
var
file_api_v1_resource_service_proto_depIdxs
=
[]
int32
{
9
,
// 0: memos.api.v1.Resource.create_time:type_name -> google.protobuf.Timestamp
8
,
// 0: memos.api.v1.Resource.create_time:type_name -> google.protobuf.Timestamp
0
,
// 1: memos.api.v1.CreateResourceRequest.resource:type_name -> memos.api.v1.Resource
0
,
// 2: memos.api.v1.ListResourcesResponse.resources:type_name -> memos.api.v1.Resource
0
,
// 3: memos.api.v1.UpdateResourceRequest.resource:type_name -> memos.api.v1.Resource
10
,
// 4: memos.api.v1.UpdateResourceRequest.update_mask:type_name -> google.protobuf.FieldMask
9
,
// 4: memos.api.v1.UpdateResourceRequest.update_mask:type_name -> google.protobuf.FieldMask
1
,
// 5: memos.api.v1.ResourceService.CreateResource:input_type -> memos.api.v1.CreateResourceRequest
2
,
// 6: memos.api.v1.ResourceService.ListResources:input_type -> memos.api.v1.ListResourcesRequest
4
,
// 7: memos.api.v1.ResourceService.GetResource:input_type -> memos.api.v1.GetResourceRequest
5
,
// 8: memos.api.v1.ResourceService.GetResourceByUid:input_type -> memos.api.v1.GetResourceByUidRequest
6
,
// 9: memos.api.v1.ResourceService.GetResourceBinary:input_type -> memos.api.v1.GetResourceBinaryRequest
7
,
// 10: memos.api.v1.ResourceService.UpdateResource:input_type -> memos.api.v1.UpdateResourceRequest
8
,
// 11: memos.api.v1.ResourceService.DeleteResource:input_type -> memos.api.v1.DeleteResourceRequest
0
,
// 12: memos.api.v1.ResourceService.CreateResource:output_type -> memos.api.v1.Resource
3
,
// 13: memos.api.v1.ResourceService.ListResources:output_type -> memos.api.v1.ListResourcesResponse
0
,
// 14: memos.api.v1.ResourceService.GetResource:output_type -> memos.api.v1.Resource
0
,
// 15: memos.api.v1.ResourceService.GetResourceByUid:output_type -> memos.api.v1.Resource
11
,
// 16: memos.api.v1.ResourceService.GetResourceBinary:output_type -> google.api.HttpBody
0
,
// 17: memos.api.v1.ResourceService.UpdateResource:output_type -> memos.api.v1.Resource
12
,
// 18: memos.api.v1.ResourceService.DeleteResource:output_type -> google.protobuf.Empty
12
,
// [12:19] is the sub-list for method output_type
5
,
// [5:12] is the sub-list for method input_type
5
,
// 8: memos.api.v1.ResourceService.GetResourceBinary:input_type -> memos.api.v1.GetResourceBinaryRequest
6
,
// 9: memos.api.v1.ResourceService.UpdateResource:input_type -> memos.api.v1.UpdateResourceRequest
7
,
// 10: memos.api.v1.ResourceService.DeleteResource:input_type -> memos.api.v1.DeleteResourceRequest
0
,
// 11: memos.api.v1.ResourceService.CreateResource:output_type -> memos.api.v1.Resource
3
,
// 12: memos.api.v1.ResourceService.ListResources:output_type -> memos.api.v1.ListResourcesResponse
0
,
// 13: memos.api.v1.ResourceService.GetResource:output_type -> memos.api.v1.Resource
10
,
// 14: memos.api.v1.ResourceService.GetResourceBinary:output_type -> google.api.HttpBody
0
,
// 15: memos.api.v1.ResourceService.UpdateResource:output_type -> memos.api.v1.Resource
11
,
// 16: memos.api.v1.ResourceService.DeleteResource:output_type -> google.protobuf.Empty
11
,
// [11:17] is the sub-list for method output_type
5
,
// [5:11] is the sub-list for method input_type
5
,
// [5:5] is the sub-list for extension type_name
5
,
// [5:5] is the sub-list for extension extendee
0
,
// [0:5] is the sub-list for field type_name
...
...
@@ -722,7 +654,7 @@ func file_api_v1_resource_service_proto_init() {
GoPackagePath
:
reflect
.
TypeOf
(
x
{})
.
PkgPath
(),
RawDescriptor
:
unsafe
.
Slice
(
unsafe
.
StringData
(
file_api_v1_resource_service_proto_rawDesc
),
len
(
file_api_v1_resource_service_proto_rawDesc
)),
NumEnums
:
0
,
NumMessages
:
9
,
NumMessages
:
8
,
NumExtensions
:
0
,
NumServices
:
1
,
},
...
...
proto/gen/api/v1/resource_service.pb.gw.go
View file @
0dcd0904
...
...
@@ -113,42 +113,6 @@ func local_request_ResourceService_GetResource_0(ctx context.Context, marshaler
return
msg
,
metadata
,
err
}
func
request_ResourceService_GetResourceByUid_0
(
ctx
context
.
Context
,
marshaler
runtime
.
Marshaler
,
client
ResourceServiceClient
,
req
*
http
.
Request
,
pathParams
map
[
string
]
string
)
(
proto
.
Message
,
runtime
.
ServerMetadata
,
error
)
{
var
(
protoReq
GetResourceByUidRequest
metadata
runtime
.
ServerMetadata
err
error
)
val
,
ok
:=
pathParams
[
"uid"
]
if
!
ok
{
return
nil
,
metadata
,
status
.
Errorf
(
codes
.
InvalidArgument
,
"missing parameter %s"
,
"uid"
)
}
protoReq
.
Uid
,
err
=
runtime
.
String
(
val
)
if
err
!=
nil
{
return
nil
,
metadata
,
status
.
Errorf
(
codes
.
InvalidArgument
,
"type mismatch, parameter: %s, error: %v"
,
"uid"
,
err
)
}
msg
,
err
:=
client
.
GetResourceByUid
(
ctx
,
&
protoReq
,
grpc
.
Header
(
&
metadata
.
HeaderMD
),
grpc
.
Trailer
(
&
metadata
.
TrailerMD
))
return
msg
,
metadata
,
err
}
func
local_request_ResourceService_GetResourceByUid_0
(
ctx
context
.
Context
,
marshaler
runtime
.
Marshaler
,
server
ResourceServiceServer
,
req
*
http
.
Request
,
pathParams
map
[
string
]
string
)
(
proto
.
Message
,
runtime
.
ServerMetadata
,
error
)
{
var
(
protoReq
GetResourceByUidRequest
metadata
runtime
.
ServerMetadata
err
error
)
val
,
ok
:=
pathParams
[
"uid"
]
if
!
ok
{
return
nil
,
metadata
,
status
.
Errorf
(
codes
.
InvalidArgument
,
"missing parameter %s"
,
"uid"
)
}
protoReq
.
Uid
,
err
=
runtime
.
String
(
val
)
if
err
!=
nil
{
return
nil
,
metadata
,
status
.
Errorf
(
codes
.
InvalidArgument
,
"type mismatch, parameter: %s, error: %v"
,
"uid"
,
err
)
}
msg
,
err
:=
server
.
GetResourceByUid
(
ctx
,
&
protoReq
)
return
msg
,
metadata
,
err
}
var
filter_ResourceService_GetResourceBinary_0
=
&
utilities
.
DoubleArray
{
Encoding
:
map
[
string
]
int
{
"name"
:
0
,
"filename"
:
1
},
Base
:
[]
int
{
1
,
1
,
2
,
0
,
0
},
Check
:
[]
int
{
0
,
1
,
1
,
2
,
3
}}
func
request_ResourceService_GetResourceBinary_0
(
ctx
context
.
Context
,
marshaler
runtime
.
Marshaler
,
client
ResourceServiceClient
,
req
*
http
.
Request
,
pathParams
map
[
string
]
string
)
(
proto
.
Message
,
runtime
.
ServerMetadata
,
error
)
{
...
...
@@ -395,26 +359,6 @@ func RegisterResourceServiceHandlerServer(ctx context.Context, mux *runtime.Serv
}
forward_ResourceService_GetResource_0
(
annotatedContext
,
mux
,
outboundMarshaler
,
w
,
req
,
resp
,
mux
.
GetForwardResponseOptions
()
...
)
})
mux
.
Handle
(
http
.
MethodGet
,
pattern_ResourceService_GetResourceByUid_0
,
func
(
w
http
.
ResponseWriter
,
req
*
http
.
Request
,
pathParams
map
[
string
]
string
)
{
ctx
,
cancel
:=
context
.
WithCancel
(
req
.
Context
())
defer
cancel
()
var
stream
runtime
.
ServerTransportStream
ctx
=
grpc
.
NewContextWithServerTransportStream
(
ctx
,
&
stream
)
inboundMarshaler
,
outboundMarshaler
:=
runtime
.
MarshalerForRequest
(
mux
,
req
)
annotatedContext
,
err
:=
runtime
.
AnnotateIncomingContext
(
ctx
,
mux
,
req
,
"/memos.api.v1.ResourceService/GetResourceByUid"
,
runtime
.
WithHTTPPathPattern
(
"/api/v1/resources:by-uid/{uid}"
))
if
err
!=
nil
{
runtime
.
HTTPError
(
ctx
,
mux
,
outboundMarshaler
,
w
,
req
,
err
)
return
}
resp
,
md
,
err
:=
local_request_ResourceService_GetResourceByUid_0
(
annotatedContext
,
inboundMarshaler
,
server
,
req
,
pathParams
)
md
.
HeaderMD
,
md
.
TrailerMD
=
metadata
.
Join
(
md
.
HeaderMD
,
stream
.
Header
()),
metadata
.
Join
(
md
.
TrailerMD
,
stream
.
Trailer
())
annotatedContext
=
runtime
.
NewServerMetadataContext
(
annotatedContext
,
md
)
if
err
!=
nil
{
runtime
.
HTTPError
(
annotatedContext
,
mux
,
outboundMarshaler
,
w
,
req
,
err
)
return
}
forward_ResourceService_GetResourceByUid_0
(
annotatedContext
,
mux
,
outboundMarshaler
,
w
,
req
,
resp
,
mux
.
GetForwardResponseOptions
()
...
)
})
mux
.
Handle
(
http
.
MethodGet
,
pattern_ResourceService_GetResourceBinary_0
,
func
(
w
http
.
ResponseWriter
,
req
*
http
.
Request
,
pathParams
map
[
string
]
string
)
{
ctx
,
cancel
:=
context
.
WithCancel
(
req
.
Context
())
defer
cancel
()
...
...
@@ -566,23 +510,6 @@ func RegisterResourceServiceHandlerClient(ctx context.Context, mux *runtime.Serv
}
forward_ResourceService_GetResource_0
(
annotatedContext
,
mux
,
outboundMarshaler
,
w
,
req
,
resp
,
mux
.
GetForwardResponseOptions
()
...
)
})
mux
.
Handle
(
http
.
MethodGet
,
pattern_ResourceService_GetResourceByUid_0
,
func
(
w
http
.
ResponseWriter
,
req
*
http
.
Request
,
pathParams
map
[
string
]
string
)
{
ctx
,
cancel
:=
context
.
WithCancel
(
req
.
Context
())
defer
cancel
()
inboundMarshaler
,
outboundMarshaler
:=
runtime
.
MarshalerForRequest
(
mux
,
req
)
annotatedContext
,
err
:=
runtime
.
AnnotateContext
(
ctx
,
mux
,
req
,
"/memos.api.v1.ResourceService/GetResourceByUid"
,
runtime
.
WithHTTPPathPattern
(
"/api/v1/resources:by-uid/{uid}"
))
if
err
!=
nil
{
runtime
.
HTTPError
(
ctx
,
mux
,
outboundMarshaler
,
w
,
req
,
err
)
return
}
resp
,
md
,
err
:=
request_ResourceService_GetResourceByUid_0
(
annotatedContext
,
inboundMarshaler
,
client
,
req
,
pathParams
)
annotatedContext
=
runtime
.
NewServerMetadataContext
(
annotatedContext
,
md
)
if
err
!=
nil
{
runtime
.
HTTPError
(
annotatedContext
,
mux
,
outboundMarshaler
,
w
,
req
,
err
)
return
}
forward_ResourceService_GetResourceByUid_0
(
annotatedContext
,
mux
,
outboundMarshaler
,
w
,
req
,
resp
,
mux
.
GetForwardResponseOptions
()
...
)
})
mux
.
Handle
(
http
.
MethodGet
,
pattern_ResourceService_GetResourceBinary_0
,
func
(
w
http
.
ResponseWriter
,
req
*
http
.
Request
,
pathParams
map
[
string
]
string
)
{
ctx
,
cancel
:=
context
.
WithCancel
(
req
.
Context
())
defer
cancel
()
...
...
@@ -641,7 +568,6 @@ var (
pattern_ResourceService_CreateResource_0
=
runtime
.
MustPattern
(
runtime
.
NewPattern
(
1
,
[]
int
{
2
,
0
,
2
,
1
,
2
,
2
},
[]
string
{
"api"
,
"v1"
,
"resources"
},
""
))
pattern_ResourceService_ListResources_0
=
runtime
.
MustPattern
(
runtime
.
NewPattern
(
1
,
[]
int
{
2
,
0
,
2
,
1
,
2
,
2
},
[]
string
{
"api"
,
"v1"
,
"resources"
},
""
))
pattern_ResourceService_GetResource_0
=
runtime
.
MustPattern
(
runtime
.
NewPattern
(
1
,
[]
int
{
2
,
0
,
2
,
1
,
2
,
2
,
1
,
0
,
4
,
2
,
5
,
3
},
[]
string
{
"api"
,
"v1"
,
"resources"
,
"name"
},
""
))
pattern_ResourceService_GetResourceByUid_0
=
runtime
.
MustPattern
(
runtime
.
NewPattern
(
1
,
[]
int
{
2
,
0
,
2
,
1
,
2
,
2
,
1
,
0
,
4
,
1
,
5
,
3
},
[]
string
{
"api"
,
"v1"
,
"resources:by-uid"
,
"uid"
},
""
))
pattern_ResourceService_GetResourceBinary_0
=
runtime
.
MustPattern
(
runtime
.
NewPattern
(
1
,
[]
int
{
2
,
0
,
2
,
1
,
1
,
0
,
4
,
2
,
5
,
2
,
1
,
0
,
4
,
1
,
5
,
3
},
[]
string
{
"file"
,
"resources"
,
"name"
,
"filename"
},
""
))
pattern_ResourceService_UpdateResource_0
=
runtime
.
MustPattern
(
runtime
.
NewPattern
(
1
,
[]
int
{
2
,
0
,
2
,
1
,
2
,
2
,
1
,
0
,
4
,
2
,
5
,
3
},
[]
string
{
"api"
,
"v1"
,
"resources"
,
"resource.name"
},
""
))
pattern_ResourceService_DeleteResource_0
=
runtime
.
MustPattern
(
runtime
.
NewPattern
(
1
,
[]
int
{
2
,
0
,
2
,
1
,
2
,
2
,
1
,
0
,
4
,
2
,
5
,
3
},
[]
string
{
"api"
,
"v1"
,
"resources"
,
"name"
},
""
))
...
...
@@ -651,7 +577,6 @@ var (
forward_ResourceService_CreateResource_0
=
runtime
.
ForwardResponseMessage
forward_ResourceService_ListResources_0
=
runtime
.
ForwardResponseMessage
forward_ResourceService_GetResource_0
=
runtime
.
ForwardResponseMessage
forward_ResourceService_GetResourceByUid_0
=
runtime
.
ForwardResponseMessage
forward_ResourceService_GetResourceBinary_0
=
runtime
.
ForwardResponseMessage
forward_ResourceService_UpdateResource_0
=
runtime
.
ForwardResponseMessage
forward_ResourceService_DeleteResource_0
=
runtime
.
ForwardResponseMessage
...
...
proto/gen/api/v1/resource_service_grpc.pb.go
View file @
0dcd0904
...
...
@@ -24,7 +24,6 @@ const (
ResourceService_CreateResource_FullMethodName
=
"/memos.api.v1.ResourceService/CreateResource"
ResourceService_ListResources_FullMethodName
=
"/memos.api.v1.ResourceService/ListResources"
ResourceService_GetResource_FullMethodName
=
"/memos.api.v1.ResourceService/GetResource"
ResourceService_GetResourceByUid_FullMethodName
=
"/memos.api.v1.ResourceService/GetResourceByUid"
ResourceService_GetResourceBinary_FullMethodName
=
"/memos.api.v1.ResourceService/GetResourceBinary"
ResourceService_UpdateResource_FullMethodName
=
"/memos.api.v1.ResourceService/UpdateResource"
ResourceService_DeleteResource_FullMethodName
=
"/memos.api.v1.ResourceService/DeleteResource"
...
...
@@ -40,8 +39,6 @@ type ResourceServiceClient interface {
ListResources
(
ctx
context
.
Context
,
in
*
ListResourcesRequest
,
opts
...
grpc
.
CallOption
)
(
*
ListResourcesResponse
,
error
)
// GetResource returns a resource by name.
GetResource
(
ctx
context
.
Context
,
in
*
GetResourceRequest
,
opts
...
grpc
.
CallOption
)
(
*
Resource
,
error
)
// GetResourceByUid returns a resource by uid.
GetResourceByUid
(
ctx
context
.
Context
,
in
*
GetResourceByUidRequest
,
opts
...
grpc
.
CallOption
)
(
*
Resource
,
error
)
// GetResourceBinary returns a resource binary by name.
GetResourceBinary
(
ctx
context
.
Context
,
in
*
GetResourceBinaryRequest
,
opts
...
grpc
.
CallOption
)
(
*
httpbody
.
HttpBody
,
error
)
// UpdateResource updates a resource.
...
...
@@ -88,16 +85,6 @@ func (c *resourceServiceClient) GetResource(ctx context.Context, in *GetResource
return
out
,
nil
}
func
(
c
*
resourceServiceClient
)
GetResourceByUid
(
ctx
context
.
Context
,
in
*
GetResourceByUidRequest
,
opts
...
grpc
.
CallOption
)
(
*
Resource
,
error
)
{
cOpts
:=
append
([]
grpc
.
CallOption
{
grpc
.
StaticMethod
()},
opts
...
)
out
:=
new
(
Resource
)
err
:=
c
.
cc
.
Invoke
(
ctx
,
ResourceService_GetResourceByUid_FullMethodName
,
in
,
out
,
cOpts
...
)
if
err
!=
nil
{
return
nil
,
err
}
return
out
,
nil
}
func
(
c
*
resourceServiceClient
)
GetResourceBinary
(
ctx
context
.
Context
,
in
*
GetResourceBinaryRequest
,
opts
...
grpc
.
CallOption
)
(
*
httpbody
.
HttpBody
,
error
)
{
cOpts
:=
append
([]
grpc
.
CallOption
{
grpc
.
StaticMethod
()},
opts
...
)
out
:=
new
(
httpbody
.
HttpBody
)
...
...
@@ -138,8 +125,6 @@ type ResourceServiceServer interface {
ListResources
(
context
.
Context
,
*
ListResourcesRequest
)
(
*
ListResourcesResponse
,
error
)
// GetResource returns a resource by name.
GetResource
(
context
.
Context
,
*
GetResourceRequest
)
(
*
Resource
,
error
)
// GetResourceByUid returns a resource by uid.
GetResourceByUid
(
context
.
Context
,
*
GetResourceByUidRequest
)
(
*
Resource
,
error
)
// GetResourceBinary returns a resource binary by name.
GetResourceBinary
(
context
.
Context
,
*
GetResourceBinaryRequest
)
(
*
httpbody
.
HttpBody
,
error
)
// UpdateResource updates a resource.
...
...
@@ -165,9 +150,6 @@ func (UnimplementedResourceServiceServer) ListResources(context.Context, *ListRe
func
(
UnimplementedResourceServiceServer
)
GetResource
(
context
.
Context
,
*
GetResourceRequest
)
(
*
Resource
,
error
)
{
return
nil
,
status
.
Errorf
(
codes
.
Unimplemented
,
"method GetResource not implemented"
)
}
func
(
UnimplementedResourceServiceServer
)
GetResourceByUid
(
context
.
Context
,
*
GetResourceByUidRequest
)
(
*
Resource
,
error
)
{
return
nil
,
status
.
Errorf
(
codes
.
Unimplemented
,
"method GetResourceByUid not implemented"
)
}
func
(
UnimplementedResourceServiceServer
)
GetResourceBinary
(
context
.
Context
,
*
GetResourceBinaryRequest
)
(
*
httpbody
.
HttpBody
,
error
)
{
return
nil
,
status
.
Errorf
(
codes
.
Unimplemented
,
"method GetResourceBinary not implemented"
)
}
...
...
@@ -252,24 +234,6 @@ func _ResourceService_GetResource_Handler(srv interface{}, ctx context.Context,
return
interceptor
(
ctx
,
in
,
info
,
handler
)
}
func
_ResourceService_GetResourceByUid_Handler
(
srv
interface
{},
ctx
context
.
Context
,
dec
func
(
interface
{})
error
,
interceptor
grpc
.
UnaryServerInterceptor
)
(
interface
{},
error
)
{
in
:=
new
(
GetResourceByUidRequest
)
if
err
:=
dec
(
in
);
err
!=
nil
{
return
nil
,
err
}
if
interceptor
==
nil
{
return
srv
.
(
ResourceServiceServer
)
.
GetResourceByUid
(
ctx
,
in
)
}
info
:=
&
grpc
.
UnaryServerInfo
{
Server
:
srv
,
FullMethod
:
ResourceService_GetResourceByUid_FullMethodName
,
}
handler
:=
func
(
ctx
context
.
Context
,
req
interface
{})
(
interface
{},
error
)
{
return
srv
.
(
ResourceServiceServer
)
.
GetResourceByUid
(
ctx
,
req
.
(
*
GetResourceByUidRequest
))
}
return
interceptor
(
ctx
,
in
,
info
,
handler
)
}
func
_ResourceService_GetResourceBinary_Handler
(
srv
interface
{},
ctx
context
.
Context
,
dec
func
(
interface
{})
error
,
interceptor
grpc
.
UnaryServerInterceptor
)
(
interface
{},
error
)
{
in
:=
new
(
GetResourceBinaryRequest
)
if
err
:=
dec
(
in
);
err
!=
nil
{
...
...
@@ -343,10 +307,6 @@ var ResourceService_ServiceDesc = grpc.ServiceDesc{
MethodName
:
"GetResource"
,
Handler
:
_ResourceService_GetResource_Handler
,
},
{
MethodName
:
"GetResourceByUid"
,
Handler
:
_ResourceService_GetResourceByUid_Handler
,
},
{
MethodName
:
"GetResourceBinary"
,
Handler
:
_ResourceService_GetResourceBinary_Handler
,
...
...
proto/gen/apidocs.swagger.yaml
View file @
0dcd0904
...
...
@@ -409,27 +409,6 @@ paths:
$ref
:
'
#/definitions/v1Resource'
tags
:
-
ResourceService
/api/v1/resources:by-uid/{uid}
:
get
:
summary
:
GetResourceByUid returns a resource by uid.
operationId
:
ResourceService_GetResourceByUid
responses
:
"
200"
:
description
:
A successful response.
schema
:
$ref
:
'
#/definitions/v1Resource'
default
:
description
:
An unexpected error response.
schema
:
$ref
:
'
#/definitions/googlerpcStatus'
parameters
:
-
name
:
uid
description
:
The uid of the resource.
in
:
path
required
:
true
type
:
string
tags
:
-
ResourceService
/api/v1/users
:
get
:
summary
:
ListUsers returns a list of users.
...
...
@@ -1509,7 +1488,7 @@ paths:
-
name
:
resource.name
description
:
|-
The name of the resource.
Format: resources/{
id}, id is the system generated auto-incremented
id.
Format: resources/{
resource}, resource is the user defined if or uu
id.
in: path
required: true
type: string
...
...
@@ -1520,9 +1499,6 @@ paths:
schema
:
type
:
object
properties
:
uid
:
type
:
string
description
:
The user defined id of the resource.
createTime
:
type
:
string
format
:
date-time
...
...
@@ -2839,10 +2815,7 @@ definitions:
type
:
string
description
:
|-
The name of the resource.
Format: resources/{id}, id is the system generated auto-incremented id.
uid
:
type
:
string
description
:
The user defined id of the resource.
Format: resources/{resource}, resource is the user defined if or uuid.
createTime
:
type
:
string
format
:
date-time
...
...
server/router/api/v1/acl_config.go
View file @
0dcd0904
...
...
@@ -16,11 +16,9 @@ var authenticationAllowlistMethods = map[string]bool{
"/memos.api.v1.UserService/ListAllUserStats"
:
true
,
"/memos.api.v1.UserService/SearchUsers"
:
true
,
"/memos.api.v1.MemoService/GetMemo"
:
true
,
"/memos.api.v1.MemoService/GetMemoByUid"
:
true
,
"/memos.api.v1.MemoService/ListMemos"
:
true
,
"/memos.api.v1.MarkdownService/GetLinkMetadata"
:
true
,
"/memos.api.v1.ResourceService/GetResourceBinary"
:
true
,
"/memos.api.v1.ResourceService/GetResourceByUid"
:
true
,
}
// isUnauthorizeAllowedMethod returns whether the method is exempted from authentication.
...
...
server/router/api/v1/memo_resource_service.go
View file @
0dcd0904
...
...
@@ -33,7 +33,11 @@ func (s *APIV1Service) SetMemoResources(ctx context.Context, request *v1pb.SetMe
for
_
,
resource
:=
range
resources
{
found
:=
false
for
_
,
requestResource
:=
range
request
.
Resources
{
if
resource
.
UID
==
requestResource
.
Uid
{
requestResourceUID
,
err
:=
ExtractResourceUIDFromName
(
requestResource
.
Name
)
if
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
InvalidArgument
,
"invalid resource name: %v"
,
err
)
}
if
resource
.
UID
==
requestResourceUID
{
found
=
true
break
}
...
...
@@ -51,13 +55,17 @@ func (s *APIV1Service) SetMemoResources(ctx context.Context, request *v1pb.SetMe
slices
.
Reverse
(
request
.
Resources
)
// Update resources' memo_id in the request.
for
index
,
resource
:=
range
request
.
Resources
{
id
,
err
:=
ExtractResource
IDFromName
(
resource
.
Name
)
resourceUID
,
err
:=
ExtractResourceU
IDFromName
(
resource
.
Name
)
if
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
InvalidArgument
,
"invalid resource name: %v"
,
err
)
}
tempResource
,
err
:=
s
.
Store
.
GetResource
(
ctx
,
&
store
.
FindResource
{
UID
:
&
resourceUID
})
if
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to get resource: %v"
,
err
)
}
updatedTs
:=
time
.
Now
()
.
Unix
()
+
int64
(
index
)
if
err
:=
s
.
Store
.
UpdateResource
(
ctx
,
&
store
.
UpdateResource
{
ID
:
id
,
ID
:
tempResource
.
ID
,
MemoID
:
&
memo
.
ID
,
UpdatedTs
:
&
updatedTs
,
});
err
!=
nil
{
...
...
server/router/api/v1/memo_service_converter.go
View file @
0dcd0904
...
...
@@ -29,7 +29,6 @@ func (s *APIV1Service) convertMemoFromStore(ctx context.Context, memo *store.Mem
name
:=
fmt
.
Sprintf
(
"%s%s"
,
MemoNamePrefix
,
memo
.
UID
)
memoMessage
:=
&
v1pb
.
Memo
{
Name
:
name
,
Uid
:
memo
.
ID
,
State
:
convertStateFromStore
(
memo
.
RowStatus
),
Creator
:
fmt
.
Sprintf
(
"%s%d"
,
UserNamePrefix
,
memo
.
CreatorID
),
CreateTime
:
timestamppb
.
New
(
time
.
Unix
(
memo
.
CreatedTs
,
0
)),
...
...
server/router/api/v1/resource_name.go
View file @
0dcd0904
...
...
@@ -72,16 +72,13 @@ func ExtractMemoUIDFromName(name string) (string, error) {
return
id
,
nil
}
// ExtractResource
IDFromName returns the resource
ID from a resource name.
func
ExtractResource
IDFromName
(
name
string
)
(
int32
,
error
)
{
// ExtractResource
UIDFromName returns the resource U
ID from a resource name.
func
ExtractResource
UIDFromName
(
name
string
)
(
string
,
error
)
{
tokens
,
err
:=
GetNameParentTokens
(
name
,
ResourceNamePrefix
)
if
err
!=
nil
{
return
0
,
err
}
id
,
err
:=
util
.
ConvertStringToInt32
(
tokens
[
0
])
if
err
!=
nil
{
return
0
,
errors
.
Errorf
(
"invalid resource ID %q"
,
tokens
[
0
])
return
""
,
err
}
id
:=
tokens
[
0
]
return
id
,
nil
}
...
...
server/router/api/v1/resource_service.go
View file @
0dcd0904
...
...
@@ -114,27 +114,11 @@ func (s *APIV1Service) ListResources(ctx context.Context, _ *v1pb.ListResourcesR
}
func
(
s
*
APIV1Service
)
GetResource
(
ctx
context
.
Context
,
request
*
v1pb
.
GetResourceRequest
)
(
*
v1pb
.
Resource
,
error
)
{
id
,
err
:=
ExtractResource
IDFromName
(
request
.
Name
)
resourceUID
,
err
:=
ExtractResourceU
IDFromName
(
request
.
Name
)
if
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
InvalidArgument
,
"invalid resource id: %v"
,
err
)
}
resource
,
err
:=
s
.
Store
.
GetResource
(
ctx
,
&
store
.
FindResource
{
ID
:
&
id
,
})
if
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to get resource: %v"
,
err
)
}
if
resource
==
nil
{
return
nil
,
status
.
Errorf
(
codes
.
NotFound
,
"resource not found"
)
}
return
s
.
convertResourceFromStore
(
ctx
,
resource
),
nil
}
//nolint:all
func
(
s
*
APIV1Service
)
GetResourceByUid
(
ctx
context
.
Context
,
request
*
v1pb
.
GetResourceByUidRequest
)
(
*
v1pb
.
Resource
,
error
)
{
resource
,
err
:=
s
.
Store
.
GetResource
(
ctx
,
&
store
.
FindResource
{
UID
:
&
request
.
Uid
,
})
resource
,
err
:=
s
.
Store
.
GetResource
(
ctx
,
&
store
.
FindResource
{
UID
:
&
resourceUID
})
if
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to get resource: %v"
,
err
)
}
...
...
@@ -149,11 +133,11 @@ func (s *APIV1Service) GetResourceBinary(ctx context.Context, request *v1pb.GetR
GetBlob
:
true
,
}
if
request
.
Name
!=
""
{
id
,
err
:=
ExtractResource
IDFromName
(
request
.
Name
)
resourceUID
,
err
:=
ExtractResourceU
IDFromName
(
request
.
Name
)
if
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
InvalidArgument
,
"invalid resource id: %v"
,
err
)
}
resourceFind
.
ID
=
&
id
resourceFind
.
UID
=
&
resourceUID
}
resource
,
err
:=
s
.
Store
.
GetResource
(
ctx
,
resourceFind
)
if
err
!=
nil
{
...
...
@@ -215,17 +199,21 @@ func (s *APIV1Service) GetResourceBinary(ctx context.Context, request *v1pb.GetR
}
func
(
s
*
APIV1Service
)
UpdateResource
(
ctx
context
.
Context
,
request
*
v1pb
.
UpdateResourceRequest
)
(
*
v1pb
.
Resource
,
error
)
{
id
,
err
:=
ExtractResource
IDFromName
(
request
.
Resource
.
Name
)
resourceUID
,
err
:=
ExtractResourceU
IDFromName
(
request
.
Resource
.
Name
)
if
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
InvalidArgument
,
"invalid resource id: %v"
,
err
)
}
if
request
.
UpdateMask
==
nil
||
len
(
request
.
UpdateMask
.
Paths
)
==
0
{
return
nil
,
status
.
Errorf
(
codes
.
InvalidArgument
,
"update mask is required"
)
}
resource
,
err
:=
s
.
Store
.
GetResource
(
ctx
,
&
store
.
FindResource
{
UID
:
&
resourceUID
})
if
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to get resource: %v"
,
err
)
}
currentTs
:=
time
.
Now
()
.
Unix
()
update
:=
&
store
.
UpdateResource
{
ID
:
id
,
ID
:
resource
.
ID
,
UpdatedTs
:
&
currentTs
,
}
for
_
,
field
:=
range
request
.
UpdateMask
.
Paths
{
...
...
@@ -243,7 +231,7 @@ func (s *APIV1Service) UpdateResource(ctx context.Context, request *v1pb.UpdateR
}
func
(
s
*
APIV1Service
)
DeleteResource
(
ctx
context
.
Context
,
request
*
v1pb
.
DeleteResourceRequest
)
(
*
emptypb
.
Empty
,
error
)
{
id
,
err
:=
ExtractResource
IDFromName
(
request
.
Name
)
resourceUID
,
err
:=
ExtractResourceU
IDFromName
(
request
.
Name
)
if
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
InvalidArgument
,
"invalid resource id: %v"
,
err
)
}
...
...
@@ -252,7 +240,7 @@ func (s *APIV1Service) DeleteResource(ctx context.Context, request *v1pb.DeleteR
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to get current user: %v"
,
err
)
}
resource
,
err
:=
s
.
Store
.
GetResource
(
ctx
,
&
store
.
FindResource
{
ID
:
&
id
,
UID
:
&
resourceUID
,
CreatorID
:
&
user
.
ID
,
})
if
err
!=
nil
{
...
...
@@ -272,8 +260,7 @@ func (s *APIV1Service) DeleteResource(ctx context.Context, request *v1pb.DeleteR
func
(
s
*
APIV1Service
)
convertResourceFromStore
(
ctx
context
.
Context
,
resource
*
store
.
Resource
)
*
v1pb
.
Resource
{
resourceMessage
:=
&
v1pb
.
Resource
{
Name
:
fmt
.
Sprintf
(
"%s%d"
,
ResourceNamePrefix
,
resource
.
ID
),
Uid
:
resource
.
UID
,
Name
:
fmt
.
Sprintf
(
"%s%s"
,
ResourceNamePrefix
,
resource
.
UID
),
CreateTime
:
timestamppb
.
New
(
time
.
Unix
(
resource
.
CreatedTs
,
0
)),
Filename
:
resource
.
Filename
,
Type
:
resource
.
Type
,
...
...
web/src/components/MemoContent/EmbeddedContent/EmbeddedResource.tsx
View file @
0dcd0904
...
...
@@ -42,7 +42,7 @@ const EmbeddedResource = ({ resourceId: uid, params: paramsStr }: Props) => {
const
params
=
new
URLSearchParams
(
paramsStr
);
useEffect
(()
=>
{
resourceStore
.
fetchResourceBy
UID
(
uid
).
finally
(()
=>
loadingState
.
setFinish
());
resourceStore
.
fetchResourceBy
Name
(
`resources/
${
uid
}
`
).
finally
(()
=>
loadingState
.
setFinish
());
},
[
uid
]);
if
(
loadingState
.
isLoading
)
{
...
...
web/src/store/v1/resource.ts
View file @
0dcd0904
...
...
@@ -15,9 +15,9 @@ export const useResourceStore = create(
combine
(
getDefaultState
(),
(
set
,
get
)
=>
({
setState
:
(
state
:
State
)
=>
set
(
state
),
getState
:
()
=>
get
(),
fetchResourceBy
UID
:
async
(
uid
:
string
)
=>
{
const
resource
=
await
resourceServiceClient
.
getResource
ByUid
({
uid
,
fetchResourceBy
Name
:
async
(
name
:
string
)
=>
{
const
resource
=
await
resourceServiceClient
.
getResource
({
name
,
});
const
resourceMap
=
get
().
resourceMapByName
;
resourceMap
[
resource
.
name
]
=
resource
;
...
...
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