Dodanie stanu wylogowania i zaloowania do bazy mysql
This commit is contained in:
parent
b782f39ed8
commit
542320f496
@ -70,7 +70,7 @@ func getAllUsers() []User {
|
||||
for result.Next() {
|
||||
var user User
|
||||
|
||||
err = result.Scan(&user.UserId, &user.Login, &user.Password, &user.UserDescription, &user.Points)
|
||||
err = result.Scan(&user.UserId, &user.Login, &user.Password, &user.UserDescription, &user.Points, &user.IsLogged)
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
@ -176,3 +176,76 @@ func updateUserPoints(_login string) error {
|
||||
|
||||
return nil //jak bez bledow wszystko
|
||||
}
|
||||
|
||||
func getAllLoggedUsers() ([]string, error) {
|
||||
//pobieranie listy obiektow zalogowanych uzytkownikow
|
||||
db, err := connectMysql()
|
||||
loggedUsers := make([]string, 0)
|
||||
|
||||
result, err := db.Query("SELECT * FROM users WHERE isLogged = true;")
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
fmt.Println("[getAllLoggedUsers] [Error] %s", err)
|
||||
|
||||
return nil, err // zwraca nula jak nie uda sie pobrac listy loginow
|
||||
}
|
||||
|
||||
for result.Next() {
|
||||
var user User
|
||||
|
||||
err = result.Scan(&user.UserId, &user.Login, &user.Password, &user.UserDescription, &user.Points, &user.IsLogged)
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
return nil, err // zwraca nula jak nie uda sie pobrac listy loginow
|
||||
fmt.Println("[getAllLoggedUsers] [Error] %s", err)
|
||||
}
|
||||
|
||||
fmt.Println(user)
|
||||
loggedUsers = append(loggedUsers, user.Login)
|
||||
}
|
||||
|
||||
fmt.Println("Wszyscy zalogowani: ", loggedUsers)
|
||||
return loggedUsers, nil // zwraca nula jak nie uda sie pobrac listy loginow
|
||||
|
||||
}
|
||||
|
||||
func updateLoggedUser(_login string) error {
|
||||
//aktualizuje stan uzytkownika na zalogowanego
|
||||
db, err := connectMysql()
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
fmt.Println("[updateLoggedUser] [Error] %s", err)
|
||||
return err
|
||||
}
|
||||
|
||||
updateLogin := fmt.Sprintf(`UPDATE users SET isLogged=true WHERE login='%s' ;`, _login)
|
||||
_, err = db.Query(updateLogin)
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
fmt.Println("[getAllLoggedUsers] [Error] %s", err)
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func updateLogoutUser(_login string) error {
|
||||
//aktualizuje stan na false jak sie uzytkownik wyloguje
|
||||
db, err := connectMysql()
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
fmt.Println("[updateLoggedUser] [Error] Nie udało polaczy sie z baza")
|
||||
return err
|
||||
}
|
||||
|
||||
updateLogout := fmt.Sprintf(`UPDATE users SET isLogged=false WHERE login='%s' ;`, _login)
|
||||
_, err = db.Query(updateLogout)
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
fmt.Println("[getAllLoggedUsers] [Error] Nie udalo sie zaktulizowac wylogowanego uzytkownika")
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
}
|
||||
|
@ -58,6 +58,9 @@ func main() {
|
||||
api.POST("/loginUserView", loginUserView) //logowanie
|
||||
api.POST("/updateUserPointsView", updateUserPointsView) // inkrementacja punktow
|
||||
api.POST("/addNewCardView", addNewCardView) // [couchdb] dodawanie nowej karty
|
||||
api.POST("/getAllLoggedUsersView", getAllLoggedUsersView) // [mysql] pobieranie listy zalogowanych uzytkownikow
|
||||
api.POST("/updateLoggedUserView", updateLoggedUserView) //aktualizacja ze uzytkownik zalogowany
|
||||
api.POST("/updateLogoutUserView", updateLogoutUserView) //aktualizacja stanu jak uzytkownik sie wyloguje
|
||||
|
||||
// Start and run the server
|
||||
router.Run(":3000")
|
||||
|
@ -21,6 +21,7 @@ type User struct {
|
||||
UserDescription string `json:"userDescription"`
|
||||
Points int `json:points`
|
||||
Token string
|
||||
IsLogged bool
|
||||
}
|
||||
|
||||
// Structura karty
|
||||
|
@ -179,13 +179,6 @@ func addNewCardView(c *gin.Context) {
|
||||
//PATRZ: documentation/couchdb/local.ini; documentation/couchdb/corsy_ustawienie.txt
|
||||
c.Header("Content-Type", "application/json")
|
||||
fmt.Println("-------------------- ADD NEW CARD ----------------------------------------------")
|
||||
fmt.Println("------------------------------------------------------------------")
|
||||
fmt.Println("------------------------------------------------------------------")
|
||||
fmt.Println("------------------------------------------------------------------")
|
||||
fmt.Println("------------------------------------------------------------------")
|
||||
fmt.Println("------------------------------------------------------------------")
|
||||
fmt.Println("------------------------------------------------------------------")
|
||||
|
||||
var newCard Card
|
||||
c.Bind(&newCard)
|
||||
_isQuestion := newCard.IsQuestion
|
||||
@ -210,3 +203,52 @@ func addNewCardView(c *gin.Context) {
|
||||
c.JSON(http.StatusOK, "[addNewCardView] Dodano nową kartę")
|
||||
|
||||
}
|
||||
|
||||
func getAllLoggedUsersView(c *gin.Context) {
|
||||
fmt.Println("Zwracanie wszystkich zalogowanych uzytkownikow")
|
||||
|
||||
allLoggedUsers, err := getAllLoggedUsers()
|
||||
if err != nil {
|
||||
fmt.Println("[getAllLoggedUsersView] [Error] %s", err)
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"code": http.StatusOK,
|
||||
"allLoggedUsers": allLoggedUsers, // cast it to string before showing
|
||||
})
|
||||
|
||||
} else {
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"code": http.StatusOK,
|
||||
"allLoggedUsers": nil, // cast it to string before showing
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func updateLoggedUserView(c *gin.Context) {
|
||||
var loggedUser User //login zalogowane uzytkownika
|
||||
c.Bind(&loggedUser)
|
||||
_login := loggedUser.Login
|
||||
err := updateLoggedUser(_login)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusOK, "[updateLoggedUserView] Nie udalo sie zaktualizowac zalogowanego uzytkownika")
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, true) //true jak sie udalo zaktualizowac
|
||||
}
|
||||
|
||||
func updateLogoutUserView(c *gin.Context) {
|
||||
var logoutUser User //login zalogowane uzytkownika
|
||||
c.Bind(&logoutUser)
|
||||
_login := logoutUser.Login
|
||||
err := updateLogoutUser(_login)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusOK, "[updateLoggedUserView] Nie udalo sie zaktualizowac wylogowanego uzytkownika")
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, true) //true jak sie udalo zaktualizowac
|
||||
}
|
||||
|
||||
func getGentelman(c *gin.Context) {
|
||||
//zwraca login aktualnego gentelamana
|
||||
}
|
||||
|
14
documentation/stawianie_aplikacji.txt
Normal file
14
documentation/stawianie_aplikacji.txt
Normal file
@ -0,0 +1,14 @@
|
||||
---------------------MYSQL----------------------
|
||||
Tabela użytkowników, gdzie login jest unikalny
|
||||
CREATEA DATABASE golang_users;
|
||||
USE golang_users;
|
||||
|
||||
CREATE TABLE users(
|
||||
userID int AUTO_INCREMENT PRIMARY KEY,
|
||||
login Varchar(30),
|
||||
password Varchar(250),
|
||||
userDescription Varchar(250),
|
||||
points INT DEFAULT 0,
|
||||
isLogged bool DEFAULT FALSE,
|
||||
UNIQUE (login)
|
||||
)
|
@ -117,6 +117,8 @@ export default {
|
||||
if(this.isLogged){
|
||||
this.snackbarLogout = true
|
||||
this.isLogged = false
|
||||
this.$store.dispatch('removeLoggedUser', localStorage.getItem('user'))
|
||||
|
||||
console.log("wylogowano")
|
||||
localStorage.setItem('token',null);
|
||||
localStorage.setItem('user', null);
|
||||
|
@ -14,5 +14,32 @@ export const store = new Vuex.Store({
|
||||
// { icon: 'get_app', text: 'Zaloguj', route: '/login'},
|
||||
// { icon: 'account_circle', text: 'Rejestracja', route: '/register'},
|
||||
],
|
||||
allLoggedUsers:[]
|
||||
},
|
||||
getters:{
|
||||
allUsers: state => {
|
||||
return state.allLoggedUsers
|
||||
}
|
||||
},
|
||||
mutations:{
|
||||
//usuwanie po wylogowaniu
|
||||
removeLoggedUser: (state, payloadUser)=> {
|
||||
var elementId = state.allLoggedUsers.indexOf(payloadUser) //znajdowanie id elementu do usuniecia
|
||||
delete state.allLoggedUsers[elementId] //usuwanie kontkretnego loginu
|
||||
|
||||
},
|
||||
//dodawanie nowego zalogowanego uzytkownika
|
||||
addLoggedUser: (state, payloadUser)=> {
|
||||
state.allLoggedUsers.push(payloadUser)
|
||||
|
||||
}
|
||||
},
|
||||
actions:{
|
||||
addLoggedUser: (context, payloadUser) =>{
|
||||
context.commit('addLoggedUser', payloadUser)
|
||||
},
|
||||
removeLoggedUser: (context, payloadUser) =>{
|
||||
context.commit('removeLoggedUser', payloadUser)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
@ -101,6 +101,9 @@ export default {
|
||||
}
|
||||
console.log("LOCAL STOARAGE: ", localStorage.getItem('token'))
|
||||
console.log("LOCAL STOARAGE User: ", localStorage.getItem('user'))
|
||||
|
||||
console.log("Wszyscy uzytkownicy: ", this.$store.getters.allUsers)
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
@ -79,12 +79,15 @@ export default {
|
||||
var local = localStorage.getItem('token');
|
||||
var localU = localStorage.getItem('user');
|
||||
|
||||
//dodanie loginu do listy wszystkich zalogowanych użytkowników
|
||||
this.$store.dispatch('addLoggedUser', localStorage.getItem('user'))
|
||||
|
||||
console.log("Wszyscy uzytkownicy: ", this.$store.getters.allUsers)
|
||||
|
||||
console.log("LOCAL STOARAGE: ", local)
|
||||
console.log("LOCAL STOARAGE User: ", localU)
|
||||
|
||||
this.$router.push('game')
|
||||
|
||||
// router.push({name: "/game"}) //przekierowanie dla one sigle page application window.location.replace("http://localhost:8080/game");
|
||||
this.$router.push('game') //przekierowanie dla one sigle page application window.location.replace("http://localhost:8080/game");
|
||||
|
||||
}
|
||||
else{ //coś poszło nie tak
|
||||
|
Loading…
Reference in New Issue
Block a user