12 Commits

Author SHA1 Message Date
0773cba6c7 bot_analyzer: directly accept download url
All checks were successful
continuous-integration/drone/push Build is passing
2025-09-21 17:35:09 -07:00
63ad706dd9 bot_analyzer
All checks were successful
continuous-integration/drone/push Build is passing
2025-09-21 17:02:53 -07:00
8dce6ee1ba validator: remove Submission.SetStatusNotReleased
All checks were successful
continuous-integration/drone/push Build is passing
2025-08-14 18:33:07 -07:00
9a7a123284 validator: add operation success endpoint
All checks were successful
continuous-integration/drone/push Build is passing
2025-08-14 16:55:37 -07:00
e7913b7950 validator: add failure endpoints with a uniform naming convention
All checks were successful
continuous-integration/drone/push Build is passing
2025-08-14 15:59:04 -07:00
6210d5dac9 validator: add SubmissionReleaseRequest
All checks were successful
continuous-integration/drone/push Build is passing
2025-08-13 19:11:00 -07:00
80201e09fd validator: fix MapfixReleaseRequest 2025-08-13 19:10:56 -07:00
4e6ed67dda fix prost codegen
All checks were successful
continuous-integration/drone/push Build is passing
2025-08-13 18:51:11 -07:00
1ed8ffbc3c update sed codegen
All checks were successful
continuous-integration/drone/push Build is passing
2025-08-13 18:28:00 -07:00
e252921e91 validator: submission and mapfix release endpoints (#11)
All checks were successful
continuous-integration/drone/push Build is passing
These endpoints proxy the creation and updation of maps_extended entries, while also updating the relevant submission / mapfix status.

Reviewed-on: #11
Co-authored-by: Rhys Lloyd <krakow20@gmail.com>
Co-committed-by: Rhys Lloyd <krakow20@gmail.com>
2025-08-14 00:49:29 +00:00
eb8d873290 fix maps.Thumbnail
All checks were successful
continuous-integration/drone/push Build is passing
2025-08-06 17:50:02 -07:00
69aa45ffe6 Cut Down Maps Fields (#5)
All checks were successful
continuous-integration/drone/push Build is passing
Remove fields from MapResponse and other structs that will not be used in embedded contexts.

Reviewed-on: #5
Co-authored-by: Rhys Lloyd <krakow20@gmail.com>
Co-committed-by: Rhys Lloyd <krakow20@gmail.com>
2025-08-07 00:39:45 +00:00
4 changed files with 46 additions and 10 deletions

11
bot_analyzer.proto Normal file
View File

@@ -0,0 +1,11 @@
syntax = "proto3";
option go_package = "git.itzana.me/strafesnet/go-grpc/bot_analyzer";
package bot_analyzer;
service BotAnalyzer { rpc Analyze(DownloadUrl) returns (AnalysisResponse); }
message DownloadUrl { string Url = 1; }
message AnalysisResponse { string Analysis = 1; }

View File

@@ -24,22 +24,19 @@ message IdMessage {
message MapResponse {
int64 ID = 1;
string DisplayName = 2;
string Creator = 3;
int32 GameID = 4;
int64 Date = 5;
uint64 Thumbnail = 6;
}
message MapRequest {
int64 ID = 1;
optional string DisplayName = 2;
optional string Creator = 3;
optional int32 GameID = 4;
optional int64 Date = 5;
optional uint64 Thumbnail = 6;
}
message MapFilter {
optional string DisplayName = 2;
optional string Creator = 3;
optional int32 GameID = 4;
}
@@ -58,5 +55,4 @@ message Pagination {
}
message NullResponse {
}
}

View File

@@ -11,8 +11,12 @@ do
--prost_out=$module \
--tonic_out=$module \
$f
# prost codegen is wrong!
sed -i "s/tonic::codec::ProstCodec/tonic_prost::ProstCodec/g" "$module/$name.tonic.rs"
#I couldn't figure out how to configure protoc to do this
sed -i "s/, PartialEq, ::prost::Message)\]/, PartialEq, ::prost::Message, serde::Serialize, serde::Deserialize)\]\n#\[serde(rename_all = \"PascalCase\")\]/g" "$module/$name.rs"
sed -i "s/#\[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)\]/#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]\n#\[derive(serde::Serialize, serde::Deserialize)\]\n#\[serde(rename_all = \"PascalCase\")\]/g" "$module/$name.rs"
sed -i "s/#\[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)\]/#\[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)\]\n#\[derive(serde::Serialize, serde::Deserialize)\]\n#\[serde(rename_all = \"PascalCase\")\]/g" "$module/$name.rs"
sed -i "s/#\[derive(Clone, PartialEq, ::prost::Message)\]/#\[derive(Clone, PartialEq, ::prost::Message)\]\n#\[derive(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"

View File

@@ -2,6 +2,8 @@ syntax = "proto3";
option go_package = "git.itzana.me/strafesnet/go-grpc/validator";
import "maps_extended.proto";
package validator;
service ValidatorMapfixService {
@@ -12,8 +14,11 @@ service ValidatorMapfixService {
rpc SetStatusSubmitted(SubmittedRequest) returns (NullResponse);
rpc SetStatusRequestChanges(MapfixID) returns (NullResponse);
rpc SetStatusValidated(MapfixID) returns (NullResponse);
rpc SetStatusFailed(MapfixID) returns (NullResponse);
rpc SetStatusNotValidated(MapfixID) returns (NullResponse);
rpc SetStatusUploaded(MapfixID) returns (NullResponse);
rpc SetStatusNotUploaded(MapfixID) returns (NullResponse);
rpc SetStatusReleased(MapfixReleaseRequest) returns (NullResponse);
rpc SetStatusNotReleased(MapfixID) returns (NullResponse);
}
service ValidatorSubmissionService {
@@ -24,8 +29,10 @@ service ValidatorSubmissionService {
rpc SetStatusSubmitted(SubmittedRequest) returns (NullResponse);
rpc SetStatusRequestChanges(SubmissionID) returns (NullResponse);
rpc SetStatusValidated(SubmissionID) returns (NullResponse);
rpc SetStatusFailed(SubmissionID) returns (NullResponse);
rpc SetStatusNotValidated(SubmissionID) returns (NullResponse);
rpc SetStatusUploaded(StatusUploadedRequest) returns (NullResponse);
rpc SetStatusNotUploaded(SubmissionID) returns (NullResponse);
rpc SetStatusReleased(SubmissionReleaseRequest) returns (NullResponse);
}
message MapfixID { uint64 ID = 1; }
@@ -89,13 +96,31 @@ message StatusUploadedRequest {
uint64 UploadedAssetID = 2;
}
message MapfixReleaseRequest {
uint64 MapfixID = 1;
uint64 TargetAssetID = 2;
uint64 AssetVersion = 3;
uint32 Modes = 4;
}
message SubmissionReleaseRequest {
uint64 SubmissionID = 1;
maps_extended.MapCreate MapCreate = 2;
}
message NullResponse {}
// Operations
service ValidatorOperationService {
rpc Success(OperationSuccessRequest) returns (NullResponse);
rpc Fail(OperationFailRequest) returns (NullResponse);
}
message OperationSuccessRequest {
uint32 OperationID = 1;
string Path = 2;
}
message OperationFailRequest {
uint32 OperationID = 1;
string StatusMessage = 2;