package com.ruoyi.web.controller.common;

import com.ruoyi.common.enums.DeviceType;
import com.ruoyi.common.web.domain.model.LoginBody;
import com.ruoyi.common.web.domain.model.RegisterBody;
import com.ruoyi.framework.service.LoginService;
import org.noear.solon.annotation.*;
import org.noear.solon.core.handle.Result;

import java.util.Map;

/**
 * 登录 注册 操作处理
 * @author ruoyi
 */
@Controller
@Mapping
public class LoginController {

    @Inject
    LoginService loginService;

    /**
     * 登录（PC端）
     */
    @Post
    @Mapping("login")
    public Map<String, Object> login(@Body LoginBody loginBody) {
        return loginService.login(loginBody, DeviceType.PC.getCode());
    }

    /**
     * 获取登录用户信息
     */
    @Get
    @Mapping("getUserInfo")
    public Map<String, Object> getUserInfo() {
        return loginService.getUserInfo();
    }

    /**
     * 登出
     */
    @Delete
    @Mapping("logout")
    public Result<Void> logout() {
        loginService.logout();
        return Result.succeed();
    }

    /**
     * 注册
     */
    @Post
    @Mapping("register")
    public Result<Void> register(@Body RegisterBody registerBody) {
        loginService.register(registerBody, DeviceType.PC.getCode());
        return Result.succeed();
    }

}
