-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
106 lines (85 loc) · 3.44 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
package main
import (
"github.com/EcommServer/controllers"
"github.com/gin-gonic/gin"
"github.com/EcommServer/database"
"github.com/EcommServer/models"
)
func main() {
db := database.InitDb("ecomm") // runs locally , though tested on google cloud , with cloud sql
defer db.Close()
//Redis Db for JWT logout (runs locally for now)
redisDb := database.InitRedisDb(0)
defer redisDb.Close()
//db.DropTable(&models.User{} ,&models.GoogleUser{}, &models.Address{})
db.Debug().AutoMigrate(&models.User{}, &models.GoogleUser{}, &models.Address{})
//Insert sample user FOR TESTING DB
//add1:=models.Address{PhoneNumber: "9811399095" , AddressLine1:"line 1" , AddressLine2: "line 2"}
//add2 := models.Address{PhoneNumber: "8368269946", AddressLine1:"line 11", AddressLine2: "line 21"}
//add3 := models.Address{PhoneNumber: "9999777765", AddressLine1:"line 11", AddressLine2: "line 21"}
//create:=db.Debug().Create(
// &models.User{
// FirstName:"sdAman",LastName:"Patelsad",Email:"aman@gmail.com",Password:"password",SignedInSource:"manual",
// Addresses: []models.Address{}}).RowsAffected
//
//fmt.Println("created ::" , create)
//
//var userDataSample []models.User
//query:=db.Debug().Preload("Addresses").Find(&userDataSample).RowsAffected
//fmt.Println("test Db data ::" , query , userDataSample)
//DELETE
//var user models.User
//db.Debug().Preload("Addresses").First(&user , 7)
//a:=db.Debug().Delete(&user , 7).RowsAffected
//fmt.Println("test delete " , a , user)
//UPDATE
//user:=models.User{Email: "samplenew@gmail.com"}
//update:=db.Debug().Model(&models.User{}).Where("id=?",8).Update(&user).RowsAffected
//db.Find(&user , 8)
//fmt.Println("test updte :" , update , user)
//Test model functions
//1. Create
//user:=models.User{
// FirstName:"Shubham",LastName:"Garg",Email:"sample@gmail.com",Password:"password",SignedInSource:"manual",
// Addresses: []models.Address{add3}}
//
//user , respMsg := models.CreateUser(db , user)
//fmt.Println("test db create :" , user , respMsg)
//2. Update
//user := models.User{
// FirstName:"Shubham1", LastName:"garg", Email:"sample@gmail.com", Password:"password", SignedInSource:"manual",
// //Addresses: []models.Address{
// // {PhoneNumber: "9999777765", AddressLine1:"line 11", AddressLine2: "line 21"},
// //},
//}
//user, respMsg := models.UpdateUserById(db, user , 14)
//fmt.Println("test db update :", user, respMsg)
//3. Query
//var user []models.User
//user, respMsg := models.GetAllUserswithAssociations(db)
//fmt.Println("test db query :", user, respMsg)
//4. DELETE
//user, respMsg := models.DeleteUserById(db ,10)
//fmt.Println("test db delete :", user, respMsg)
//val , err := redisDb.Get("token11").Result() //B -> Blacklisted
//fmt.Println(err , "dsd" ,val)
controllers.InitKeys()
api := gin.Default()
api.OPTIONS("/login", controllers.Cors)
api.POST("/login", controllers.Login(db))
api.OPTIONS("/googleLogin", controllers.Cors)
api.POST("/googleLogin", controllers.GoogleLogin(db))
//Redirect To Login Page after signup
api.OPTIONS("/signup", controllers.Cors)
api.POST("/signup", controllers.Signup(db))
//Redirect To Login Page after signout
api.OPTIONS("/signout", controllers.Cors)
api.GET("/signout", controllers.SignOut(redisDb))
api.OPTIONS("/api/v1/:routes", controllers.Cors)
group := api.Group("/api/v1/")
group.Use(controllers.AuthMiddleWare(redisDb))
{
group.GET("sample", controllers.GetSampleData(nil))
}
api.Run(":5000")
}