Skip to content
This repository has been archived by the owner on Nov 14, 2023. It is now read-only.

Commit

Permalink
chore: better logging
Browse files Browse the repository at this point in the history
  • Loading branch information
Frecherenkel60 committed Jul 13, 2023
1 parent a12ac52 commit ccab79b
Show file tree
Hide file tree
Showing 7 changed files with 48 additions and 26 deletions.
29 changes: 17 additions & 12 deletions src/handlers/user_handler.go
Original file line number Diff line number Diff line change
@@ -1,36 +1,41 @@
package handlers

import (
"net/http"

"github.com/Travel-Utilities-WWI21SEB/expense-management-service/src/controllers"
"github.com/Travel-Utilities-WWI21SEB/expense-management-service/src/expense_errors"
"github.com/Travel-Utilities-WWI21SEB/expense-management-service/src/models"
"github.com/Travel-Utilities-WWI21SEB/expense-management-service/src/utils"
"github.com/gin-gonic/gin"
"github.com/gin-gonic/gin/binding"
"log"
"net/http"
)

func RegisterUserHandler(userCtl controllers.UserCtl) gin.HandlerFunc {
return func(c *gin.Context) {
ctx := c.Request.Context()

// Parse multiform data (max 3MB)
if err := c.Request.ParseMultipartForm(3 << 20); err != nil {
// Get the multipart form
log.Printf("RegisterUserHandler: Getting multipart form")
if err := c.Request.ParseMultipartForm(10 << 20); err != nil {
utils.HandleErrorAndAbort(c, *expense_errors.EXPENSE_BAD_REQUEST)
return
}

// Get the multipart form
form := c.Request.MultipartForm

var registrationData models.RegistrationRequest
registrationData.Username = form.Value["username"][0]
registrationData.Password = form.Value["password"][0]
registrationData.Email = form.Value["email"][0]
registrationData.FirstName = form.Value["firstName"][0]
registrationData.LastName = form.Value["lastName"][0]
registrationData.Birthday = form.Value["birthday"][0]
registrationData.Location = form.Value["location"][0]
// Read the form data into the registrationData struct
log.Printf("RegisterUserHandler: Reading form data into struct")
if err := c.ShouldBindWith(&registrationData, binding.Form); err != nil {
log.Printf("RegisterUserHandler: Error while binding form data to struct")
utils.HandleErrorAndAbort(c, *expense_errors.EXPENSE_BAD_REQUEST)
return
} else {
log.Printf("RegisterUserHandler: Successfully bound form data to struct")
}

log.Printf("RegisterUserHandler: Checking if registration data is empty")

if utils.ContainsEmptyString(registrationData.Username, registrationData.Password, registrationData.Email,
registrationData.FirstName, registrationData.LastName, registrationData.Birthday, registrationData.Location) {
Expand Down
2 changes: 1 addition & 1 deletion src/managers/image_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ func (im *ImageManager) UploadDefaultProfilePicture(userId *uuid.UUID) (string,
}

// Get default profile picture from file system
image, err := os.Open("static/default_avatar.png")
image, err := os.Open("/go/app/static/default_avatar.png")
if err != nil {
log.Printf("Error opening default profile picture: %v", err)
return "", expense_errors.EXPENSE_INTERNAL_ERROR
Expand Down
5 changes: 4 additions & 1 deletion src/middlewares/auth_middleware.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,18 @@ package middlewares

import (
"context"
"log"

"github.com/Travel-Utilities-WWI21SEB/expense-management-service/src/expense_errors"
"github.com/Travel-Utilities-WWI21SEB/expense-management-service/src/models"
"github.com/Travel-Utilities-WWI21SEB/expense-management-service/src/utils"
"github.com/gin-gonic/gin"
"log"
)

func JwtAuthMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
log.Printf("JwtAuthMiddleware: Validating JWT")

// Check if Authorization header is set
authHeader := c.GetHeader("Authorization")
if authHeader == "" {
Expand Down
15 changes: 11 additions & 4 deletions src/middlewares/cors_middleware.go
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
package middlewares

import "github.com/gin-gonic/gin"
import (
"log"

"github.com/gin-gonic/gin"
)

func CorsMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
log.Printf("CorsMiddleware: Setting CORS headers")

allowedOrigins := []string{
"http://localhost:4173", // SvelteKit Vite Prod Preview
"http://localhost:5173", // SvelteKit Vite Dev Preview
"https://expenseui.c930.net", // SvelteKit Vite Prod Build
"http://localhost:4173", // SvelteKit Vite Prod Preview
"http://localhost:4174", // SvelteKit Docker Compose
"http://localhost:5173", // SvelteKit Vite Dev Preview
"https://costventures.works.net", // SvelteKit Vite Prod Build
}
origin := c.GetHeader("Origin")

Expand Down
4 changes: 4 additions & 0 deletions src/middlewares/uuid_middleware.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package middlewares

import (
"log"

"github.com/Travel-Utilities-WWI21SEB/expense-management-service/src/expense_errors"
"github.com/Travel-Utilities-WWI21SEB/expense-management-service/src/utils"
"github.com/gin-gonic/gin"
Expand All @@ -9,6 +11,8 @@ import (

func ValidateUUID() gin.HandlerFunc {
return func(c *gin.Context) {
log.Printf("ValidateUUID: Validating UUIDs")

// Get Params
params := c.Params

Expand Down
18 changes: 10 additions & 8 deletions src/models/usermodels.go
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
package models

import (
"mime/multipart"

"github.com/google/uuid"
)

type RegistrationRequest struct {
Username string `json:"username"`
FirstName string `json:"firstName"`
LastName string `json:"lastName"`
Location string `json:"location"`
Email string `json:"email"`
Password string `json:"password"`
ProfilePicture string `json:"profilePicture"`
Birthday string `json:"birthday"`
Username string `json:"username" form:"username" binding:"required"`
FirstName string `json:"firstName" form:"firstName" binding:"required"`
LastName string `json:"lastName" form:"lastName" binding:"required"`
Location string `json:"location" form:"location" binding:"required"`
Email string `json:"email" form:"email" binding:"required"`
Password string `json:"password" form:"password" binding:"required"`
Birthday string `json:"birthday" form:"birthday" binding:"required"`
ProfilePicture *multipart.FileHeader `json:"profilePicture" form:"profilePicture"`
}

type LoginRequest struct {
Expand Down
1 change: 1 addition & 0 deletions src/router.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ type Controllers struct {

func createRouter(dbConnection *pgxpool.Pool) *gin.Engine {
router := gin.New()
router.MaxMultipartMemory = 10 << 20 // 10 MiB

// Attach logger middleware
router.Use(gin.Logger())
Expand Down

0 comments on commit ccab79b

Please sign in to comment.