chore: add new routes for addresses

This commit is contained in:
2026-02-25 09:55:18 +01:00
parent 03cb05f3a5
commit 1376ce3583
8 changed files with 292 additions and 4 deletions
+18
View File
@@ -47,3 +47,21 @@ func (d *Database) DeleteAddress(InvalidAddressByAdmin string, CorrectAddressByA
}
return nil
}
func (d *Database) AllAddress() ([]models.Address, error) {
rows, err := d.DB.Query("SELECT invalid_address, correct_address FROM adresse_correction")
if err != nil {
return nil, fmt.Errorf("getAllAddress: %w", err)
}
defer rows.Close()
var addresses []models.Address
for rows.Next() {
var a models.Address
if err := rows.Scan(&a.InvalidAddress, &a.CorrectAddress); err != nil {
return nil, fmt.Errorf("getAllAddress scan: %w", err)
}
addresses = append(addresses, a)
}
return addresses, rows.Err()
}
+1 -1
View File
@@ -255,7 +255,7 @@ func (db *Database) createTables() error {
`CREATE TABLE IF NOT EXISTS adresse_correction (
id SERIAL PRIMARY KEY,
invalid_address VARCHAR(255) NOT NULL UNIQUE,
correct_address VARCHAR(255) NOT NULL UNIQUE,
correct_address VARCHAR(255) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);`,
+17
View File
@@ -57,3 +57,20 @@ func DeleteAddress(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"message": "Adresses supprimées avec succès"})
}
func GetAllAddress(c *gin.Context) {
database := c.MustGet("database").(*db.Database)
userRole := c.GetString("role")
if userRole != "admin" {
c.JSON(http.StatusForbidden, gin.H{"error": "Accès réservé aux administrateurs"})
return
}
getAddress, err := database.AllAddress()
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}
c.JSON(http.StatusOK, gin.H{"addresses": getAddress})
}
+1
View File
@@ -135,6 +135,7 @@ func SetupRoutes(router *gin.Engine, database *db.Database, geoService *services
// ============================================
adminGroupV2.POST("/add/address", handlers.AddAddress)
adminGroupV2.DELETE("/delete/address", handlers.DeleteAddress)
adminGroupV2.GET("/addresses", handlers.GetAllAddress)
// ============================================
// PRODUITS - GESTION
// ============================================