Files
services/users/proto/users.proto
ben-toogood 055517ec14 Users (#46)
* Updated Users Service

* user-old => test/users
2021-01-22 13:39:34 +00:00

94 lines
1.8 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 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 UpdateRequest {
string id = 1;
google.protobuf.StringValue first_name = 2;
google.protobuf.StringValue last_name = 3;
google.protobuf.StringValue email = 4;
}
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;
}