Item statuses
[tpg/opendispense2.git] / notes / proto.txt
index f82d27b..d48031e 100644 (file)
@@ -38,8 +38,9 @@ Item IDs are allowed to contain any non-whitespace character, but in
 general they will be limited to the standard alpha-numeric set
 
 === User Auth ===
+--- Untrusted Users ---
 c      USER <username>\n
-s      100 SALT <string>\n or 100 User Set\n   (If no salt used)
+s      202 SALT <string>\n or 100 User Set\n   (If no salt used)
 c      PASS <hash>\n   (Hex-Encoded SHA-1 Hash of <username><salt><password>)
 s      200 Auth OK\n or 401 Auth Failure\n
 User is now authenticated
@@ -50,7 +51,7 @@ c     AUTOAUTH <username>\n
 s      200 Auth OK\n or 404 Bad Username\n or 401 Untrusted\n
 --- Alternate Method (MIFARE Authentication)
 c      MIFARE <card_id_hex>\n
-s      200 Auth OK as <username>\n or 404 Bad Card ID\n or 401 Untrusted\n
+s      200 Auth OK as <username>\n or 401 Untrusted\n or 404 Bad Card ID\n
 
 --- Set effective user (User in `dispense -u`) ---
 c      SETEUSER <username>\n
@@ -59,10 +60,13 @@ s   200 User set\n or 403 Not in coke\n or 404 User not found\n
 === Commands ===
 --- Dispense an item ---
 c      DISPENSE <item_id>\n
-s      200 Dispense OK\n or 402 Poor You\n or 500 Dispense Error\n or 406 Bad Item\n
+s      200 Dispense OK\n or 402 Poor You\n or 406 Bad Item\n or 500 Dispense Error\n
 --- Give to another user ---
 c      GIVE <user> <ammount> <reason>\n
 s      200 Give OK\n or 402 Poor You\n or 404 Bad User\n
+--- Donate to the club ---
+c      DONATE <ammount> <reason>\n
+s      200 Give OK\n or 402 Poor You\n
 --- Alter balance ---
 c      ADD <user> <ammount> <reason>\n
 s      200 Add OK\n or 402 No balance\n or 403 Not Coke\n or 404 Bad User\n
@@ -70,20 +74,23 @@ s   200 Add OK\n or 402 No balance\n or 403 Not Coke\n or 404 Bad User\n
 --- Get Item list ---
 c      ENUM_ITEMS\n
 s      201 Items <count>\n
-s      202 Item <item_id> <price> <description>\n
+s      >> Response to ITEM_INFO
     ...
 s      200 List End\n
 --- Get Item Information ---
 c      ITEM_INFO <item_id>\n
-s      202 Item <item_id> <price> <description>\n
-
+s      202 Item <item_id> <status> <price> <description>\n
+<status>       "avail", "sold", or "error"
 --- Get Users' Balances ---
- <max balance> and <min balance> can be '-' to indicate "none"
-c      ENUM_USERS[ <min balance> [<max balance>]]\n
+c      ENUM_USERS[ min_balance:<balance>][ max_balance:<balance>][ flags:<flagset>][ last_seen_before:<unix_timestamp>][ last_seen_after:<unix_timestamp>][ sort:<field>[-desc]]\n
 s      201 Users <count>\n
 s      202 User <username> <balance> <flags>\n
     ...
 s      200 List End\n
+<balance>      Integer balance value (in cents)
+<flagset>      Flag values (same format as USER_FLAGS)
+<unix_timestamp>       Number of seconds since 1/Jan/1970
+<field>        Sort field (name,balance,lastseen)
 --- Get a User's Balance ---
 c      USER_INFO\n
 s      202 User <username> <balance> <flags>\n
@@ -93,7 +100,7 @@ c    USER_ADD <username>\n
 s      200 User Added\n or 403 Not Wheel\n or 404 User Exists\n
 --- Set user flags ---
  <flags> is a comma-separated list of flag values (optionally preceded by
- - to remove the flag) Valid values are: user,coke,wheel,meta,disabled,door
+ - to remove the flag) Valid values are: user,coke,admin,internal,disabled,door
 c      USER_FLAGS <username> <flags>\n
 s      200 User Updated\n or 403 Not Wheel\n or 404 Bad User\n or 407 Unknown Flags\n
 --- Add MIFARE ID ---

UCC git Repository :: git.ucc.asn.au