check for unique card_name - fixes #17

This commit is contained in:
Peter Rounce 2022-11-20 13:02:06 +00:00
parent 50ddfd0726
commit f685b4a248
2 changed files with 35 additions and 1 deletions

View file

@ -46,6 +46,27 @@ func db_delete_expired() error {
return nil return nil
} }
func db_get_card_name_count(card_name string) (card_count int, err error) {
card_count = 0
db, err := db_open()
if err != nil {
return 0, err
}
defer db.Close()
sqlStatement := `SELECT COUNT(card_id) FROM cards WHERE card_name = $1;`
row := db.QueryRow(sqlStatement, card_name)
err = row.Scan(&card_count)
if err != nil {
return 0, err
}
return card_count, nil
}
func db_insert_card(one_time_code string, k0_auth_key string, k2_cmac_key string, k3 string, k4 string, func db_insert_card(one_time_code string, k0_auth_key string, k2_cmac_key string, k3 string, k4 string,
tx_max_sats int, day_max_sats int, lnurlw_enable bool, card_name string) error { tx_max_sats int, day_max_sats int, lnurlw_enable bool, card_name string) error {

View file

@ -36,6 +36,19 @@ func main() {
return return
} }
// check if card_name already exists
card_count, err := db_get_card_name_count(*card_name_ptr)
if err != nil {
log.Warn(err.Error())
return
}
if card_count > 0 {
fmt.Println("the card name already exists in the database")
return
}
// create the keys // create the keys
one_time_code := random_hex() one_time_code := random_hex()
@ -46,7 +59,7 @@ func main() {
// create the new card record // create the new card record
err := db_insert_card(one_time_code, k0_auth_key, k2_cmac_key, k3, k4, err = db_insert_card(one_time_code, k0_auth_key, k2_cmac_key, k3, k4,
*tx_max_ptr, *day_max_ptr, *enable_flag_ptr, *card_name_ptr) *tx_max_ptr, *day_max_ptr, *enable_flag_ptr, *card_name_ptr)
if err != nil { if err != nil {
log.Warn(err.Error()) log.Warn(err.Error())