Complete file tree and packages managment rework

This commit is contained in:
Florian Sylvain
2022-12-27 21:00:19 +01:00
parent 39afc0c066
commit 451fd8452b
11 changed files with 153 additions and 161 deletions
+45
View File
@@ -0,0 +1,45 @@
package api
import (
"errors"
"os"
"time"
"github.com/Floriansylvain/GohCMS/internal/database"
jwt "github.com/appleboy/gin-jwt/v2"
"github.com/gin-gonic/gin"
"go.mongodb.org/mongo-driver/bson"
)
type User struct {
Email string `json:"email" bson:"email"`
Password string `json:"password" bson:"password"`
}
var UsersLocation = database.Location{Database: "gohcms", Collection: "users"}
var AuthMiddleware, _ = jwt.New(&jwt.GinJWTMiddleware{
Realm: "GohCMS",
Key: []byte(os.Getenv("APP_JWT_SECRET")),
Timeout: time.Hour,
MaxRefresh: time.Hour,
Authenticator: JWTAuthenticator,
})
func JWTAuthenticator(c *gin.Context) (interface{}, error) {
var user = User{}
err := c.BindJSON(&user)
if err != nil {
return nil, errors.New("wrong credentials json format.")
}
_, err = database.GetUniqueDocument(UsersLocation, bson.D{
{Key: "email", Value: user.Email},
{Key: "password", Value: user.Password},
})
if err != nil {
return nil, errors.New("wrong email or password.")
}
return gin.H{"email": user.Email}, nil
}
+19
View File
@@ -0,0 +1,19 @@
package api
import (
"net/http"
"github.com/gin-gonic/gin"
)
func SendBadRequest(c *gin.Context, message string) {
c.JSON(http.StatusBadRequest, gin.H{"message": message})
}
func SendOk(c *gin.Context, message string) {
c.JSON(http.StatusOK, gin.H{"message": message})
}
func SendForbidden(c *gin.Context, message string) {
c.JSON(http.StatusForbidden, gin.H{"message": message})
}
+11
View File
@@ -0,0 +1,11 @@
package api
import (
"net/http"
"github.com/gin-gonic/gin"
)
func Ping(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"message": "pong"})
}