Files
services/users/proto/users.proto
2021-02-19 11:45:33 +00:00

104 lines
2.0 KiB
Protocol Buffer

syntax = "proto3";
package users;
option go_package = "proto;users";
import "google/protobuf/wrappers.proto";
service Users {
rpc Create(CreateRequest) returns (CreateResponse) {}
rpc Read(ReadRequest) returns (ReadResponse) {}
rpc ReadByEmail(ReadByEmailRequest) returns (ReadByEmailResponse) {}
rpc Update(UpdateRequest) returns (UpdateResponse) {}
rpc Delete(DeleteRequest) returns (DeleteResponse) {}
rpc List(ListRequest) returns (ListResponse) {}
// Login using email and password returns the users profile and a token
rpc Login(LoginRequest) returns (LoginResponse) {}
// Logout expires all tokens for the user
rpc Logout(LogoutRequest) returns (LogoutResponse) {}
// Validate a token, each time a token is validated it extends its lifetime for another week
rpc Validate(ValidateRequest) returns (ValidateResponse) {}
}
message User {
string id = 1;
string first_name = 2;
string last_name = 3;
string email = 4;
}
message CreateRequest {
string first_name = 1;
string last_name = 2;
string email = 3;
string password = 4;
}
message CreateResponse {
User user = 1;
string token = 2;
}
message ReadRequest {
repeated string ids = 1;
}
message ReadResponse {
map<string,User> users = 1;
}
message ReadByEmailRequest {
repeated string emails = 1;
}
message ReadByEmailResponse {
map<string,User> users = 1;
}
message UpdateRequest {
string id = 1;
google.protobuf.StringValue first_name = 2;
google.protobuf.StringValue last_name = 3;
google.protobuf.StringValue email = 4;
google.protobuf.StringValue password = 5;
}
message UpdateResponse {
User user = 1;
}
message DeleteRequest {
string id = 1;
}
message DeleteResponse {}
message ListRequest {}
message ListResponse {
repeated User users = 1;
}
message LoginRequest {
string email = 1;
string password = 2;
}
message LoginResponse {
User user = 1;
string token = 2;
}
message LogoutRequest {
string id = 1;
}
message LogoutResponse {}
message ValidateRequest {
string token = 1;
}
message ValidateResponse {
User user = 1;
}