X-Git-Url: https://git.ucc.asn.au/?p=tpg%2Fopendispense2.git;a=blobdiff_plain;f=src%2Fcokebank_sqlite%2Fmain.c;h=464cee388663fdb37e26db51e0c5dfb7404fe0f4;hp=34761b2ebf9f0ab36637718d609c7681873159a8;hb=41f3be929beabdc4080b4dbd3626122aac452adb;hpb=612db258d8c8c55dd6364252f5d7ba87f0e2c28a diff --git a/src/cokebank_sqlite/main.c b/src/cokebank_sqlite/main.c index 34761b2..464cee3 100644 --- a/src/cokebank_sqlite/main.c +++ b/src/cokebank_sqlite/main.c @@ -63,6 +63,8 @@ struct sAcctIterator // Unused really, just used as a void type int Bank_SetFlags(int AcctID, int Mask, int Value); int Bank_GetBalance(int AcctID); char *Bank_GetAcctName(int AcctID); + int Bank_IsPinValid(int AcctID, int Pin); +void Bank_SetPin(int AcctID, int Pin); sqlite3_stmt *Bank_int_MakeStatemnt(sqlite3 *Database, const char *Query); int Bank_int_QueryNone(sqlite3 *Database, const char *Query, char **ErrorMessage); sqlite3_stmt *Bank_int_QuerySingle(sqlite3 *Database, const char *Query); @@ -354,6 +356,34 @@ int Bank_CreateAcct(const char *Name) return sqlite3_last_insert_rowid(gBank_Database); } +int Bank_IsPinValid(int AcctID, int Pin) +{ + char *query = mkstr("SELECT acct_id FROM accounts WHERE acct_id=%i AND acct_pin=%i LIMIT 1", AcctID, Pin); + sqlite3_stmt *statement = Bank_int_QuerySingle(gBank_Database, query); + free(query); + + if( statement ) { + sqlite3_finalize(statement); + } + + return (statement != NULL); +} + +void Bank_SetPin(int AcctID, int Pin) +{ + char *errmsg; + char *query = mkstr("UPDATE accounts SET acct_pin=%i WHERE acct_id=%i", Pin, AcctID); + int rv = Bank_int_QueryNone(gBank_Database, query, &errmsg); + if( rv != SQLITE_OK ) + { + fprintf(stderr, "Bank_CreateAcct - SQLite Error: '%s'\n", errmsg); + fprintf(stderr, "Query = '%s'\n", query); + sqlite3_free(errmsg); + free(query); + return ; + } + free(query); +} /* * Create an iterator for user accounts */