add roles routes

This commit is contained in:
2026-07-06 23:32:38 +07:00
parent 728fcc6fda
commit 82ffda5c0a
9 changed files with 1029 additions and 39 deletions
+357 -38
View File
@@ -756,6 +756,102 @@ func (x *User) GetCreatedAt() *timestamppb.Timestamp {
return nil
}
type GetUserByIdReq struct {
state protoimpl.MessageState `protogen:"open.v1"`
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *GetUserByIdReq) Reset() {
*x = GetUserByIdReq{}
mi := &file_main_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *GetUserByIdReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetUserByIdReq) ProtoMessage() {}
func (x *GetUserByIdReq) ProtoReflect() protoreflect.Message {
mi := &file_main_proto_msgTypes[15]
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 GetUserByIdReq.ProtoReflect.Descriptor instead.
func (*GetUserByIdReq) Descriptor() ([]byte, []int) {
return file_main_proto_rawDescGZIP(), []int{15}
}
func (x *GetUserByIdReq) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
type GetUserByIdRsp struct {
state protoimpl.MessageState `protogen:"open.v1"`
Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *GetUserByIdRsp) Reset() {
*x = GetUserByIdRsp{}
mi := &file_main_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *GetUserByIdRsp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetUserByIdRsp) ProtoMessage() {}
func (x *GetUserByIdRsp) ProtoReflect() protoreflect.Message {
mi := &file_main_proto_msgTypes[16]
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 GetUserByIdRsp.ProtoReflect.Descriptor instead.
func (*GetUserByIdRsp) Descriptor() ([]byte, []int) {
return file_main_proto_rawDescGZIP(), []int{16}
}
func (x *GetUserByIdRsp) GetError() string {
if x != nil {
return x.Error
}
return ""
}
func (x *GetUserByIdRsp) GetUser() *User {
if x != nil {
return x.User
}
return nil
}
type GetMeReq struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
@@ -764,7 +860,7 @@ type GetMeReq struct {
func (x *GetMeReq) Reset() {
*x = GetMeReq{}
mi := &file_main_proto_msgTypes[15]
mi := &file_main_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -776,7 +872,7 @@ func (x *GetMeReq) String() string {
func (*GetMeReq) ProtoMessage() {}
func (x *GetMeReq) ProtoReflect() protoreflect.Message {
mi := &file_main_proto_msgTypes[15]
mi := &file_main_proto_msgTypes[17]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -789,7 +885,7 @@ func (x *GetMeReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetMeReq.ProtoReflect.Descriptor instead.
func (*GetMeReq) Descriptor() ([]byte, []int) {
return file_main_proto_rawDescGZIP(), []int{15}
return file_main_proto_rawDescGZIP(), []int{17}
}
type GetMeRsp struct {
@@ -802,7 +898,7 @@ type GetMeRsp struct {
func (x *GetMeRsp) Reset() {
*x = GetMeRsp{}
mi := &file_main_proto_msgTypes[16]
mi := &file_main_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -814,7 +910,7 @@ func (x *GetMeRsp) String() string {
func (*GetMeRsp) ProtoMessage() {}
func (x *GetMeRsp) ProtoReflect() protoreflect.Message {
mi := &file_main_proto_msgTypes[16]
mi := &file_main_proto_msgTypes[18]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -827,7 +923,7 @@ func (x *GetMeRsp) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetMeRsp.ProtoReflect.Descriptor instead.
func (*GetMeRsp) Descriptor() ([]byte, []int) {
return file_main_proto_rawDescGZIP(), []int{16}
return file_main_proto_rawDescGZIP(), []int{18}
}
func (x *GetMeRsp) GetError() string {
@@ -844,6 +940,198 @@ func (x *GetMeRsp) GetUser() *User {
return nil
}
type AddUserRoleReq struct {
state protoimpl.MessageState `protogen:"open.v1"`
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Role string `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *AddUserRoleReq) Reset() {
*x = AddUserRoleReq{}
mi := &file_main_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *AddUserRoleReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AddUserRoleReq) ProtoMessage() {}
func (x *AddUserRoleReq) ProtoReflect() protoreflect.Message {
mi := &file_main_proto_msgTypes[19]
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 AddUserRoleReq.ProtoReflect.Descriptor instead.
func (*AddUserRoleReq) Descriptor() ([]byte, []int) {
return file_main_proto_rawDescGZIP(), []int{19}
}
func (x *AddUserRoleReq) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *AddUserRoleReq) GetRole() string {
if x != nil {
return x.Role
}
return ""
}
type AddUserRoleRsp struct {
state protoimpl.MessageState `protogen:"open.v1"`
Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *AddUserRoleRsp) Reset() {
*x = AddUserRoleRsp{}
mi := &file_main_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *AddUserRoleRsp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AddUserRoleRsp) ProtoMessage() {}
func (x *AddUserRoleRsp) ProtoReflect() protoreflect.Message {
mi := &file_main_proto_msgTypes[20]
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 AddUserRoleRsp.ProtoReflect.Descriptor instead.
func (*AddUserRoleRsp) Descriptor() ([]byte, []int) {
return file_main_proto_rawDescGZIP(), []int{20}
}
func (x *AddUserRoleRsp) GetError() string {
if x != nil {
return x.Error
}
return ""
}
type DeleteUserRoleReq struct {
state protoimpl.MessageState `protogen:"open.v1"`
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Role string `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *DeleteUserRoleReq) Reset() {
*x = DeleteUserRoleReq{}
mi := &file_main_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *DeleteUserRoleReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteUserRoleReq) ProtoMessage() {}
func (x *DeleteUserRoleReq) ProtoReflect() protoreflect.Message {
mi := &file_main_proto_msgTypes[21]
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 DeleteUserRoleReq.ProtoReflect.Descriptor instead.
func (*DeleteUserRoleReq) Descriptor() ([]byte, []int) {
return file_main_proto_rawDescGZIP(), []int{21}
}
func (x *DeleteUserRoleReq) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *DeleteUserRoleReq) GetRole() string {
if x != nil {
return x.Role
}
return ""
}
type DeleteUserRoleRsp struct {
state protoimpl.MessageState `protogen:"open.v1"`
Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *DeleteUserRoleRsp) Reset() {
*x = DeleteUserRoleRsp{}
mi := &file_main_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *DeleteUserRoleRsp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteUserRoleRsp) ProtoMessage() {}
func (x *DeleteUserRoleRsp) ProtoReflect() protoreflect.Message {
mi := &file_main_proto_msgTypes[22]
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 DeleteUserRoleRsp.ProtoReflect.Descriptor instead.
func (*DeleteUserRoleRsp) Descriptor() ([]byte, []int) {
return file_main_proto_rawDescGZIP(), []int{22}
}
func (x *DeleteUserRoleRsp) GetError() string {
if x != nil {
return x.Error
}
return ""
}
var File_main_proto protoreflect.FileDescriptor
const file_main_proto_rawDesc = "" +
@@ -891,12 +1179,27 @@ const file_main_proto_rawDesc = "" +
"\x05roles\x18\x04 \x03(\tR\x05roles\x12\x1b\n" +
"\tis_active\x18\x05 \x01(\bR\bisActive\x129\n" +
"\n" +
"created_at\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\"\n" +
"created_at\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\" \n" +
"\x0eGetUserByIdReq\x12\x0e\n" +
"\x02id\x18\x01 \x01(\x05R\x02id\"`\n" +
"\x0eGetUserByIdRsp\x12\x14\n" +
"\x05error\x18\x01 \x01(\tR\x05error\x128\n" +
"\x04user\x18\x02 \x01(\v2$.crabs.evening_detective_server.UserR\x04user\"\n" +
"\n" +
"\bGetMeReq\"Z\n" +
"\bGetMeRsp\x12\x14\n" +
"\x05error\x18\x01 \x01(\tR\x05error\x128\n" +
"\x04user\x18\x02 \x01(\v2$.crabs.evening_detective_server.UserR\x04user2\xa4\b\n" +
"\x04user\x18\x02 \x01(\v2$.crabs.evening_detective_server.UserR\x04user\"4\n" +
"\x0eAddUserRoleReq\x12\x0e\n" +
"\x02id\x18\x01 \x01(\x05R\x02id\x12\x12\n" +
"\x04role\x18\x02 \x01(\tR\x04role\"&\n" +
"\x0eAddUserRoleRsp\x12\x14\n" +
"\x05error\x18\x01 \x01(\tR\x05error\"7\n" +
"\x11DeleteUserRoleReq\x12\x0e\n" +
"\x02id\x18\x01 \x01(\x05R\x02id\x12\x12\n" +
"\x04role\x18\x02 \x01(\tR\x04role\")\n" +
"\x11DeleteUserRoleRsp\x12\x14\n" +
"\x05error\x18\x01 \x01(\tR\x05error2\xe3\v\n" +
"\x16EveningDetectiveServer\x12v\n" +
"\x04Ping\x12'.crabs.evening_detective_server.PingReq\x1a'.crabs.evening_detective_server.PingRsp\"\x1c\x92A\bb\x06\n" +
"\x04\n" +
@@ -918,8 +1221,11 @@ const file_main_proto_rawDesc = "" +
"\x04\n" +
"\x00\x12\x00\x82\xd3\xe4\x93\x02\x11:\x01*\"\f/api/refresh\x12x\n" +
"\bGetUsers\x12+.crabs.evening_detective_server.GetUsersReq\x1a+.crabs.evening_detective_server.GetUsersRsp\"\x12\x82\xd3\xe4\x93\x02\f\x12\n" +
"/api/users\x12l\n" +
"\x05GetMe\x12(.crabs.evening_detective_server.GetMeReq\x1a(.crabs.evening_detective_server.GetMeRsp\"\x0f\x82\xd3\xe4\x93\x02\t\x12\a/api/meB\xd7\x01\x92A\xc8\x01\x12U\n" +
"/api/users\x12\x86\x01\n" +
"\vGetUserById\x12..crabs.evening_detective_server.GetUserByIdReq\x1a..crabs.evening_detective_server.GetUserByIdRsp\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/users/{id}\x12l\n" +
"\x05GetMe\x12(.crabs.evening_detective_server.GetMeReq\x1a(.crabs.evening_detective_server.GetMeRsp\"\x0f\x82\xd3\xe4\x93\x02\t\x12\a/api/me\x12\x92\x01\n" +
"\vAddUserRole\x12..crabs.evening_detective_server.AddUserRoleReq\x1a..crabs.evening_detective_server.AddUserRoleRsp\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/api/users/{id}/role/add\x12\x9e\x01\n" +
"\x0eDeleteUserRole\x121.crabs.evening_detective_server.DeleteUserRoleReq\x1a1.crabs.evening_detective_server.DeleteUserRoleRsp\"&\x82\xd3\xe4\x93\x02 :\x01*\"\x1b/api/users/{id}/role/deleteB\xd7\x01\x92A\xc8\x01\x12U\n" +
"KДокументация сервиса \"Вечерний детектив\"2\x06v0.1.0Z]\n" +
"[\n" +
"\n" +
@@ -940,7 +1246,7 @@ func file_main_proto_rawDescGZIP() []byte {
return file_main_proto_rawDescData
}
var file_main_proto_msgTypes = make([]protoimpl.MessageInfo, 17)
var file_main_proto_msgTypes = make([]protoimpl.MessageInfo, 23)
var file_main_proto_goTypes = []any{
(*PingReq)(nil), // 0: crabs.evening_detective_server.PingReq
(*PingRsp)(nil), // 1: crabs.evening_detective_server.PingRsp
@@ -957,35 +1263,48 @@ var file_main_proto_goTypes = []any{
(*GetUsersReq)(nil), // 12: crabs.evening_detective_server.GetUsersReq
(*GetUsersRsp)(nil), // 13: crabs.evening_detective_server.GetUsersRsp
(*User)(nil), // 14: crabs.evening_detective_server.User
(*GetMeReq)(nil), // 15: crabs.evening_detective_server.GetMeReq
(*GetMeRsp)(nil), // 16: crabs.evening_detective_server.GetMeRsp
(*timestamppb.Timestamp)(nil), // 17: google.protobuf.Timestamp
(*GetUserByIdReq)(nil), // 15: crabs.evening_detective_server.GetUserByIdReq
(*GetUserByIdRsp)(nil), // 16: crabs.evening_detective_server.GetUserByIdRsp
(*GetMeReq)(nil), // 17: crabs.evening_detective_server.GetMeReq
(*GetMeRsp)(nil), // 18: crabs.evening_detective_server.GetMeRsp
(*AddUserRoleReq)(nil), // 19: crabs.evening_detective_server.AddUserRoleReq
(*AddUserRoleRsp)(nil), // 20: crabs.evening_detective_server.AddUserRoleRsp
(*DeleteUserRoleReq)(nil), // 21: crabs.evening_detective_server.DeleteUserRoleReq
(*DeleteUserRoleRsp)(nil), // 22: crabs.evening_detective_server.DeleteUserRoleRsp
(*timestamppb.Timestamp)(nil), // 23: google.protobuf.Timestamp
}
var file_main_proto_depIdxs = []int32{
14, // 0: crabs.evening_detective_server.GetUsersRsp.users:type_name -> crabs.evening_detective_server.User
17, // 1: crabs.evening_detective_server.User.created_at:type_name -> google.protobuf.Timestamp
14, // 2: crabs.evening_detective_server.GetMeRsp.user:type_name -> crabs.evening_detective_server.User
0, // 3: crabs.evening_detective_server.EveningDetectiveServer.Ping:input_type -> crabs.evening_detective_server.PingReq
2, // 4: crabs.evening_detective_server.EveningDetectiveServer.Echo:input_type -> crabs.evening_detective_server.EchoReq
4, // 5: crabs.evening_detective_server.EveningDetectiveServer.Signup:input_type -> crabs.evening_detective_server.SignupReq
6, // 6: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:input_type -> crabs.evening_detective_server.RefreshPasswordReq
8, // 7: crabs.evening_detective_server.EveningDetectiveServer.Login:input_type -> crabs.evening_detective_server.LoginReq
10, // 8: crabs.evening_detective_server.EveningDetectiveServer.Refresh:input_type -> crabs.evening_detective_server.RefreshReq
12, // 9: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:input_type -> crabs.evening_detective_server.GetUsersReq
15, // 10: crabs.evening_detective_server.EveningDetectiveServer.GetMe:input_type -> crabs.evening_detective_server.GetMeReq
1, // 11: crabs.evening_detective_server.EveningDetectiveServer.Ping:output_type -> crabs.evening_detective_server.PingRsp
3, // 12: crabs.evening_detective_server.EveningDetectiveServer.Echo:output_type -> crabs.evening_detective_server.EchoRsp
5, // 13: crabs.evening_detective_server.EveningDetectiveServer.Signup:output_type -> crabs.evening_detective_server.SignupRsp
7, // 14: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:output_type -> crabs.evening_detective_server.RefreshPasswordRsp
9, // 15: crabs.evening_detective_server.EveningDetectiveServer.Login:output_type -> crabs.evening_detective_server.LoginRsp
11, // 16: crabs.evening_detective_server.EveningDetectiveServer.Refresh:output_type -> crabs.evening_detective_server.RefreshRsp
13, // 17: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:output_type -> crabs.evening_detective_server.GetUsersRsp
16, // 18: crabs.evening_detective_server.EveningDetectiveServer.GetMe:output_type -> crabs.evening_detective_server.GetMeRsp
11, // [11:19] is the sub-list for method output_type
3, // [3:11] is the sub-list for method input_type
3, // [3:3] is the sub-list for extension type_name
3, // [3:3] is the sub-list for extension extendee
0, // [0:3] is the sub-list for field type_name
23, // 1: crabs.evening_detective_server.User.created_at:type_name -> google.protobuf.Timestamp
14, // 2: crabs.evening_detective_server.GetUserByIdRsp.user:type_name -> crabs.evening_detective_server.User
14, // 3: crabs.evening_detective_server.GetMeRsp.user:type_name -> crabs.evening_detective_server.User
0, // 4: crabs.evening_detective_server.EveningDetectiveServer.Ping:input_type -> crabs.evening_detective_server.PingReq
2, // 5: crabs.evening_detective_server.EveningDetectiveServer.Echo:input_type -> crabs.evening_detective_server.EchoReq
4, // 6: crabs.evening_detective_server.EveningDetectiveServer.Signup:input_type -> crabs.evening_detective_server.SignupReq
6, // 7: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:input_type -> crabs.evening_detective_server.RefreshPasswordReq
8, // 8: crabs.evening_detective_server.EveningDetectiveServer.Login:input_type -> crabs.evening_detective_server.LoginReq
10, // 9: crabs.evening_detective_server.EveningDetectiveServer.Refresh:input_type -> crabs.evening_detective_server.RefreshReq
12, // 10: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:input_type -> crabs.evening_detective_server.GetUsersReq
15, // 11: crabs.evening_detective_server.EveningDetectiveServer.GetUserById:input_type -> crabs.evening_detective_server.GetUserByIdReq
17, // 12: crabs.evening_detective_server.EveningDetectiveServer.GetMe:input_type -> crabs.evening_detective_server.GetMeReq
19, // 13: crabs.evening_detective_server.EveningDetectiveServer.AddUserRole:input_type -> crabs.evening_detective_server.AddUserRoleReq
21, // 14: crabs.evening_detective_server.EveningDetectiveServer.DeleteUserRole:input_type -> crabs.evening_detective_server.DeleteUserRoleReq
1, // 15: crabs.evening_detective_server.EveningDetectiveServer.Ping:output_type -> crabs.evening_detective_server.PingRsp
3, // 16: crabs.evening_detective_server.EveningDetectiveServer.Echo:output_type -> crabs.evening_detective_server.EchoRsp
5, // 17: crabs.evening_detective_server.EveningDetectiveServer.Signup:output_type -> crabs.evening_detective_server.SignupRsp
7, // 18: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:output_type -> crabs.evening_detective_server.RefreshPasswordRsp
9, // 19: crabs.evening_detective_server.EveningDetectiveServer.Login:output_type -> crabs.evening_detective_server.LoginRsp
11, // 20: crabs.evening_detective_server.EveningDetectiveServer.Refresh:output_type -> crabs.evening_detective_server.RefreshRsp
13, // 21: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:output_type -> crabs.evening_detective_server.GetUsersRsp
16, // 22: crabs.evening_detective_server.EveningDetectiveServer.GetUserById:output_type -> crabs.evening_detective_server.GetUserByIdRsp
18, // 23: crabs.evening_detective_server.EveningDetectiveServer.GetMe:output_type -> crabs.evening_detective_server.GetMeRsp
20, // 24: crabs.evening_detective_server.EveningDetectiveServer.AddUserRole:output_type -> crabs.evening_detective_server.AddUserRoleRsp
22, // 25: crabs.evening_detective_server.EveningDetectiveServer.DeleteUserRole:output_type -> crabs.evening_detective_server.DeleteUserRoleRsp
15, // [15:26] is the sub-list for method output_type
4, // [4:15] is the sub-list for method input_type
4, // [4:4] is the sub-list for extension type_name
4, // [4:4] is the sub-list for extension extendee
0, // [0:4] is the sub-list for field type_name
}
func init() { file_main_proto_init() }
@@ -999,7 +1318,7 @@ func file_main_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_main_proto_rawDesc), len(file_main_proto_rawDesc)),
NumEnums: 0,
NumMessages: 17,
NumMessages: 23,
NumExtensions: 0,
NumServices: 1,
},