86 lines
1.5 KiB
Protocol Buffer
86 lines
1.5 KiB
Protocol Buffer
syntax = "proto3";
|
|
import "google/protobuf/empty.proto";
|
|
|
|
option csharp_namespace = "Aoba.RPC";
|
|
package aoba;
|
|
|
|
service AobaRpc {
|
|
rpc GetMedia (Id) returns (MediaResponse);
|
|
rpc DeleteMedia (Id) returns (google.protobuf.Empty);
|
|
rpc UpdateMedia (google.protobuf.Empty) returns (google.protobuf.Empty);
|
|
rpc ListMedia(PageFilter) returns (ListResponse);
|
|
rpc GetUser(Id) returns (UserResponse);
|
|
rpc GetShareXDestination(google.protobuf.Empty) returns (ShareXResponse);
|
|
}
|
|
|
|
message PageFilter {
|
|
optional int32 page = 1;
|
|
optional int32 pageSize = 2;
|
|
optional string query = 3;
|
|
}
|
|
|
|
message Id {
|
|
string value = 1;
|
|
}
|
|
|
|
message MediaResponse {
|
|
oneof result {
|
|
MediaModel value = 1;
|
|
google.protobuf.Empty empty = 2;
|
|
}
|
|
}
|
|
|
|
message ListResponse {
|
|
repeated MediaModel items = 1;
|
|
Pagination pagination = 2;
|
|
}
|
|
|
|
message Pagination {
|
|
int32 page = 1;
|
|
int32 pageSize = 2;
|
|
int64 totalPages = 3;
|
|
int64 totalItems = 4;
|
|
optional string query = 5;
|
|
}
|
|
|
|
message UserResponse {
|
|
oneof userResult {
|
|
UserModel user = 1;
|
|
google.protobuf.Empty empty = 2;
|
|
}
|
|
}
|
|
|
|
message UserModel {
|
|
Id id = 1;
|
|
string username = 2;
|
|
string email = 3;
|
|
bool isAdmin = 4;
|
|
}
|
|
|
|
|
|
message MediaModel {
|
|
Id id = 1;
|
|
Id mediaId = 2;
|
|
string fileName = 3;
|
|
MediaType mediaType = 4;
|
|
string ext = 5;
|
|
int32 viewCount = 6;
|
|
Id owner = 7;
|
|
}
|
|
|
|
enum MediaType {
|
|
Image = 0;
|
|
Audio = 1;
|
|
Video = 2;
|
|
Text = 3;
|
|
Code = 4;
|
|
Raw = 5;
|
|
}
|
|
|
|
message ShareXResponse {
|
|
oneof dstResult {
|
|
string destination = 1;
|
|
string error = 2;
|
|
}
|
|
}
|