36 lines
1.0 KiB
Go
36 lines
1.0 KiB
Go
package routes
|
|
|
|
import (
|
|
"encoding/json"
|
|
"errors"
|
|
"github.com/gorilla/mux"
|
|
"linhdevtran99/rest-api/models"
|
|
"linhdevtran99/rest-api/rest-api/services"
|
|
"linhdevtran99/rest-api/utils"
|
|
"net/http"
|
|
)
|
|
|
|
func RegisterNewAccount(w http.ResponseWriter, r *http.Request) error {
|
|
client := utils.MongoDB
|
|
if r.Method == http.MethodPost {
|
|
var registerInfo models.CreateUser
|
|
|
|
_ = json.NewDecoder(r.Body).Decode(®isterInfo)
|
|
//call function check info user type in
|
|
validRegisterInfo := services.CheckAndValidRegisterFiled(®isterInfo, w)
|
|
//call function check data user use in past or not
|
|
isValidData := services.CheckAccountExist(client, registerInfo.Username, registerInfo.Email, w)
|
|
|
|
if isValidData == false || validRegisterInfo == false {
|
|
return errors.New("USER DON'T HAVE VALID INFO FOR REGISTER ACCOUNT")
|
|
}
|
|
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func AuthRouterSetup(router *mux.Router) {
|
|
authRouter := router.PathPrefix("/account").Subrouter()
|
|
authRouter.Handle("/register", utils.MakeHTTPHandlerFn(RegisterNewAccount)).Methods("POST")
|
|
}
|