-
Notifications
You must be signed in to change notification settings - Fork 0
/
ironmq.py
50 lines (37 loc) · 1.82 KB
/
ironmq.py
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import json
from google.appengine.api import urlfetch
class IronMQ:
def __init__(self, token, project_id, uri = 'https://mq-aws-us-east-1.iron.io', version = '1'):
self.token = token
self.project_id = project_id
self.url = uri + '/' + version + '/projects/' + project_id + '/queues/'
def post(self, queue_name, messages):
form_data = { 'messages':[] }
for msg in messages:
form_data['messages'].append( {'body': msg } )
form_data = json.dumps(form_data)
result = urlfetch.fetch(
url=self.url + queue_name + '/messages', payload=form_data, method=urlfetch.POST,
headers={'Content-Type': 'application/json', 'Authorization': 'OAuth ' + self.token })
msgs = { }
if 200 != result.status_code:
print "status_code: ", result.status_code
else:
msgs = json.loads(result.content)
return msgs
def get(self, queue_name):
result = urlfetch.fetch(url=self.url + queue_name + '/messages', method=urlfetch.GET,
headers={'Content-Type': 'application/json', 'Authorization': 'OAuth ' + self.token })
if 200 != result.status_code:
print "status_code: ", result.status_code
else:
msgs = json.loads(result.content)
return msgs
def delete(self, queue_name, message_id):
result = urlfetch.fetch(url=self.url + queue_name + '/messages/' + message_id, method=urlfetch.DELETE,
headers={'Content-Type': 'application/json', 'Authorization': 'OAuth ' + self.token})
if 200 != result.status_code:
print "status_code: ", result.status_code
else:
msgs = json.loads(result.content)
return msgs