aboutsummaryrefslogtreecommitdiffstats
path: root/backend/cmd/api/main.go
diff options
context:
space:
mode:
authorLibravatarLibravatar Biswa Kalyan Bhuyan <biswa@surgot.in> 2025-04-24 09:13:07 +0530
committerLibravatarLibravatar Biswa Kalyan Bhuyan <biswa@surgot.in> 2025-04-24 09:13:07 +0530
commitcaace928ac81c284629ee50942d72179d4da9784 (patch)
treeb2f4e87b7a53e30ac5ac9af94cdc70c2da5bbfb9 /backend/cmd/api/main.go
parent50d5e6534f5e593297a09323e683c7c8b850117b (diff)
downloadfinance-caace928ac81c284629ee50942d72179d4da9784.tar.gz
finance-caace928ac81c284629ee50942d72179d4da9784.tar.bz2
finance-caace928ac81c284629ee50942d72179d4da9784.zip
feat: Fix loan API type assertion and complete core loan features
- Resolve interface conversion panic in loan handlers by correcting user type assertions from *models.User to models.User - Finalize loan management API integration with frontend components - Implement remaining loan calculation logic and CRUD operations - Connect loan display components to backend APIs as per Phase 3 - Update project status in README.md to reflect completed loan features - Add CORS middleware configuration for frontend-backend communication This commit completes core loan management functionality and fixes critical type safety issues in the API handlers, enabling proper user context handling.
Diffstat (limited to 'backend/cmd/api/main.go')
-rw-r--r--backend/cmd/api/main.go14
1 files changed, 13 insertions, 1 deletions
diff --git a/backend/cmd/api/main.go b/backend/cmd/api/main.go
index de021fa..b90962f 100644
--- a/backend/cmd/api/main.go
+++ b/backend/cmd/api/main.go
@@ -3,12 +3,14 @@ package main
import (
"log"
"net/http"
+ "time"
"finance/backend/internal/api/auth"
"finance/backend/internal/api/v1/loans"
"finance/backend/internal/config"
"finance/backend/internal/database"
+ "github.com/gin-contrib/cors"
"github.com/gin-gonic/gin"
)
@@ -27,6 +29,16 @@ func main() {
// Setup Gin Router
r := gin.Default()
+ // Configure CORS
+ r.Use(cors.New(cors.Config{
+ AllowOrigins: []string{"http://localhost:3000"},
+ AllowMethods: []string{"GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"},
+ AllowHeaders: []string{"Origin", "Content-Type", "Accept", "Authorization"},
+ ExposeHeaders: []string{"Content-Length"},
+ AllowCredentials: true,
+ MaxAge: 12 * time.Hour,
+ }))
+
// Public utility endpoints
r.GET("/ping", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
@@ -83,7 +95,7 @@ func main() {
c.JSON(http.StatusNotFound, gin.H{"error": "User not found"})
return
}
-
+
c.JSON(http.StatusOK, gin.H{"user": user})
})