14 Commits

Author SHA1 Message Date
67fb7fc74e include AssetVersion 2025-06-21 20:06:43 -07:00
bbfa1cad3b thumbnail doesn't make sense as a filter option 2025-06-21 19:36:55 -07:00
1f5668308c add new fields to maps 2025-06-21 19:34:49 -07:00
ad8e4ebacf Add auth metadata endpoint
All checks were successful
continuous-integration/drone/push Build is passing
2025-06-21 21:25:50 -04:00
b636336ed2 extend code generation to lib.rs
All checks were successful
continuous-integration/drone/push Build is passing
2025-06-21 06:13:02 -07:00
5641c3a33e generate code in src
All checks were successful
continuous-integration/drone/push Build is passing
2025-06-21 05:59:45 -07:00
ef23f7d07e Add chat mute rpc endpoint
All checks were successful
continuous-integration/drone/push Build is passing
2025-06-21 03:41:14 -04:00
a8135fd45c Add moderation protobuf
All checks were successful
continuous-integration/drone/push Build is passing
2025-06-20 12:14:14 -04:00
05f8a3b57e Support future roblox role changes
All checks were successful
continuous-integration/drone/push Build is passing
2024-11-29 03:11:54 -05:00
fab429fc74 Refine session user response
All checks were successful
continuous-integration/drone/push Build is passing
2024-11-28 23:09:53 -05:00
cc0845f68e Add auth service protobuf
All checks were successful
continuous-integration/drone/push Build is passing
2024-11-28 00:12:09 -05:00
2186c5cb96 Remove Map ID filter (previously it was just 0) (#3)
All checks were successful
continuous-integration/drone/push Build is passing
ID is unused and unwanted for MapFilter.

Reviewed-on: #3
Reviewed-by: itzaname <itzaname@noreply@itzana.me>
Co-authored-by: Quaternions <krakow20@gmail.com>
Co-committed-by: Quaternions <krakow20@gmail.com>
2024-07-22 00:40:43 +00:00
f8d480e834 fix inconsistency (#2)
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #2
Co-authored-by: Quaternions <krakow20@gmail.com>
Co-committed-by: Quaternions <krakow20@gmail.com>
2024-07-19 19:00:53 +00:00
5cfa6745a6 need serde rename or else everything is wrong
All checks were successful
continuous-integration/drone/push Build is passing
we really out here doing codegen
2024-07-18 15:11:53 -07:00
6 changed files with 108 additions and 9 deletions

45
auth.proto Normal file
View 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;
}

View File

@@ -27,6 +27,11 @@ message MapResponse {
string Creator = 3;
int32 GameID = 4;
int64 Date = 5;
int64 CreatedAt = 6;
int64 UpdatedAt = 7;
int64 Submitter = 8;
int64 Thumbnail = 9;
int64 AssetVersion = 10;
}
message MapRequest {
@@ -35,13 +40,14 @@ message MapRequest {
optional string Creator = 3;
optional int32 GameID = 4;
optional int64 Date = 5;
optional int64 Submitter = 6;
}
message MapFilter {
int64 ID = 1;
optional string DisplayName = 2;
optional string Creator = 3;
optional int32 GameID = 4;
optional int64 Submitter = 5;
}
message MapList {
@@ -59,5 +65,4 @@ message Pagination {
}
message NullResponse {
}
}

31
moderation.proto Normal file
View 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;
}

View File

@@ -1,13 +1,29 @@
#!/bin/bash
rm ./rust-grpc/src/lib.rs
for f in *.proto
do
name=$(basename $f .proto)
mkdir -p ./rust-grpc/$name
module=./rust-grpc/src/$name
mkdir -p $module
protoc \
--prost_out=./rust-grpc/$name \
--tonic_out=./rust-grpc/$name \
--prost_out=$module \
--tonic_out=$module \
$f
#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"
done
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"
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

View File

@@ -27,7 +27,7 @@ message TransactionCreate {
message TransactionUpdate {
string ID = 1;
optional int64 Value = 2;
optional int64 StateID = 3;
optional int32 StateID = 3;
optional google.protobuf.Struct Data = 4;
}

View File

@@ -25,12 +25,14 @@ message UserResponse {
int64 ID = 1;
string Username = 2;
int32 StateID = 3;
bool Muted = 4;
}
message UserRequest {
int64 ID = 1;
optional string Username = 2;
optional int32 StateID = 3;
optional bool Muted = 4;
}
message UserFilter {