first commit
This commit is contained in:
@@ -0,0 +1,262 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package crabs.smm_core;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "protoc-gen-openapiv2/options/annotations.proto";
|
||||
|
||||
option go_package = "pkg/proto";
|
||||
|
||||
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = {};
|
||||
|
||||
service SmmCore {
|
||||
|
||||
// ping
|
||||
rpc Ping(PingReq) returns (PingRsp) {
|
||||
option (google.api.http) = {
|
||||
get: "/ping"
|
||||
};
|
||||
}
|
||||
|
||||
// login
|
||||
rpc Login(LoginReq) returns (User) {
|
||||
option (google.api.http) = {
|
||||
post: "/login",
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// budgets
|
||||
rpc AddBudget(AddBudgetReq) returns (Budget) {
|
||||
option (google.api.http) = {
|
||||
post: "/budgets",
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
rpc UpdateBudget(UpdateBudgetReq) returns (Budget) {
|
||||
option (google.api.http) = {
|
||||
put: "/budgets/{id}",
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
rpc GetBudgets(GetBudgetsReq) returns (Budgets) {
|
||||
option (google.api.http) = {
|
||||
get: "/budgets"
|
||||
};
|
||||
}
|
||||
rpc DeleteBudget(DeleteBudgetReq) returns (Budget) {
|
||||
option (google.api.http) = {
|
||||
delete: "/budgets/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// budget users
|
||||
rpc AddUserToBudget(AddUserToBudgetReq) returns (OK) {
|
||||
option (google.api.http) = {
|
||||
put: "/budgets/{budget_id}/users",
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
rpc GetBudgetUsers(GetBudgetUsersReq) returns (Users) {
|
||||
option (google.api.http) = {
|
||||
get: "/budgets/{id}/users"
|
||||
};
|
||||
}
|
||||
rpc RemoveUserFromBudget(RemoveUserFromBudgetReq) returns (Budget) {
|
||||
option (google.api.http) = {
|
||||
delete: "/budgets/{budget_id}/users/{user_id}"
|
||||
};
|
||||
}
|
||||
rpc GetBudgetCategories(GetBudgetCategoriesReq) returns (Categories) {
|
||||
option (google.api.http) = {
|
||||
get: "/budgets/{budget_id}/categories"
|
||||
};
|
||||
}
|
||||
|
||||
// categories
|
||||
rpc AddCategory(AddCategoryReq) returns (Category) {
|
||||
option (google.api.http) = {
|
||||
post: "/categories",
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
rpc UpdateCategory(UpdateCategoryReq) returns (Category) {
|
||||
option (google.api.http) = {
|
||||
put: "/categories/{id}"
|
||||
};
|
||||
}
|
||||
rpc DeleteCategories(DeleteCategoriesReq) returns (Category) {
|
||||
option (google.api.http) = {
|
||||
delete: "/categories/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// wastes
|
||||
rpc AddWaste(AddWasteReq) returns (Waste) {
|
||||
option (google.api.http) = {
|
||||
post: "/wastes",
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
rpc AddWasteByText(AddWasteTextReq) returns (Waste) {
|
||||
option (google.api.http) = {
|
||||
post: "/wastes/text",
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
rpc DeleteWaste(DeleteWasteReq) returns (Waste) {
|
||||
option (google.api.http) = {
|
||||
delete: "/wastes/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// stat
|
||||
rpc GetCategoriesStat(GetCategoriesStatReq) returns (CategoriesStat) {
|
||||
option (google.api.http) = {
|
||||
get: "/stat"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
message PingReq {}
|
||||
|
||||
message PingRsp {}
|
||||
|
||||
message OK {}
|
||||
|
||||
message AddUserReq {
|
||||
string username = 1;
|
||||
string password = 2;
|
||||
}
|
||||
|
||||
message User {
|
||||
int32 id = 1;
|
||||
string username = 2;
|
||||
}
|
||||
|
||||
message LoginReq {
|
||||
string username = 1;
|
||||
string password = 2;
|
||||
}
|
||||
|
||||
message AddBudgetReq {
|
||||
string name = 1;
|
||||
int32 start_day = 2;
|
||||
int32 monthly_limit = 3;
|
||||
}
|
||||
|
||||
message Budget {
|
||||
int32 id = 1;
|
||||
string name = 2;
|
||||
int32 start_day = 3;
|
||||
int32 monthly_limit = 4;
|
||||
repeated Category categories = 5;
|
||||
}
|
||||
|
||||
message UpdateBudgetReq {
|
||||
int32 id = 1;
|
||||
string name = 2;
|
||||
int32 start_day = 3;
|
||||
int32 monthly_limit = 4;
|
||||
}
|
||||
|
||||
message GetBudgetsReq {}
|
||||
|
||||
message Budgets {
|
||||
repeated Budget budgets = 1;
|
||||
}
|
||||
|
||||
message DeleteBudgetReq {
|
||||
int32 id = 1;
|
||||
}
|
||||
|
||||
message AddUserToBudgetReq {
|
||||
int32 user_id = 1;
|
||||
int32 budget_id = 2;
|
||||
}
|
||||
|
||||
message GetBudgetUsersReq {
|
||||
int32 id = 1;
|
||||
}
|
||||
|
||||
message Users {
|
||||
repeated User users = 1;
|
||||
}
|
||||
|
||||
message RemoveUserFromBudgetReq {
|
||||
int32 user_id = 1;
|
||||
int32 budget_id = 2;
|
||||
}
|
||||
|
||||
message GetBudgetCategoriesReq {
|
||||
int32 budget_id = 2;
|
||||
}
|
||||
|
||||
message AddCategoryReq {
|
||||
string name = 1;
|
||||
int32 budget_id = 2;
|
||||
bool favorite = 3;
|
||||
int32 monthly_limit = 4;
|
||||
}
|
||||
|
||||
message Category {
|
||||
int32 id = 1;
|
||||
string name = 2;
|
||||
int32 budget_id = 3;
|
||||
bool favorite = 4;
|
||||
int32 monthly_limit = 5;
|
||||
}
|
||||
|
||||
message UpdateCategoryReq {
|
||||
int32 id = 1;
|
||||
string name = 2;
|
||||
bool favorite = 3;
|
||||
int32 monthly_limit = 4;
|
||||
}
|
||||
|
||||
message Categories {
|
||||
repeated Category categories = 1;
|
||||
}
|
||||
|
||||
message DeleteCategoriesReq {
|
||||
int32 id = 1;
|
||||
}
|
||||
|
||||
message AddWasteReq {
|
||||
string name = 1;
|
||||
int32 price = 2;
|
||||
float amount = 3;
|
||||
int32 category_id = 4;
|
||||
int32 budget_id = 5;
|
||||
}
|
||||
|
||||
message AddWasteTextReq {
|
||||
string text = 1;
|
||||
int32 category_id = 2;
|
||||
int32 budget_id = 3;
|
||||
}
|
||||
|
||||
message Waste {
|
||||
int32 id = 1;
|
||||
string name = 2;
|
||||
int32 price = 3;
|
||||
float amount = 4;
|
||||
}
|
||||
|
||||
message DeleteWasteReq {
|
||||
int32 id = 1;
|
||||
}
|
||||
|
||||
message GetCategoriesStatReq {
|
||||
repeated int32 ids = 1;
|
||||
}
|
||||
|
||||
message CategoriesStat {
|
||||
repeated CategoriesStat stat = 1;
|
||||
}
|
||||
|
||||
message CategoryStat {
|
||||
string name = 1;
|
||||
int32 monthly_limit = 2;
|
||||
int32 amount = 3;
|
||||
}
|
||||
Reference in New Issue
Block a user