68 lines
1.8 KiB
Go
68 lines
1.8 KiB
Go
package db
|
|
|
|
import (
|
|
"database/sql"
|
|
"errors"
|
|
"fmt"
|
|
"gestion/models"
|
|
)
|
|
|
|
func (d *Database) CheckAddress(addressByUser *models.Command) error {
|
|
var correction models.Address
|
|
err := d.DB.QueryRow(
|
|
`SELECT invalid_address, correct_address FROM adresse_correction WHERE invalid_address = $1`,
|
|
addressByUser.DeliveryAddress,
|
|
).Scan(&correction.InvalidAddress, &correction.CorrectAddress)
|
|
if errors.Is(err, sql.ErrNoRows) {
|
|
return nil
|
|
}
|
|
if err != nil {
|
|
return fmt.Errorf("checkAddress: %w", err)
|
|
}
|
|
var correctedAddress = correction.CorrectAddress
|
|
addressByUser.DeliveryAddress = correctedAddress
|
|
return fmt.Errorf("Adresse invalide %s", correctedAddress)
|
|
}
|
|
|
|
func (d *Database) AddAddress(CorrectAddressByAdmin string, InvalidAddressByAdmin string) error {
|
|
_, err := d.DB.Exec(
|
|
`INSERT INTO adresse_correction
|
|
(invalid_address, correct_address)
|
|
VALUES ($1, $2)`,
|
|
InvalidAddressByAdmin, CorrectAddressByAdmin,
|
|
)
|
|
if err != nil {
|
|
return fmt.Errorf("addAddress: %w", err)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (d *Database) DeleteAddress(InvalidAddressByAdmin string, CorrectAddressByAdmin string) error {
|
|
_, err := d.DB.Exec(
|
|
`DELETE FROM adresse_correction WHERE invalid_address = $1 AND correct_address = $2`,
|
|
InvalidAddressByAdmin, CorrectAddressByAdmin,
|
|
)
|
|
if err != nil {
|
|
return fmt.Errorf("deleteAddress: %w", err)
|
|
}
|
|
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()
|
|
}
|