Compare commits
16 Commits
serde-rena
...
b8bc25bb8e
| Author | SHA1 | Date | |
|---|---|---|---|
| b8bc25bb8e | |||
| 34e63ea6ba | |||
| 6497b12c5b | |||
| a1d08b3ea6 | |||
| 82ca9f2b0c | |||
| ad8e4ebacf | |||
|
b636336ed2
|
|||
|
5641c3a33e
|
|||
| ef23f7d07e | |||
| a8135fd45c | |||
| 05f8a3b57e | |||
| fab429fc74 | |||
| cc0845f68e | |||
| 2186c5cb96 | |||
| f8d480e834 | |||
| 5cfa6745a6 |
45
auth.proto
Normal file
45
auth.proto
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
option go_package = "git.itzana.me/strafesnet/go-grpc/auth";
|
||||||
|
|
||||||
|
package auth;
|
||||||
|
|
||||||
|
import "google/protobuf/empty.proto";
|
||||||
|
|
||||||
|
service AuthService {
|
||||||
|
rpc GetSessionUser(IdMessage) returns (SessionUserResponse);
|
||||||
|
rpc GetGroupRole(IdMessage) returns (RoleReponse);
|
||||||
|
rpc ValidateSession(IdMessage) returns (ValidateResponse);
|
||||||
|
rpc GetAuthMetadata(google.protobuf.Empty) returns (AuthMetadataResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
message IdMessage {
|
||||||
|
string SessionID = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SessionUserResponse {
|
||||||
|
uint64 UserID = 1;
|
||||||
|
string Username = 2;
|
||||||
|
string AvatarURL = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message RoleReponse {
|
||||||
|
repeated RoleItem Roles = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message RoleItem {
|
||||||
|
string ID = 1;
|
||||||
|
string DisplayName = 2;
|
||||||
|
int32 Rank = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ValidateResponse {
|
||||||
|
bool Valid = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message AuthMetadataResponse {
|
||||||
|
string LoginURL = 1;
|
||||||
|
string LogoutURL = 2;
|
||||||
|
string AccountURL = 3;
|
||||||
|
}
|
||||||
|
|
||||||
34
dev.proto
Normal file
34
dev.proto
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
option go_package = "git.itzana.me/strafesnet/go-grpc/dev";
|
||||||
|
|
||||||
|
package dev;
|
||||||
|
|
||||||
|
service DevService {
|
||||||
|
rpc Validate(APIValidationRequest) returns (APIValidationResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
message APIValidationRequest {
|
||||||
|
string Service = 1;
|
||||||
|
string Permission = 2;
|
||||||
|
string Key = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message APIValidationResponse {
|
||||||
|
// Response
|
||||||
|
bool Valid = 1;
|
||||||
|
string ErrorMessage = 2;
|
||||||
|
int32 StatusCode = 3;
|
||||||
|
// Remaining limits
|
||||||
|
uint64 RemainingBurst = 4;
|
||||||
|
uint64 RemainingDaily = 5;
|
||||||
|
uint64 RemainingMonthly = 6;
|
||||||
|
// Quota
|
||||||
|
uint64 BurstLimit = 7;
|
||||||
|
uint64 BurstDurationSeconds = 8;
|
||||||
|
uint64 DailyLimit = 9;
|
||||||
|
uint64 MonthlyLimit = 10;
|
||||||
|
// Owner info
|
||||||
|
uint64 UserID = 11;
|
||||||
|
string Application = 12;
|
||||||
|
}
|
||||||
@@ -38,7 +38,6 @@ message MapRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
message MapFilter {
|
message MapFilter {
|
||||||
int64 ID = 1;
|
|
||||||
optional string DisplayName = 2;
|
optional string DisplayName = 2;
|
||||||
optional string Creator = 3;
|
optional string Creator = 3;
|
||||||
optional int32 GameID = 4;
|
optional int32 GameID = 4;
|
||||||
|
|||||||
31
moderation.proto
Normal file
31
moderation.proto
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
option go_package = "git.itzana.me/strafesnet/go-grpc/moderation";
|
||||||
|
|
||||||
|
package moderation;
|
||||||
|
|
||||||
|
import "google/protobuf/struct.proto";
|
||||||
|
|
||||||
|
service ModerationService {
|
||||||
|
rpc SetState(SetStateRequest) returns (Null);
|
||||||
|
rpc SetMuted(SetMuteRequest) returns (Null);
|
||||||
|
}
|
||||||
|
|
||||||
|
message Null {}
|
||||||
|
|
||||||
|
message SetStateRequest {
|
||||||
|
int64 UserID = 1;
|
||||||
|
int64 ModeratorID = 2;
|
||||||
|
int32 ReasonID = 3;
|
||||||
|
int32 StateID = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SetMuteRequest {
|
||||||
|
int64 UserID = 1;
|
||||||
|
int64 ModeratorID = 2;
|
||||||
|
bool Muted = 3;
|
||||||
|
optional int64 Duration = 4;
|
||||||
|
optional int32 ReasonID = 5;
|
||||||
|
optional string ReasonText = 6;
|
||||||
|
optional google.protobuf.Struct Metadata = 7;
|
||||||
|
}
|
||||||
@@ -1,13 +1,29 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
rm ./rust-grpc/src/lib.rs
|
||||||
|
|
||||||
for f in *.proto
|
for f in *.proto
|
||||||
do
|
do
|
||||||
name=$(basename $f .proto)
|
name=$(basename $f .proto)
|
||||||
mkdir -p ./rust-grpc/$name
|
module=./rust-grpc/src/$name
|
||||||
|
mkdir -p $module
|
||||||
protoc \
|
protoc \
|
||||||
--prost_out=./rust-grpc/$name \
|
--prost_out=$module \
|
||||||
--tonic_out=./rust-grpc/$name \
|
--tonic_out=$module \
|
||||||
$f
|
$f
|
||||||
#I couldn't figure out how to configure protoc to do this
|
#I couldn't figure out how to configure protoc to do this
|
||||||
sed -i "s/::prost::Message/::prost::Message, serde::Serialize, serde::Deserialize/g" "./rust-grpc/$name/$name.rs"
|
sed -i "s/#\[derive(Clone, PartialEq, ::prost::Message)\]/#\[derive(Clone, PartialEq, ::prost::Message, serde::Serialize, serde::Deserialize)\]\n#\[serde(rename_all = \"PascalCase\")\]/g" "$module/$name.rs"
|
||||||
done
|
sed -i "s/ pub id:/ #\[serde(rename = \"ID\")\]\n pub id:/g" "$module/$name.rs"
|
||||||
|
sed -i "s/ pub map_id:/ #\[serde(rename = \"MapID\")\]\n pub map_id:/g" "$module/$name.rs"
|
||||||
|
sed -i "s/ pub time_id:/ #\[serde(rename = \"TimeID\")\]\n pub time_id:/g" "$module/$name.rs"
|
||||||
|
sed -i "s/ pub file_id:/ #\[serde(rename = \"FileID\")\]\n pub file_id:/g" "$module/$name.rs"
|
||||||
|
sed -i "s/ pub game_id:/ #\[serde(rename = \"GameID\")\]\n pub game_id:/g" "$module/$name.rs"
|
||||||
|
sed -i "s/ pub user_id:/ #\[serde(rename = \"UserID\")\]\n pub user_id:/g" "$module/$name.rs"
|
||||||
|
sed -i "s/ pub mode_id:/ #\[serde(rename = \"ModeID\")\]\n pub mode_id:/g" "$module/$name.rs"
|
||||||
|
sed -i "s/ pub style_id:/ #\[serde(rename = \"StyleID\")\]\n pub style_id:/g" "$module/$name.rs"
|
||||||
|
sed -i "s/ pub state_id:/ #\[serde(rename = \"StateID\")\]\n pub state_id:/g" "$module/$name.rs"
|
||||||
|
sed -i "s/ pub place_id:/ #\[serde(rename = \"PlaceID\")\]\n pub place_id:/g" "$module/$name.rs"
|
||||||
|
sed -i "s/ pub vip_server_id:/ #\[serde(rename = \"VipServerID\")\]\n pub vip_server_id:/g" "$module/$name.rs"
|
||||||
|
mv "$module/$name.rs" "$module/mod.rs"
|
||||||
|
echo "pub mod $name;" >> ./rust-grpc/src/lib.rs
|
||||||
|
done
|
||||||
|
|||||||
16
times.proto
16
times.proto
@@ -14,7 +14,9 @@ service TimesService {
|
|||||||
rpc Delete(IdMessage) returns (NullResponse);
|
rpc Delete(IdMessage) returns (NullResponse);
|
||||||
rpc Get(IdMessage) returns (TimeResponse);
|
rpc Get(IdMessage) returns (TimeResponse);
|
||||||
rpc List(ListRequest) returns (TimeList);
|
rpc List(ListRequest) returns (TimeList);
|
||||||
|
rpc ListWr(WrListRequest) returns (TimeList);
|
||||||
rpc Rank(IdMessage) returns (RankResponse);
|
rpc Rank(IdMessage) returns (RankResponse);
|
||||||
|
rpc RankBatch(IdListMessage) returns (RankListResponse);
|
||||||
}
|
}
|
||||||
|
|
||||||
message TimeRequest {
|
message TimeRequest {
|
||||||
@@ -55,13 +57,22 @@ message IdMessage {
|
|||||||
int64 ID = 1;
|
int64 ID = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message IdListMessage {
|
||||||
|
repeated int64 ID = 1;
|
||||||
|
}
|
||||||
|
|
||||||
message TimeList {
|
message TimeList {
|
||||||
repeated TimeResponse Times = 1;
|
repeated TimeResponse Times = 1;
|
||||||
int64 Total = 2;
|
int64 Total = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message RankListResponse {
|
||||||
|
repeated RankResponse Ranks = 1;
|
||||||
|
}
|
||||||
|
|
||||||
message RankResponse {
|
message RankResponse {
|
||||||
int64 Rank = 1;
|
int64 Rank = 1;
|
||||||
|
int64 ID = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
message ListRequest {
|
message ListRequest {
|
||||||
@@ -77,6 +88,11 @@ message ListRequest {
|
|||||||
uint32 Sort = 4;
|
uint32 Sort = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message WrListRequest {
|
||||||
|
TimeFilter Filter = 1;
|
||||||
|
Pagination Page = 2;
|
||||||
|
}
|
||||||
|
|
||||||
message Pagination {
|
message Pagination {
|
||||||
int32 Size = 1;
|
int32 Size = 1;
|
||||||
int32 Number = 2;
|
int32 Number = 2;
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ message TransactionCreate {
|
|||||||
message TransactionUpdate {
|
message TransactionUpdate {
|
||||||
string ID = 1;
|
string ID = 1;
|
||||||
optional int64 Value = 2;
|
optional int64 Value = 2;
|
||||||
optional int64 StateID = 3;
|
optional int32 StateID = 3;
|
||||||
optional google.protobuf.Struct Data = 4;
|
optional google.protobuf.Struct Data = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,12 +25,14 @@ message UserResponse {
|
|||||||
int64 ID = 1;
|
int64 ID = 1;
|
||||||
string Username = 2;
|
string Username = 2;
|
||||||
int32 StateID = 3;
|
int32 StateID = 3;
|
||||||
|
bool Muted = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
message UserRequest {
|
message UserRequest {
|
||||||
int64 ID = 1;
|
int64 ID = 1;
|
||||||
optional string Username = 2;
|
optional string Username = 2;
|
||||||
optional int32 StateID = 3;
|
optional int32 StateID = 3;
|
||||||
|
optional bool Muted = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
message UserFilter {
|
message UserFilter {
|
||||||
|
|||||||
Reference in New Issue
Block a user