diff options
author | 2025-04-24 09:13:07 +0530 | |
---|---|---|
committer | 2025-04-24 09:13:07 +0530 | |
commit | caace928ac81c284629ee50942d72179d4da9784 (patch) | |
tree | b2f4e87b7a53e30ac5ac9af94cdc70c2da5bbfb9 /backend/cmd/api/main.go | |
parent | 50d5e6534f5e593297a09323e683c7c8b850117b (diff) | |
download | finance-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.go | 14 |
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}) }) |