blob: b9b4f69ece8c89ed80d64aa5ebe7b68b82232d2c [file] [log] [blame]
iomodo3e1576e2021-02-23 01:27:56 +04001syntax = "proto3";
2
3option go_package = ".;proto";
4
5package proto;
6
7import "google/protobuf/timestamp.proto";
8
9// UserService handles commands dispatch and user view actions
10service UserService {
iomodo6c264212021-03-07 17:54:04 +040011 rpc GetUser (GetUserRequest) returns (GetUserResponse);
iomodo3e1576e2021-02-23 01:27:56 +040012 rpc ListUsers (ListUserRequest) returns (ListUserResponse);
iomodo6c264212021-03-07 17:54:04 +040013 rpc CreateUser (CreateUserRequest) returns (CreateUserResponse);
iomodo3e1576e2021-02-23 01:27:56 +040014}
15
16// DispatchUserCommandRequest is passed when dispatching
17message DispatchUserCommandRequest {
18 string name = 1;
19 bytes payload = 2;
20}
21
22// User object
23message User {
24 optional string id = 1;
25 optional google.protobuf.Timestamp create_at = 2;
26 optional google.protobuf.Timestamp update_at = 3;
27 optional google.protobuf.Timestamp delete_at = 4;
28 string username = 5;
29 string password = 6;
30 optional google.protobuf.Timestamp last_password_update = 7;
31}
32
33// GetUserRequest is a request data to read user
34message GetUserRequest {
35 string id = 1;
36}
37
iomodo6c264212021-03-07 17:54:04 +040038// GetUserResponse is a response data to read user
39message GetUserResponse {
iomodocf795602021-03-07 23:14:15 +040040 User user = 1;
iomodo6c264212021-03-07 17:54:04 +040041}
42
iomodo3e1576e2021-02-23 01:27:56 +040043// ListUserRequest is a request data to read all user for a given page
44message ListUserRequest {
45 int64 page = 1;
46 int64 limit = 2;
47}
48
49// ListUserResponse list of all users
50message ListUserResponse {
51 repeated User users = 1;
52 int64 page = 2;
53 int64 limit = 3;
54 int64 total = 4;
55}
56
57// CreateUserRequest is a request data to create a user
58message CreateUserRequest {
iomodo6c264212021-03-07 17:54:04 +040059 User user = 1;
60}
61
62// CreateUserResponse is a response data to create a user
63message CreateUserResponse {
64 User user = 1;
iomodo3e1576e2021-02-23 01:27:56 +040065}