-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathConsumoDjango.py
More file actions
35 lines (28 loc) · 1016 Bytes
/
ConsumoDjango.py
File metadata and controls
35 lines (28 loc) · 1016 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from django.shortcuts import render_to_response
from django.http import HttpResponse
import Consumo
import demjson
def list(request):
"""List method - list all available carriers."""
list = Consumo.carrier_classes().keys()
return HttpResponse(demjson.encode(list), mimetype="application/json")
def carrier(request, carrier):
"""Carrier method (carrier): gets general info."""
username = None
password = None
if request.GET.has_key("username"):
username = request.GET["username"]
if request.GET.has_key("password"):
password = request.GET["password"]
carriers = Consumo.carrier_classes()
if not carriers.has_key(carrier):
return HttpResponseNotFound("<h1>Unknown carrier</h1>")
obj = carriers[carrier][1]
try:
server = obj(username, password)
server.parse()
return HttpResponse(demjson.encode(server.data()),
mimetype="application/json")
except Consumo.ConsumoException, e:
# FIXME: better error handling (authentication!).
return HttpResponse(demjson.encode(e), status = 500)