50 lines
1.3 KiB
Go
50 lines
1.3 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
|
|
}
|