2020-11-14 19:28:18 +03:00

96 lines
1.9 KiB
Protocol Buffer

syntax = "proto3";
package grpcserver;
option go_package = "grpcserver";
import "google/protobuf/timestamp.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/empty.proto";
import "google/api/annotations.proto";
service grpc {
rpc Create(CreateReq) returns (CreateRsp) {
option (google.api.http) = {
post: "/events",
body: "*",
};
}
rpc Update(UpdateReq) returns (google.protobuf.Empty) {
option (google.api.http) = {
put: "/events/{ID}",
body: "*",
};
}
rpc Delete(DeleteReq) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/events/{ID}"
};
}
rpc List(google.protobuf.Empty) returns (ListResp) {
option (google.api.http) = {
get: "/events"
};
}
rpc GetByID(GetByIDReq) returns (GetByIDResp) {
option (google.api.http) = {
get: "/events/{ID}"
};
}
rpc GetByDate(GetByDateReq) returns (GetByDateResp) {
option (google.api.http) = {
post: "/events/{Range}/{Date}"
};
}
}
enum QueryRange {
DAY = 0;
WEEK = 1;
MONTH = 2;
}
message Event {
int64 ID = 1;
string Title = 2;
google.protobuf.Timestamp Date = 3;
google.protobuf.Duration Latency = 4;
string Note = 5;
int64 UserID = 6;
google.protobuf.Duration NotifyTime = 7;
}
message CreateReq {
string Title = 2;
google.protobuf.Timestamp Date = 3;
google.protobuf.Duration Latency = 4;
string Note = 5;
int64 UserID = 6;
google.protobuf.Duration NotifyTime = 7;
}
message CreateRsp {
int64 ID = 1;
}
message UpdateReq {
int64 ID = 1;
Event Event = 2;
}
message DeleteReq {
int64 ID = 1;
}
message ListResp {
repeated Event Events = 1;
}
message GetByIDReq {
int64 ID = 1;
}
message GetByIDResp {
repeated Event Events = 1;
}
message GetByDateReq {
google.protobuf.Timestamp Date = 1;
QueryRange Range = 2;
}
message GetByDateResp {
repeated Event Events = 1;
}