diff --git a/maps_extended.proto b/maps_extended.proto new file mode 100644 index 0000000..a1a4d30 --- /dev/null +++ b/maps_extended.proto @@ -0,0 +1,70 @@ +syntax = "proto3"; + +option go_package = "git.itzana.me/strafesnet/go-grpc/maps_extended"; + +package maps_extended; + +service MapsService { + rpc Get(IdMessage) returns (MapResponse); + rpc GetList(IdList) returns (MapList); + rpc Update(MapRequest) returns (NullResponse); + rpc Create(MapRequest) returns (IdMessage); + rpc Delete(IdMessage) returns (NullResponse); + rpc List(ListRequest) returns (MapList); +} + +message IdList { + repeated int64 ID = 1; +} + +message IdMessage { + 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 MapRequest { + int64 ID = 1; + optional string DisplayName = 2; + optional string Creator = 3; + optional uint32 GameID = 4; + optional int64 Date = 5; + optional uint64 Submitter = 6; +} + +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 { +}