package controllers

import (
	"gitlab.fjmaimaimai.com/mmm-go/partner/pkg/port/appsvr/protocol"
	"gitlab.fjmaimaimai.com/mmm-go/partner/pkg/port/appsvr/services/user"
)

type UserController struct {
	BaseController
}

//UserInfo
//@router /userInfo [post]
func (this *UserController) UserInfo() {
	var msg *protocol.ResponseMessage
	defer func() {
		this.Resp(msg)
	}()
	var request *protocol.UserInfoRequest
	if err := this.JsonUnmarshal(&request); err != nil {
		msg = protocol.BadRequestParam(1)
		return
	}
	if b, m := this.Valid(request); !b {
		msg = m
		return
	}
	header := this.GetRequestHeader(this.Ctx)
	msg = protocol.NewReturnResponse(user.UserInfo(header, request))
}

//CheckSmsCode
// @router /checkSmsCode [post]
func (this *UserController) CheckSmsCode() {
	var msg *protocol.ResponseMessage
	defer func() {
		this.Resp(msg)
	}()
	var request *protocol.CheckSmsCodeRequest
	if err := this.JsonUnmarshal(&request); err != nil {
		msg = protocol.BadRequestParam(1)
		return
	}
	if b, m := this.Valid(request); !b {
		msg = m
		return
	}
	header := this.GetRequestHeader(this.Ctx)
	msg = protocol.NewReturnResponse(user.CheckSmsCode(header, request))
}

//ChangePhone
// @router /changePhone [post]
func (this *UserController) ChangePhone() {
	var msg *protocol.ResponseMessage
	defer func() {
		this.Resp(msg)
	}()
	var request *protocol.ChangePhoneRequest
	if err := this.JsonUnmarshal(&request); err != nil {
		msg = protocol.BadRequestParam(1)
		return
	}
	if b, m := this.Valid(request); !b {
		msg = m
		return
	}
	header := this.GetRequestHeader(this.Ctx)
	msg = protocol.NewReturnResponse(user.ChangePhone(header, request))
}

//ResetPassword
// @router /resetPassword [post]
func (this *UserController) ResetPassword() {
	var msg *protocol.ResponseMessage
	defer func() {
		this.Resp(msg)
	}()
	var request *protocol.ResetPasswordRequest
	if err := this.JsonUnmarshal(&request); err != nil {
		msg = protocol.BadRequestParam(1)
		return
	}
	if b, m := this.Valid(request); !b {
		msg = m
		return
	}
	header := this.GetRequestHeader(this.Ctx)
	msg = protocol.NewReturnResponse(user.ResetPassword(header, request))
}

//ChangePassword
// @router /changePassword [post]
func (this *UserController) ChangePassword() {
	var msg *protocol.ResponseMessage
	defer func() {
		this.Resp(msg)
	}()
	var request *protocol.ChangePasswordRequest
	if err := this.JsonUnmarshal(&request); err != nil {
		msg = protocol.BadRequestParam(1)
		return
	}
	if b, m := this.Valid(request); !b {
		msg = m
		return
	}
	header := this.GetRequestHeader(this.Ctx)
	msg = protocol.NewReturnResponse(user.ChangePassword(header, request))
}