Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions email.proto
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,43 @@ syntax = "proto3";

package email;

//Сервис для подтверждения аккаунта через эл. почту (email)
//Сервис связан с user-сервисом, а именно регитсрацией, подтверждением и входом в аккаунт
//
//rpc для Email сервиса
service EmailService {
//Отправка электронного письма пользователю на почту
rpc SendEmail(SendEmailRequest) returns (SendEmailResponse);
}

//Шаблон письма
enum EmailTemplate {
//Шаблон неопределен
EMAIL_TEMPLATE_UNSPECIFIED = 0;
//Шаблон кода подтверждения
EMAIL_TEMPLATE_VERIFICATION_CODE = 1;
}

//Плейслхолдеры для шаблона электронного письма
message EmailTemplateVar {
//Ключ из шаблона
string key = 1;
//Его значение для подстановки
string value = 2;
}

//Запрос отправки email'a
message SendEmailRequest {
//Email пользователя
string destination_email = 1;
//Шаблон письма
EmailTemplate template = 2;
//Переменные для подстановки
repeated EmailTemplateVar vars = 3;
}

//Результат отправки письма
message SendEmailResponse {
//Если письмо отправлено успешно, то возращается true
bool success = 1;
}
25 changes: 25 additions & 0 deletions user.proto
Original file line number Diff line number Diff line change
Expand Up @@ -4,37 +4,62 @@ package user;

option go_package = "github.com/esclient/user-service";

// Сервис для управления пользователями: регистрация, аутентификация и верификация
//
// Этот сервис предоставляет функциональность для работы с пользователями,
// Включая регистрацию новых аккаунтов, аутентификацию и подтверждение email.
service UserService {
// Аутентификация пользователя в системе
rpc LoginUser(LoginUserRequest) returns (LoginUserResponse);
// Регистрация нового пользователя
rpc RegisterUser(RegisterUserRequest) returns (RegisterUserResponse);
// Подтверждение после регистрации пользователя
rpc VerifyUser(VerifyUserRequest) returns (VerifyUserResponse);
}

// Запрос для аутентификации пользователя
message LoginUserRequest {
// Логин или email пользователя
string username_or_email = 1;
// Пароль пользователя
string password = 2;
}

// Запрос для регистрации нового пользователя
message RegisterUserRequest {
// Уникальный логин пользователя. Должен содержать только буквы, цифры и подчеркивания
string login = 1;
// Email пользователя. Должен быть валидным email адресом (однако доп. валидация будет проведена внутри сервиса)
string email = 2;
// Пароль пользователя. должен содержать цифры и буквы
string password = 3;
// Подтверждение пароля. Должно совпадать с полем password
// Валидация и сравнение проводится внутри сервиса
string confirm_password = 4;
}

// Запрос для подтверждения email пользователя
message VerifyUserRequest {
// ID пользователя, которого нужно верифицировать. На данном этапе это число (int64)
int64 user_id = 1;
// Код подтверждения, отправленный на email пользователя. Валидация производится внутри сервиса
string confirmation_code = 2;
}

// Ответ после успешной аутентификации
message LoginUserResponse {
// ID аутентифицированного пользователя
int64 user_id = 1;
}

// Ответ после успешной регистрации
message RegisterUserResponse {
// ID зарегистрированного пользователя
int64 user_id = 1;
}

// Ответ с результатом верификации
message VerifyUserResponse {
// Флаг успешной верификации пользователя
bool is_verified = 1;
}
Loading