Files
AobaV2/AobaServer/Proto/Aoba.proto
Amatsugu 7061b4c313 Streamlined grpc auth
Added ShareX Destiation on client
2025-05-21 22:07:57 -04:00

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;
}
}