start of refactoring
[uccvend-vendserver.git] / sql-edition / clients / dispense.py
1 #!/usr/bin/python
2
3 import sys, os, re
4 from pyPgSQL import PgSQL
5
6 if __name__ == '__main__':
7         db = PgSQL.connect(user = 'anondispense', host = 'dispense', database = 'dispense')
8         cursor = db.cursor()
9         user = os.environ['USER']
10
11         if len(sys.argv) > 1:
12                 # We have a request. Pass it to dispense by calling
13                 # SELECT do_request(username, service, params as array)
14                 service = sys.argv[1]
15                 params = sys.argv[2:]
16                 if params != []:
17                         paramstr = 'array['
18                         for i in params:
19                                 paramstr += '%s,'
20                         paramstr = paramstr.rstrip(',') + ']'
21                 else:
22                         paramstr = 'NULL'
23                 cursor.execute('SELECT do_request(%%s, %%s, %s)'%paramstr, [user, service]+params)
24                 result = cursor.fetchone()[0]
25                 if result == True:
26                         print 'All good'
27                 else:
28                         print 'Eeeep!'
29         else:
30                 cursor.execute('SELECT * FROM get_services(%s)', user)
31                 print '%-10s %-50s %-10s %s' % ('Provider', 'Item', 'Cost', 'Stock')
32                 print '-------------------------------------------------------------------------------'
33                 for item in cursor.fetchall():
34                         print '%10s '%item[0],
35                         if item[3] is None:
36                                 item[3] = ''
37                         print '%-50s'%(item[1]+' '+item[3]),
38                         if item[2] is None:
39                                 print '%-10s' % '',
40                         else:
41                                 print '%-10d' % int(item[2]),
42                         if item[4] is None:
43                                 item[4] = 'N/A'
44                         print '%s'%item[4]
45         cursor.execute('SELECT * FROM get_balance(%s)', user);
46         [_, cents,bytes] = cursor.fetchone()
47         print user, 'has', int(cents), 'cents and', int(bytes), 'bytes'
48         db.commit()

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