144 lines
3.3 KiB
Go
144 lines
3.3 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
// go get "golang.org/x/crypto/bcrypt"
|
|
)
|
|
|
|
func getUsersView(c *gin.Context) {
|
|
// dodanie nowej karty do bzy
|
|
c.Header("Content-Type", "application/json")
|
|
fmt.Println("Dodanie do couchDB nowej karty pytania lub odowiedzi")
|
|
|
|
var userList []map[string]interface{}
|
|
|
|
allUsers := getAllUsers()
|
|
for _, arg := range allUsers {
|
|
tmp := make(map[string]interface{})
|
|
tmp["login"] = arg.Login
|
|
tmp["userDescription"] = arg.UserDescription
|
|
tmp["points"] = arg.Points
|
|
userList = append(userList, tmp)
|
|
}
|
|
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"code": http.StatusOK,
|
|
"allUsers": userList, // cast it to string before showing
|
|
})
|
|
}
|
|
|
|
func addNewUserView(c *gin.Context) {
|
|
//Dane z frontu - json z danymi uzytkownika, bedzie jeden
|
|
//json walidacja na froncie - tu nie musze walidowac i elo
|
|
// dobra, jednak waliduje
|
|
c.Header("Content-Type", "application/json")
|
|
var newUser User
|
|
c.Bind(&newUser)
|
|
|
|
fmt.Println(newUser.Login)
|
|
_login := newUser.Login
|
|
_password := newUser.Password
|
|
_userDescription := newUser.UserDescription
|
|
|
|
if _login == "" {
|
|
c.JSON(http.StatusOK, "[addNewUserView][Error] Nie podano loginu")
|
|
return
|
|
}
|
|
|
|
if _password == "" {
|
|
c.JSON(http.StatusOK, "[addNewUserView][Error] Nie podano hasła")
|
|
return
|
|
}
|
|
|
|
isExists, err := checkLoginExists(_login)
|
|
|
|
if err != nil {
|
|
c.JSON(http.StatusOK, "[addNewUserView][Error] Nie mozna dodac do bazy")
|
|
return
|
|
}
|
|
|
|
if isExists {
|
|
c.JSON(http.StatusOK, "Login zajęty")
|
|
return
|
|
}
|
|
|
|
if err != nil {
|
|
c.JSON(http.StatusOK, "[addNewUserView][Error] Nie mozna zaszyfrowac hasla")
|
|
return
|
|
}
|
|
|
|
err = addUser(_login, _password, _userDescription)
|
|
|
|
if err != nil {
|
|
c.JSON(http.StatusOK, "[addNewUserView][Error] Nie mozna dodac do bazy")
|
|
return
|
|
}
|
|
|
|
c.Header("Content-Type", "application/json")
|
|
c.JSON(http.StatusOK, "[addNewUserView] Dodano uzytkownika do bazy")
|
|
}
|
|
|
|
func loginUserView(c *gin.Context) {
|
|
//logowanie - czy jest w bazie
|
|
c.Header("Content-Type", "application/json")
|
|
|
|
var checkUser User
|
|
c.Bind(&checkUser)
|
|
_login := checkUser.Login
|
|
_password := checkUser.Password
|
|
|
|
if _login == "" {
|
|
c.JSON(http.StatusOK, "[loginUserView][Error] Nie podano loginu")
|
|
return
|
|
}
|
|
|
|
if _password == "" {
|
|
c.JSON(http.StatusOK, "[loginUserView][Error] Nie podano hasła")
|
|
return
|
|
}
|
|
validLoginData, err := loginUser(_login, _password)
|
|
if err != nil {
|
|
c.JSON(http.StatusOK, "[loginUserView][Error] Nie mozna zalogowac")
|
|
return
|
|
}
|
|
|
|
c.JSON(http.StatusOK, validLoginData) //true jak zalogowano
|
|
|
|
}
|
|
|
|
func updateUserPointsView(c *gin.Context) {
|
|
//dodawanie punktu +1 dla uzytkownika
|
|
c.Header("Content-Type", "application/json")
|
|
|
|
var checkUser User
|
|
c.Bind(&checkUser)
|
|
_login := checkUser.Login
|
|
|
|
if _login == "" {
|
|
c.JSON(http.StatusOK, "[updateUserPointsView][Error] Nie podano loginu")
|
|
return
|
|
}
|
|
|
|
isExists, err := checkLoginExists(_login)
|
|
if err != nil {
|
|
c.JSON(http.StatusOK, "[updateUserPointsView][Error] Nie mozna dodac punktow")
|
|
return
|
|
}
|
|
if !isExists {
|
|
c.JSON(http.StatusOK, "[updateUserPointsView][Error] Brak uzytkownika w bazie")
|
|
return
|
|
}
|
|
|
|
//TODO dopisac update punktow na bazie
|
|
err = updateUserPoints(_login)
|
|
if err != nil {
|
|
c.JSON(http.StatusOK, "[updateUserPointsView][Error] Nie mozna dodac punktow")
|
|
return
|
|
}
|
|
|
|
c.JSON(http.StatusOK, "[updateUserPointsView] Dodano punkt")
|
|
}
|