Remove remaining bits of Bernard's postgres dispense
[uccvend-vendserver.git] / sql-edition / api / API.txt
diff --git a/sql-edition/api/API.txt b/sql-edition/api/API.txt
deleted file mode 100644 (file)
index e3ab07f..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
- API for the new dispense
--------------------------
-
-New dispense is written in entirely in postgresql. The server does all the
-required processing, meaning that database integrity is always maintained.
-
-The current interface for dispense is using a postgresql client library.
-Client libraries exist for many languages including C, C++, Perl, Python,
-Ruby, PHP, or you could also speak with the supplied client 'psql' through
-stdin/stdout.
-
-The details for connecting to the database are:
-    hostname: dispense.ucc.gu.uwa.edu.au
-    username: anondispense
-    database: dispense
-
-No password is required. You will only be able to connect from 'trusted'
-machines - currently this is mussel, mermaid, morwong.
-
-Note the API still isn't stable - it'd be worth running these commands by hand
-to see what the resulting tables look like.
-
-The useful things can be done once connected:
-
-    - SELECT * FROM get_services(username)
-         will give you a list of services available to the given user, including
-         syntax if parameters are required
-    - SELECT get_balance()
-      will return a table of all users and their balances.
-    - SELECT get_balance(username)
-      will return a table with one row for the given user, displaying their
-         account balance.
-    - SELECT do_request(target_user, service_name, parameters)
-      will perform a request.
-        * target_user is the user you wish to perform the request upon.
-                 You will only be permitted to act on somebody else if you are in the
-                 coke group.
-        * service_name is the name of the service as seen in the services
-          table.
-        * parameters is an array of parameters for the service, if required.
-          These should appear in the order as item_syntax from the services
-          table.
-
-Example follows:
-
-$ psql dispense -U anondispense -h dispense.ucc.gu.uwa.edu.au
-\Welcome to psql 7.4.1, the PostgreSQL interactive terminal.
-
-Type:  \copyright for distribution terms
-       \h for help with SQL commands
-       \? for help on internal slash commands
-       \g or terminate with semicolon to execute query
-       \q to quit
-
--- Equivalent of bringing up the menu. Only items allowed for
--- the given user are shown.
-dispense=> select * from get_services('dagobah');
-  item_name  | item_cost_cents |             item_syntax              | item_stock 
--------------+-----------------+--------------------------------------+------------
- nothing     |                 |                                      |           
- give        |                 | <username> <cents>                   |           
- acct        |                 | <cents> <reason>                     |           
- passion pop |              80 |                                      |          8
- vb          |              80 |                                      |          0
- emu export  |              80 |                                      |          3
- champagne   |              80 |                                      |          9
- coke powder |              80 |                                      |         11
- update_coke |                 | <slot number> <new name> <new price> |           
- opendoor    |                 |                                      |           
- grape juice |              80 |                                      |          0
- some foo    |              77 |                                      |          3
-(12 rows)
-
--- Get balance for a user.
--- Equivalent of 'dispense acct dagobah'
--- Calling just get_balance() will return all users balances.
-dispense=> select * from get_balance('dagobah');
- user_name | user_balance_cents | user_balance_bytes 
------------+--------------------+--------------------
- dagobah   |              -5080 |                  0
-(1 row)
-
--- Dispense something for a user.
--- Equivalent of 'dispense -u dagobah grape juice'
-dispense=> select do_request('dagobah', 'grape juice', NULL);
-ERROR:  You may not dispense below -$20.00.
-CONTEXT:  PL/pgSQL function "do_request" line 12 at SQL statement
-
--- Adjust somebody's account balance up or down.
--- Equivalent of 'dispense acct dagobah +10000 BAG123'
-dispense=> select do_request('dagobah', 'acct', array['+10000', 'BAG123']);
- do_request 
-------------
- t
-(1 row)
-
--- Get the balance once again ... note that it's higher :)
-dispense=> select * from get_balance('dagobah');
- user_name | user_balance_cents | user_balance_bytes 
------------+--------------------+--------------------
- dagobah   |               4920 |                  0
-(1 row)
-
--- Try that dispense again, but we see there is none
-dispense=> select do_request('dagobah', 'grape juice', NULL);
-ERROR:  We are out of stock of that item.
-CONTEXT:  PL/pgSQL function "do_request" line 12 at SQL statement
-
--- Try that dispense again, but we see there is none
-dispense=> select do_request('dagobah', 'some foo', NULL);
- do_request 
-------------
- t
-(1 row)
-
--- Updating a slot name/price on the coke machine
-dispense=> select do_request('dagobah', 'update_coke', array['3', 'orange blah', '88']);
- do_request 
-------------
- t
-(1 row)
-
--- Note the services have changed
-dispense=> select * from get_services('dagobah');
-  item_name  | item_cost_cents |             item_syntax              | item_stock 
--------------+-----------------+--------------------------------------+------------
- nothing     |                 |                                      |           
- give        |                 | <username> <cents>                   |           
- acct        |                 | <cents> <reason>                     |           
- passion pop |              80 |                                      |          8
- vb          |              80 |                                      |          0
- emu export  |              80 |                                      |          3
- champagne   |              80 |                                      |          9
- coke powder |              80 |                                      |         11
- update_coke |                 | <slot number> <new name> <new price> |           
- opendoor    |                 |                                      |           
- grape juice |              80 |                                      |          0
- orange blah |              88 |                                      |          3
-(12 rows)
-
-Email comments or queries to <[email protected]>

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