Remove .env from tracking
This commit is contained in:
1 parent
89913a91ff
commit
eea1de9c0a
45 files changed
+139
-57
No files matched your search
+1
-25
@@ -3,12 +3,10 @@ package rest_api
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/gorilla/mux"
|
||||
"linhdevtran99/rest-api/models"
|
||||
"linhdevtran99/rest-api/rest-api/routes"
|
||||
"linhdevtran99/rest-api/utils"
|
||||
"log"
|
||||
"net/http"
|
||||
"time"
|
||||
)
|
||||
|
||||
type APIServer struct {
|
||||
@@ -42,29 +40,7 @@ func (s *APIServer) Run() {
|
||||
func (s *APIServer) TestRoute(w http.ResponseWriter, r *http.Request) error {
|
||||
|
||||
if r.Method == http.MethodGet {
|
||||
fmt.Println("hit")
|
||||
|
||||
//serect := os.Getenv("EMAIL_VERIFY_SECRET")
|
||||
|
||||
//_, otp := services.GeneratorOtp("hello", "nhocdl.poro1@gmail.com", 12, serect)
|
||||
//fmt.Println(otp.HashOTP)
|
||||
//fmt.Println(otp.PureOTP)
|
||||
|
||||
//utils.EncryptAESMailLink("nhocdl.poro2@gmail.com", serect, w)
|
||||
preUserData := &models.PreusersMongo{
|
||||
Username: "thewind121212",
|
||||
Email: "nhocdl.poro1@gmail.com",
|
||||
PhoneNumber: "0918327132",
|
||||
HashPassword: "it ok now ",
|
||||
CreatedDate: time.Now(),
|
||||
UpdateDate: time.Now(),
|
||||
VerifySentCount: 1,
|
||||
}
|
||||
|
||||
_ = preUserData
|
||||
|
||||
//services.WriteOTPInRedis(preUserData, "tranduy linh ", w)
|
||||
|
||||
fmt.Println("hello")
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
+28
-5
@@ -2,6 +2,7 @@ package routes
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/gorilla/mux"
|
||||
"linhdevtran99/rest-api/models"
|
||||
"linhdevtran99/rest-api/rest-api/services"
|
||||
@@ -15,14 +16,25 @@ func RegisterNewAccount(w http.ResponseWriter, r *http.Request) error {
|
||||
var registerInfo models.CreateUser
|
||||
|
||||
_ = json.NewDecoder(r.Body).Decode(®isterInfo)
|
||||
//[ok]
|
||||
|
||||
//call function check info user type in
|
||||
validRegisterInfo, responseAPI := services.CheckAndValidRegisterFiled(®isterInfo)
|
||||
//[fairy ok]
|
||||
|
||||
if responseAPI != nil {
|
||||
return utils.WriteJSON(w, responseAPI.Code, responseAPI.Err.Error())
|
||||
}
|
||||
|
||||
fmt.Println(validRegisterInfo)
|
||||
|
||||
//call function check data user use in past or not
|
||||
isValidData, responseAPI := services.CheckAccountExist(registerInfo.Username, registerInfo.Email)
|
||||
if responseAPI != nil {
|
||||
|
||||
isValidData, responseAPI := services.CheckAccountValid(registerInfo.Username, registerInfo.Email)
|
||||
|
||||
fmt.Println(isValidData)
|
||||
|
||||
if isValidData != true {
|
||||
return utils.WriteJSON(w, responseAPI.Code, responseAPI.Err.Error())
|
||||
}
|
||||
|
||||
@@ -39,15 +51,26 @@ func RegisterNewAccount(w http.ResponseWriter, r *http.Request) error {
|
||||
services.GenerateVerifyAccount(preUserData, w)
|
||||
|
||||
//debug
|
||||
if isValidData == true || validRegisterInfo == true {
|
||||
return utils.WriteJSON(w, http.StatusOK, "USER HAVE VALID INFO FOR REGISTER ACCOUNT")
|
||||
}
|
||||
//if isValidData == true || validRegisterInfo == true {
|
||||
// return utils.WriteJSON(w, http.StatusOK, "USER HAVE VALID INFO FOR REGISTER ACCOUNT")
|
||||
//}
|
||||
//debug
|
||||
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func Linh(w http.ResponseWriter, r *http.Request) error {
|
||||
if r.Method == http.MethodGet {
|
||||
var registerInfo models.CreateUser
|
||||
|
||||
_ = json.NewDecoder(r.Body).Decode(®isterInfo)
|
||||
fmt.Println(registerInfo)
|
||||
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func AuthRouterSetup(router *mux.Router) {
|
||||
authRouter := router.PathPrefix("/account").Subrouter()
|
||||
authRouter.Handle("/register", utils.MakeHTTPHandlerFn(RegisterNewAccount)).Methods("POST")
|
||||
|
||||
@@ -15,6 +15,7 @@ import (
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"strconv"
|
||||
"sync"
|
||||
"time"
|
||||
)
|
||||
@@ -69,10 +70,11 @@ func CheckAndValidRegisterFiled(registerData *models.CreateUser) (bool, *Respons
|
||||
}
|
||||
|
||||
// CheckAccountExist Checking in db is user input same data in
|
||||
func CheckAccountExist(userName string, email string) (bool, *ResponseError) {
|
||||
func CheckAccountValid(userName string, email string) (bool, *ResponseError) {
|
||||
//filter in mongodb
|
||||
var isValid bool
|
||||
var errAPI *ResponseError
|
||||
var dataRedisRetrive models.RedisOTP
|
||||
|
||||
filter := bson.D{
|
||||
{"$or", bson.A{
|
||||
@@ -93,6 +95,23 @@ func CheckAccountExist(userName string, email string) (bool, *ResponseError) {
|
||||
Err: errors.New("your username or email had been register before"),
|
||||
}
|
||||
}
|
||||
retrievedValue, err := utils.Redis.Get(context.Background(), "otp:"+email).Result()
|
||||
err = json.Unmarshal([]byte(retrievedValue), &dataRedisRetrive)
|
||||
if err != nil {
|
||||
fmt.Println("Internal Log: Can't get data from redis")
|
||||
}
|
||||
|
||||
timeDiff := time.Now().Unix() - dataRedisRetrive.CreatedDate
|
||||
|
||||
if timeDiff < 30 {
|
||||
isValid = false
|
||||
fmt.Println("Internal Log: Rate limit send verify mail")
|
||||
errAPI = &ResponseError{
|
||||
Code: http.StatusBadRequest,
|
||||
Err: errors.New("wait " + strconv.FormatInt(30-timeDiff, 10) + " to send verify mail again"),
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return isValid, errAPI
|
||||
}
|
||||
@@ -139,13 +158,13 @@ func createMailVerify(registerInfo *models.PreusersMongo, otpChan chan models.Ot
|
||||
os.WriteFile("./temp/"+qrFileName, decodedImage, 0666)
|
||||
emailBody := utils.BuildEmail(opt.PureOTP, mailVerify.LinkMail, qrFileName)
|
||||
|
||||
m.SetHeader("From", "kotomi.poro1@gmail.com")
|
||||
m.SetHeader("From", "admin@wliafdew.dev")
|
||||
m.SetHeader("To", registerInfo.Email)
|
||||
m.SetHeader("Subject", "Thanks For Join My Business")
|
||||
m.SetBody("text/html", emailBody)
|
||||
m.Embed("./temp/" + qrFileName)
|
||||
|
||||
d := mail.NewDialer("smtp.gmail.com", 587, "kotomi.poro1@gmail.com", smtpPass)
|
||||
d := mail.NewDialer("mail.wliafdew.dev", 465, "admin@wliafdew.dev", smtpPass)
|
||||
d.StartTLSPolicy = mail.MandatoryStartTLS
|
||||
|
||||
// Send the email to Bob, Cora and Dan.
|
||||
@@ -208,19 +227,19 @@ func writeOTPInRedis(registerInfo *models.PreusersMongo, otpChan chan models.Otp
|
||||
|
||||
otp := <-otpChan
|
||||
|
||||
data := map[string]string{
|
||||
"email": registerInfo.Email,
|
||||
"user": registerInfo.Username,
|
||||
"create_date": registerInfo.CreatedDate.String(),
|
||||
"hashOTP": otp.HashOTP,
|
||||
dataRedis := &models.RedisOTP{
|
||||
Email: registerInfo.Email,
|
||||
User: registerInfo.Username,
|
||||
CreatedDate: registerInfo.CreatedDate.Unix(),
|
||||
HashOTP: otp.HashOTP,
|
||||
}
|
||||
|
||||
jsonData, err := json.Marshal(data)
|
||||
jsonData, err := json.Marshal(dataRedis)
|
||||
if err != nil {
|
||||
fmt.Println("Internal log: Can't stringfy json data")
|
||||
_ = utils.WriteJSONInternalError(w, "Can't stringfy json data")
|
||||
}
|
||||
status := utils.Redis.Set(context.Background(), "otp:nhocdl.poro1@gmail.com", string(jsonData), time.Minute*2)
|
||||
status := utils.Redis.Set(context.Background(), "otp:"+registerInfo.Email, string(jsonData), time.Hour*24)
|
||||
|
||||
fmt.Println(status.Err())
|
||||
|
||||
|
||||
Reference in new issue
Block a user