Remove .env from tracking

This commit is contained in:
linhdevtran99 committed 2023-12-30 13:57:45 +07:00
1 parent 89913a91ff
commit eea1de9c0a
45 files changed
+139 -57

No files matched your search

+1 -25
View File
@@ -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
View File
@@ -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(&registerInfo)
//[ok]
//call function check info user type in
validRegisterInfo, responseAPI := services.CheckAndValidRegisterFiled(&registerInfo)
//[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(&registerInfo)
fmt.Println(registerInfo)
}
return nil
}
func AuthRouterSetup(router *mux.Router) {
authRouter := router.PathPrefix("/account").Subrouter()
authRouter.Handle("/register", utils.MakeHTTPHandlerFn(RegisterNewAccount)).Methods("POST")
+29 -10
View File
@@ -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())