Compare commits
40 Commits
maps-field
...
f248c19b07
| Author | SHA1 | Date | |
|---|---|---|---|
| f248c19b07 | |||
| c400d2d58b | |||
|
0405aba995
|
|||
|
d3f2d336a0
|
|||
| 83ebab1cc6 | |||
|
0773cba6c7
|
|||
|
63ad706dd9
|
|||
|
8dce6ee1ba
|
|||
|
9a7a123284
|
|||
|
e7913b7950
|
|||
|
6210d5dac9
|
|||
|
80201e09fd
|
|||
|
4e6ed67dda
|
|||
|
1ed8ffbc3c
|
|||
| e252921e91 | |||
|
eb8d873290
|
|||
| 69aa45ffe6 | |||
|
889662bc99
|
|||
|
a9bdcbb1d7
|
|||
|
5f38e94770
|
|||
| 2285e79d6b | |||
|
522731d92a
|
|||
|
b820089a93
|
|||
|
d9db4fefb8
|
|||
|
77d88876f6
|
|||
|
d8f3fd54a6
|
|||
|
0c22f1035e
|
|||
|
e4d6e3882f
|
|||
|
7646d55b34
|
|||
|
3476ecaee0
|
|||
|
09d89e2700
|
|||
|
d5bb0a8972
|
|||
| cd767e3390 | |||
| 5b12236c59 | |||
| 4b9803cf66 | |||
| b8bc25bb8e | |||
| 34e63ea6ba | |||
| 6497b12c5b | |||
| a1d08b3ea6 | |||
| 82ca9f2b0c |
44
.drone.yml
44
.drone.yml
@@ -6,7 +6,7 @@ name: generate-go-grpc
|
|||||||
steps:
|
steps:
|
||||||
- name: clone-external
|
- name: clone-external
|
||||||
image: alpine/git
|
image: alpine/git
|
||||||
commands:
|
commands:
|
||||||
- git clone https://${GIT_USER}:${GIT_PASS}@git.itzana.me/StrafesNET/go-grpc.git
|
- git clone https://${GIT_USER}:${GIT_PASS}@git.itzana.me/StrafesNET/go-grpc.git
|
||||||
environment:
|
environment:
|
||||||
GIT_USER:
|
GIT_USER:
|
||||||
@@ -46,7 +46,7 @@ name: generate-rust-grpc
|
|||||||
steps:
|
steps:
|
||||||
- name: clone-external
|
- name: clone-external
|
||||||
image: alpine/git
|
image: alpine/git
|
||||||
commands:
|
commands:
|
||||||
- git clone https://${GIT_USER}:${GIT_PASS}@git.itzana.me/StrafesNET/rust-grpc.git
|
- git clone https://${GIT_USER}:${GIT_PASS}@git.itzana.me/StrafesNET/rust-grpc.git
|
||||||
environment:
|
environment:
|
||||||
GIT_USER:
|
GIT_USER:
|
||||||
@@ -78,43 +78,3 @@ trigger:
|
|||||||
|
|
||||||
image_pull_secrets:
|
image_pull_secrets:
|
||||||
- dockerconfigjson
|
- dockerconfigjson
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: generate-python-grpc
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: clone-external
|
|
||||||
image: alpine/git
|
|
||||||
commands:
|
|
||||||
- git clone https://$GIT_USER:$GIT_PASS@git.itzana.me/StrafesNET/python-grpc.git
|
|
||||||
environment:
|
|
||||||
GIT_USER:
|
|
||||||
from_secret: GIT_USER
|
|
||||||
GIT_PASS:
|
|
||||||
from_secret: GIT_PASS
|
|
||||||
|
|
||||||
- name: generate
|
|
||||||
image: registry.itzana.me/strafesnet/tools/python-grpc:latest
|
|
||||||
commands:
|
|
||||||
- scripts/python-gen.sh
|
|
||||||
|
|
||||||
- name: commit
|
|
||||||
image: alpine/git
|
|
||||||
commands:
|
|
||||||
- cd python-grpc
|
|
||||||
- git add *
|
|
||||||
- 'git commit -m "Autogenerated update for ${DRONE_COMMIT_LINK}" || true'
|
|
||||||
- git push https://$GIT_USER:$GIT_PASS@git.itzana.me/StrafesNET/python-grpc.git --all
|
|
||||||
environment:
|
|
||||||
GIT_USER:
|
|
||||||
from_secret: GIT_USER
|
|
||||||
GIT_PASS:
|
|
||||||
from_secret: GIT_PASS
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
ref:
|
|
||||||
- refs/heads/master
|
|
||||||
|
|
||||||
image_pull_secrets:
|
|
||||||
- dockerconfigjson
|
|
||||||
14
auth.proto
14
auth.proto
@@ -11,6 +11,7 @@ service AuthService {
|
|||||||
rpc GetGroupRole(IdMessage) returns (RoleReponse);
|
rpc GetGroupRole(IdMessage) returns (RoleReponse);
|
||||||
rpc ValidateSession(IdMessage) returns (ValidateResponse);
|
rpc ValidateSession(IdMessage) returns (ValidateResponse);
|
||||||
rpc GetAuthMetadata(google.protobuf.Empty) returns (AuthMetadataResponse);
|
rpc GetAuthMetadata(google.protobuf.Empty) returns (AuthMetadataResponse);
|
||||||
|
rpc GetAvatars(AvatarListRequest) returns (AvatarListResponse);
|
||||||
}
|
}
|
||||||
|
|
||||||
message IdMessage {
|
message IdMessage {
|
||||||
@@ -43,3 +44,16 @@ message AuthMetadataResponse {
|
|||||||
string AccountURL = 3;
|
string AccountURL = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message AvatarListRequest {
|
||||||
|
repeated uint64 UserIDs = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message AvatarItem {
|
||||||
|
uint64 UserID = 1;
|
||||||
|
string AvatarURL = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message AvatarListResponse {
|
||||||
|
repeated AvatarItem Avatars = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
11
bot_analyzer.proto
Normal file
11
bot_analyzer.proto
Normal 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; }
|
||||||
36
dev.proto
Normal file
36
dev.proto
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
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;
|
||||||
|
string IP = 4;
|
||||||
|
string Resource = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
81
mapfixes.proto
Normal file
81
mapfixes.proto
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
package mapfixes;
|
||||||
|
|
||||||
|
option go_package = "git.itzana.me/strafesnet/go-grpc/mapfixes";
|
||||||
|
|
||||||
|
service MapfixesService {
|
||||||
|
rpc Get(MapfixId) returns (MapfixResponse);
|
||||||
|
rpc GetList(MapfixIdList) returns (MapfixList);
|
||||||
|
rpc List(ListRequest) returns (MapfixList);
|
||||||
|
}
|
||||||
|
|
||||||
|
message MapfixIdList {
|
||||||
|
repeated int64 ID = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message MapfixId {
|
||||||
|
int64 ID = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
enum MapfixStatus {
|
||||||
|
// Phase: Creation
|
||||||
|
MapfixStatusUnderConstruction = 0;
|
||||||
|
MapfixStatusChangesRequested = 1;
|
||||||
|
|
||||||
|
// Phase: Review
|
||||||
|
MapfixStatusSubmitting = 2;
|
||||||
|
MapfixStatusSubmitted = 3;
|
||||||
|
|
||||||
|
// Phase: Testing
|
||||||
|
MapfixStatusAcceptedUnvalidated = 4; // pending script review, can re-trigger validation
|
||||||
|
MapfixStatusValidating = 5;
|
||||||
|
MapfixStatusValidated = 6;
|
||||||
|
MapfixStatusUploading = 7;
|
||||||
|
MapfixStatusUploaded = 8; // uploaded to the group, but pending release
|
||||||
|
MapfixStatusReleasing = 11;
|
||||||
|
|
||||||
|
// Phase: Final MapfixStatus
|
||||||
|
MapfixStatusRejected = 9;
|
||||||
|
MapfixStatusReleased = 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
message MapfixResponse {
|
||||||
|
int64 ID = 1;
|
||||||
|
string DisplayName = 2;
|
||||||
|
string Creator = 3;
|
||||||
|
uint32 GameID = 4;
|
||||||
|
int64 CreatedAt = 5;
|
||||||
|
int64 UpdatedAt = 6;
|
||||||
|
uint64 Submitter = 7;
|
||||||
|
uint64 AssetID = 8;
|
||||||
|
uint64 AssetVersion = 9;
|
||||||
|
optional uint64 ValidatedAssetID = 10;
|
||||||
|
optional uint64 ValidatedAssetVersion = 11;
|
||||||
|
uint64 TargetAssetID = 12;
|
||||||
|
MapfixStatus StatusID = 13;
|
||||||
|
}
|
||||||
|
|
||||||
|
message MapfixFilter {
|
||||||
|
optional MapfixStatus StatusID = 1;
|
||||||
|
optional string DisplayName = 2;
|
||||||
|
optional string Creator = 3;
|
||||||
|
optional uint32 GameID = 4;
|
||||||
|
optional uint64 Submitter = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
message MapfixList {
|
||||||
|
repeated MapfixResponse Mapfixes = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ListRequest {
|
||||||
|
MapfixFilter Filter = 1;
|
||||||
|
Pagination Page = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Pagination {
|
||||||
|
uint32 Size = 1;
|
||||||
|
uint32 Number = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message NullResponse {}
|
||||||
14
maps.proto
14
maps.proto
@@ -24,30 +24,20 @@ message IdMessage {
|
|||||||
message MapResponse {
|
message MapResponse {
|
||||||
int64 ID = 1;
|
int64 ID = 1;
|
||||||
string DisplayName = 2;
|
string DisplayName = 2;
|
||||||
string Creator = 3;
|
|
||||||
int32 GameID = 4;
|
int32 GameID = 4;
|
||||||
int64 Date = 5;
|
uint64 Thumbnail = 6;
|
||||||
int64 CreatedAt = 6;
|
|
||||||
int64 UpdatedAt = 7;
|
|
||||||
int64 Submitter = 8;
|
|
||||||
int64 Thumbnail = 9;
|
|
||||||
int64 AssetVersion = 10;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
message MapRequest {
|
message MapRequest {
|
||||||
int64 ID = 1;
|
int64 ID = 1;
|
||||||
optional string DisplayName = 2;
|
optional string DisplayName = 2;
|
||||||
optional string Creator = 3;
|
|
||||||
optional int32 GameID = 4;
|
optional int32 GameID = 4;
|
||||||
optional int64 Date = 5;
|
optional uint64 Thumbnail = 6;
|
||||||
optional int64 Submitter = 6;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
message MapFilter {
|
message MapFilter {
|
||||||
optional string DisplayName = 2;
|
optional string DisplayName = 2;
|
||||||
optional string Creator = 3;
|
|
||||||
optional int32 GameID = 4;
|
optional int32 GameID = 4;
|
||||||
optional int64 Submitter = 5;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
message MapList {
|
message MapList {
|
||||||
|
|||||||
85
maps_extended.proto
Normal file
85
maps_extended.proto
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
option go_package = "git.itzana.me/strafesnet/go-grpc/maps_extended";
|
||||||
|
|
||||||
|
package maps_extended;
|
||||||
|
|
||||||
|
service MapsService {
|
||||||
|
rpc Get(MapId) returns (MapResponse);
|
||||||
|
rpc GetList(MapIdList) returns (MapList);
|
||||||
|
rpc Update(MapUpdate) returns (NullResponse);
|
||||||
|
rpc Create(MapCreate) returns (MapId);
|
||||||
|
rpc Delete(MapId) returns (NullResponse);
|
||||||
|
rpc List(ListRequest) returns (MapList);
|
||||||
|
rpc IncrementLoadCount(MapId) returns (NullResponse);
|
||||||
|
rpc GetSnmfDownloadUrl(MapId) returns (SnmfDownloadUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
message SnmfDownloadUrl { string Url = 1; }
|
||||||
|
|
||||||
|
message MapIdList { repeated int64 ID = 1; }
|
||||||
|
|
||||||
|
message MapId { int64 ID = 1; }
|
||||||
|
|
||||||
|
message MapResponse {
|
||||||
|
int64 ID = 1;
|
||||||
|
string DisplayName = 2;
|
||||||
|
string Creator = 3;
|
||||||
|
uint32 GameID = 4;
|
||||||
|
int64 Date = 5;
|
||||||
|
int64 CreatedAt = 6;
|
||||||
|
int64 UpdatedAt = 7;
|
||||||
|
uint64 Submitter = 8;
|
||||||
|
uint64 Thumbnail = 9;
|
||||||
|
uint64 AssetVersion = 10;
|
||||||
|
uint32 LoadCount = 11;
|
||||||
|
uint32 Modes = 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
message MapCreate {
|
||||||
|
int64 ID = 1;
|
||||||
|
string DisplayName = 2;
|
||||||
|
string Creator = 3;
|
||||||
|
uint32 GameID = 4;
|
||||||
|
int64 Date = 5;
|
||||||
|
// int64 CreatedAt = 6;
|
||||||
|
// int64 UpdatedAt = 7;
|
||||||
|
uint64 Submitter = 6;
|
||||||
|
uint64 Thumbnail = 7;
|
||||||
|
uint64 AssetVersion = 8;
|
||||||
|
// uint32 LoadCount = 11;
|
||||||
|
uint32 Modes = 9;
|
||||||
|
}
|
||||||
|
|
||||||
|
message MapUpdate {
|
||||||
|
int64 ID = 1;
|
||||||
|
optional string DisplayName = 2;
|
||||||
|
optional string Creator = 3;
|
||||||
|
optional uint32 GameID = 4;
|
||||||
|
optional int64 Date = 5;
|
||||||
|
optional uint64 Submitter = 6;
|
||||||
|
optional uint64 Thumbnail = 7;
|
||||||
|
optional uint64 AssetVersion = 8;
|
||||||
|
optional uint32 Modes = 9;
|
||||||
|
}
|
||||||
|
|
||||||
|
message MapFilter {
|
||||||
|
optional string DisplayName = 2;
|
||||||
|
optional string Creator = 3;
|
||||||
|
optional uint32 GameID = 4;
|
||||||
|
optional uint64 Submitter = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
message MapList { repeated MapResponse Maps = 1; }
|
||||||
|
|
||||||
|
message ListRequest {
|
||||||
|
MapFilter Filter = 1;
|
||||||
|
Pagination Page = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Pagination {
|
||||||
|
uint32 Size = 1;
|
||||||
|
uint32 Number = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message NullResponse {}
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
mkdir -p strafesnet
|
|
||||||
cp *.proto strafesnet/
|
|
||||||
python3 -m grpc_tools.protoc -I./strafesnet --python_out=./python-grpc/strafesnet --grpc_python_out=./python-grpc/strafesnet *.proto
|
|
||||||
sed -i 's/^\(import.*pb2\)/from . \1/g' ./python-grpc/strafesnet/*.py
|
|
||||||
@@ -11,8 +11,12 @@ do
|
|||||||
--prost_out=$module \
|
--prost_out=$module \
|
||||||
--tonic_out=$module \
|
--tonic_out=$module \
|
||||||
$f
|
$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
|
#I couldn't figure out how to configure protoc to do this
|
||||||
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/#\[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 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 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 time_id:/ #\[serde(rename = \"TimeID\")\]\n pub time_id:/g" "$module/$name.rs"
|
||||||
|
|||||||
80
submissions.proto
Normal file
80
submissions.proto
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
package submissions;
|
||||||
|
|
||||||
|
option go_package = "git.itzana.me/strafesnet/go-grpc/submissions";
|
||||||
|
|
||||||
|
service SubmissionsService {
|
||||||
|
rpc Get(SubmissionId) returns (SubmissionResponse);
|
||||||
|
rpc GetList(SubmissionIdList) returns (SubmissionList);
|
||||||
|
rpc List(ListRequest) returns (SubmissionList);
|
||||||
|
}
|
||||||
|
|
||||||
|
message SubmissionIdList {
|
||||||
|
repeated int64 ID = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SubmissionId {
|
||||||
|
int64 ID = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
enum SubmissionStatus {
|
||||||
|
// Phase: Creation
|
||||||
|
SubmissionStatusUnderConstruction = 0;
|
||||||
|
SubmissionStatusChangesRequested = 1;
|
||||||
|
|
||||||
|
// Phase: Review
|
||||||
|
SubmissionStatusSubmitting = 2;
|
||||||
|
SubmissionStatusSubmitted = 3;
|
||||||
|
|
||||||
|
// Phase: Testing
|
||||||
|
SubmissionStatusAcceptedUnvalidated = 4; // pending script review, can re-trigger validation
|
||||||
|
SubmissionStatusValidating = 5;
|
||||||
|
SubmissionStatusValidated = 6;
|
||||||
|
SubmissionStatusUploading = 7;
|
||||||
|
SubmissionStatusUploaded = 8; // uploaded to the group, but pending release
|
||||||
|
|
||||||
|
// Phase: Final SubmissionStatus
|
||||||
|
SubmissionStatusRejected = 9;
|
||||||
|
SubmissionStatusReleased = 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SubmissionResponse {
|
||||||
|
int64 ID = 1;
|
||||||
|
string DisplayName = 2;
|
||||||
|
string Creator = 3;
|
||||||
|
uint32 GameID = 4;
|
||||||
|
int64 CreatedAt = 7;
|
||||||
|
int64 UpdatedAt = 8;
|
||||||
|
uint64 Submitter = 9;
|
||||||
|
uint64 AssetID = 10;
|
||||||
|
uint64 AssetVersion = 11;
|
||||||
|
optional uint64 ValidatedAssetID = 12;
|
||||||
|
optional uint64 ValidatedAssetVersion = 13;
|
||||||
|
optional uint64 UploadedAssetID = 14;
|
||||||
|
SubmissionStatus StatusID = 15;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SubmissionFilter {
|
||||||
|
optional SubmissionStatus StatusID = 1;
|
||||||
|
optional string DisplayName = 2;
|
||||||
|
optional string Creator = 3;
|
||||||
|
optional uint32 GameID = 4;
|
||||||
|
optional uint64 Submitter = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SubmissionList {
|
||||||
|
repeated SubmissionResponse Submissions = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ListRequest {
|
||||||
|
SubmissionFilter Filter = 1;
|
||||||
|
Pagination Page = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Pagination {
|
||||||
|
uint32 Size = 1;
|
||||||
|
uint32 Number = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message NullResponse {}
|
||||||
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;
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ service UsersService {
|
|||||||
rpc Create(UserRequest) returns (IdMessage);
|
rpc Create(UserRequest) returns (IdMessage);
|
||||||
rpc Delete(IdMessage) returns (NullResponse);
|
rpc Delete(IdMessage) returns (NullResponse);
|
||||||
rpc List(ListRequest) returns (UserList);
|
rpc List(ListRequest) returns (UserList);
|
||||||
|
rpc SearchByUsername(SearchByUsernameRequest) returns (UserList);
|
||||||
}
|
}
|
||||||
|
|
||||||
message IdList {
|
message IdList {
|
||||||
@@ -55,6 +56,11 @@ message Pagination {
|
|||||||
int32 Number = 2;
|
int32 Number = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message SearchByUsernameRequest {
|
||||||
|
string Query = 1;
|
||||||
|
Pagination Page = 2;
|
||||||
|
}
|
||||||
|
|
||||||
message NullResponse {
|
message NullResponse {
|
||||||
|
|
||||||
}
|
}
|
||||||
220
validator.proto
Normal file
220
validator.proto
Normal file
@@ -0,0 +1,220 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
option go_package = "git.itzana.me/strafesnet/go-grpc/validator";
|
||||||
|
|
||||||
|
import "maps_extended.proto";
|
||||||
|
|
||||||
|
package validator;
|
||||||
|
|
||||||
|
service ValidatorMapfixService {
|
||||||
|
rpc Create(MapfixCreate) returns (MapfixID);
|
||||||
|
rpc CreateAuditError(AuditErrorRequest) returns (NullResponse);
|
||||||
|
rpc CreateAuditChecklist(AuditChecklistRequest) returns (NullResponse);
|
||||||
|
rpc SetValidatedModel(ValidatedModelRequest) returns (NullResponse);
|
||||||
|
rpc SetStatusSubmitted(SubmittedRequest) returns (NullResponse);
|
||||||
|
rpc SetStatusRequestChanges(MapfixID) returns (NullResponse);
|
||||||
|
rpc SetStatusValidated(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 {
|
||||||
|
rpc Create(SubmissionCreate) returns (SubmissionID);
|
||||||
|
rpc CreateAuditError(AuditErrorRequest) returns (NullResponse);
|
||||||
|
rpc CreateAuditChecklist(AuditChecklistRequest) returns (NullResponse);
|
||||||
|
rpc SetValidatedModel(ValidatedModelRequest) returns (NullResponse);
|
||||||
|
rpc SetStatusSubmitted(SubmittedRequest) returns (NullResponse);
|
||||||
|
rpc SetStatusRequestChanges(SubmissionID) returns (NullResponse);
|
||||||
|
rpc SetStatusValidated(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; }
|
||||||
|
|
||||||
|
message MapfixCreate {
|
||||||
|
uint32 OperationID = 1;
|
||||||
|
uint32 GameID = 2;
|
||||||
|
uint64 AssetOwner = 3;
|
||||||
|
uint64 AssetID = 4;
|
||||||
|
uint64 AssetVersion = 5;
|
||||||
|
uint64 TargetAssetID = 6;
|
||||||
|
string DisplayName = 7;
|
||||||
|
string Creator = 8;
|
||||||
|
string Description = 9;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SubmissionID { uint64 ID = 1; }
|
||||||
|
|
||||||
|
message SubmissionCreate {
|
||||||
|
uint32 OperationID = 1;
|
||||||
|
uint32 GameID = 2;
|
||||||
|
uint32 Status = 3;
|
||||||
|
uint32 Roles = 4;
|
||||||
|
uint64 AssetOwner = 5;
|
||||||
|
uint64 AssetID = 6;
|
||||||
|
uint64 AssetVersion = 7;
|
||||||
|
string DisplayName = 8;
|
||||||
|
string Creator = 9;
|
||||||
|
}
|
||||||
|
|
||||||
|
message AuditErrorRequest {
|
||||||
|
uint64 ID = 1;
|
||||||
|
string ErrorMessage = 2;
|
||||||
|
}
|
||||||
|
message Check {
|
||||||
|
string Name = 1;
|
||||||
|
string Summary = 2;
|
||||||
|
bool Passed = 3;
|
||||||
|
}
|
||||||
|
message AuditChecklistRequest {
|
||||||
|
uint64 ID = 1;
|
||||||
|
repeated Check CheckList = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ValidatedModelRequest {
|
||||||
|
uint64 ID = 1;
|
||||||
|
uint64 ValidatedModelID = 2;
|
||||||
|
uint64 ValidatedModelVersion = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SubmittedRequest {
|
||||||
|
uint64 ID = 1;
|
||||||
|
uint64 ModelVersion = 2;
|
||||||
|
string DisplayName = 3;
|
||||||
|
string Creator = 4;
|
||||||
|
uint32 GameID = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
message StatusUploadedRequest {
|
||||||
|
uint64 ID = 1;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Pagination {
|
||||||
|
uint32 Size = 1;
|
||||||
|
uint32 Number = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Scripts
|
||||||
|
service ValidatorScriptService {
|
||||||
|
rpc Create(ScriptCreate) returns (ScriptID);
|
||||||
|
rpc Get(ScriptID) returns (Script);
|
||||||
|
rpc List(ScriptListRequest) returns (ScriptListResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
enum ResourceType {
|
||||||
|
ResourceTypeNone = 0;
|
||||||
|
ResourceTypeMapfix = 1;
|
||||||
|
ResourceTypeSubmission = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ScriptCreate {
|
||||||
|
string Name = 1;
|
||||||
|
string Source = 2;
|
||||||
|
ResourceType ResourceType = 3;
|
||||||
|
optional uint64 ResourceID = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ScriptFilter {
|
||||||
|
optional string Name = 1;
|
||||||
|
optional string Source = 2;
|
||||||
|
optional ResourceType ResourceType = 3;
|
||||||
|
optional uint64 ResourceID = 4;
|
||||||
|
optional uint64 Hash = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ScriptListRequest {
|
||||||
|
ScriptFilter Filter = 1;
|
||||||
|
Pagination Page = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ScriptID { uint64 ID = 1; }
|
||||||
|
|
||||||
|
message Script {
|
||||||
|
uint64 ID = 1;
|
||||||
|
uint64 Hash = 2;
|
||||||
|
string Name = 3;
|
||||||
|
string Source = 4;
|
||||||
|
ResourceType ResourceType = 5;
|
||||||
|
optional uint64 ResourceID = 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ScriptListResponse { repeated Script Scripts = 1; }
|
||||||
|
|
||||||
|
// ScriptPolicies
|
||||||
|
service ValidatorScriptPolicyService {
|
||||||
|
rpc Create(ScriptPolicyCreate) returns (ScriptPolicyID);
|
||||||
|
rpc List(ScriptPolicyListRequest) returns (ScriptPolicyListResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
enum Policy {
|
||||||
|
PolicyNone = 0;
|
||||||
|
PolicyAllowed = 1;
|
||||||
|
PolicyBlocked = 2;
|
||||||
|
PolicyDelete = 3;
|
||||||
|
PolicyReplace = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ScriptPolicyCreate {
|
||||||
|
uint64 FromScriptID = 1;
|
||||||
|
uint64 ToScriptID = 2;
|
||||||
|
Policy Policy = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ScriptPolicyFilter {
|
||||||
|
optional uint64 FromScriptHash = 1;
|
||||||
|
optional uint64 ToScriptID = 2;
|
||||||
|
optional Policy Policy = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ScriptPolicyListRequest {
|
||||||
|
ScriptPolicyFilter Filter = 1;
|
||||||
|
Pagination Page = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ScriptPolicyID { uint64 ID = 1; }
|
||||||
|
|
||||||
|
message ScriptPolicy {
|
||||||
|
uint64 ID = 1;
|
||||||
|
uint64 FromScriptHash = 2;
|
||||||
|
uint64 ToScriptID = 3;
|
||||||
|
Policy Policy = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ScriptPolicyListResponse { repeated ScriptPolicy ScriptPolicies = 1; }
|
||||||
Reference in New Issue
Block a user