34 lines
1.2 KiB
C++
34 lines
1.2 KiB
C++
//
|
|
// Created by dongl on 23-4-20.
|
|
//
|
|
|
|
#include "UserProveController.h"
|
|
|
|
void UserProveController::run(std::shared_ptr<agreement_request> request, std::shared_ptr<agreement_response> response) {
|
|
if (request->m_mph->mp_type() == mp::MP_REQUEST_LOGIN) {
|
|
auto sri = service.login(request->m_body.account(), request->m_body.password());
|
|
response->set(sri, request->m_bev);
|
|
handler::add_user(request);
|
|
|
|
} else if (request->m_mph->mp_type() == mp::MP_REQUEST_REGISTER) {
|
|
auto sri = service.register_(request->m_body.account(), request->m_body.password());
|
|
response->set(sri, request->m_bev);
|
|
|
|
} else if (request->m_mph->mp_type() == mp::MP_REQUEST_LOGOUT) {
|
|
// 查看当前用户是否在线
|
|
bool state = handler::is_user(request->m_body.account());
|
|
|
|
// current user list used redis 在优化
|
|
if (state) {
|
|
handler::remove_user(request);
|
|
auto sri = service.logout(request->m_body.account(), state);
|
|
response->set(sri, request->m_bev);
|
|
} else {
|
|
auto sri = service.logout(request->m_body.account(), state);
|
|
response->set(sri, request->m_bev);
|
|
}
|
|
}
|
|
}
|
|
|
|
|