slash-e/proto/api/v2/user_service.proto
2023-08-06 20:25:23 +08:00

70 lines
1.4 KiB
Protocol Buffer

syntax = "proto3";
package slash.api.v2;
import "api/v2/common.proto";
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/protobuf/timestamp.proto";
option go_package = "gen/api/v2";
service UserService {
// GetUser returns a user by id.
rpc GetUser(GetUserRequest) returns (GetUserResponse) {
option (google.api.http) = {get: "/api/v2/users/{id}"};
option (google.api.method_signature) = "id";
}
// GetUserAccessTokens returns a list of access tokens for a user.
rpc GetUserAccessTokens(GetUserAccessTokensRequest) returns (GetUserAccessTokensResponse) {
option (google.api.http) = {get: "/api/v2/users/{id}/access_tokens"};
option (google.api.method_signature) = "id";
}
}
message User {
int32 id = 1;
RowStatus row_status = 2;
int64 created_ts = 3;
int64 updated_ts = 4;
Role role = 6;
string email = 7;
string nickname = 8;
}
enum Role {
ROLE_UNSPECIFIED = 0;
ADMIN = 1;
USER = 2;
}
message GetUserRequest {
int32 id = 1;
}
message GetUserResponse {
User user = 1;
}
message GetUserAccessTokensRequest {
int32 id = 1;
}
message GetUserAccessTokensResponse {
message AccessToken {
string access_token = 1;
string description = 2;
google.protobuf.Timestamp created_time = 3;
google.protobuf.Timestamp expires_time = 4;
}
repeated AccessToken access_tokens = 1;
}