Files
protobufs/sessions.proto
Rhys Lloyd a18a5c423b sessions: remove SessionsService.Get
I can't think of any scenario where getting a session by ID is required.
2025-07-25 20:22:08 -07:00

68 lines
1.2 KiB
Protocol Buffer

syntax = "proto3";
option go_package = "git.itzana.me/strafesnet/go-grpc/sessions";
package sessions;
service SessionsService {
rpc Create(SessionCreate) returns (SessionId);
rpc List(ListRequest) returns (SessionList);
rpc Aggregate(SessionFilter) returns (SessionAggregate);
}
message SessionIdList { repeated int64 ID = 1; }
message SessionId { int64 ID = 1; }
message SessionResponse {
int64 ID = 1;
uint64 UserID = 2;
uint64 MapID = 3;
int64 Date = 4;
uint32 Duration = 5;
uint32 Attempts = 6;
uint32 GameID = 7;
uint32 StyleID = 8;
}
message SessionCreate {
uint64 UserID = 1;
uint64 MapID = 2;
int64 Date = 3;
uint32 Duration = 4;
uint32 Attempts = 5;
uint32 GameID = 6;
uint32 StyleID = 7;
}
enum SessionSort {
SessionSortDateDescending = 0;
}
message SessionFilter {
optional uint64 UserID = 1;
optional uint64 MapID = 2;
optional uint32 GameID = 3;
optional uint32 StyleID = 4;
}
message SessionList { repeated SessionResponse Sessions = 1; }
message ListRequest {
SessionFilter Filter = 1;
Pagination Page = 2;
Sort SessionSort = 3;
}
message Pagination {
uint32 Size = 1;
uint32 Number = 2;
}
message SessionAggregate {
uint64 Duration = 1;
uint64 Attempts = 2;
}
message NullResponse {}