forked from surajjana/iot_sample_server
-
Notifications
You must be signed in to change notification settings - Fork 20
Expand file tree
/
Copy pathserver.py
More file actions
65 lines (46 loc) · 1.86 KB
/
server.py
File metadata and controls
65 lines (46 loc) · 1.86 KB
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
from bottle import Bottle, run, route, static_file, request, response, template
from pymongo import MongoClient
from bson.json_util import dumps
from bson.objectid import ObjectId
import json
import pymongo
import requests
import time
app = Bottle(__name__)
# client = MongoClient('mongodb://heroku_j47rhw75:2ctpo13v9ptj497mqf7q1o1aps@ds151909.mlab.com:51909/heroku_j47rhw75')
# db = client.heroku_j47rhw75
client = MongoClient('mongodb://heroku_h2jp1gl5:nc2lsukpqu3e23e48tsbuuf8nf@ds161539.mlab.com:61539/heroku_h2jp1gl5')
db = client.heroku_h2jp1gl5
@app.hook('after_request')
def enable_cors():
response.headers['Access-Control-Allow-Origin'] = '*'
response.headers['Access-Control-Allow-Methods'] = 'PUT, GET, POST, DELETE, OPTIONS'
response.headers['Access-Control-Allow-Headers'] = 'Origin, Accept, Content-Type, X-Requested-With, X-CSRF-Token'
response.headers['Connection'] = 'keep-alive'
@app.route('/')
def root():
return {'data': 'Server root'}
@app.route('/led/<uname>/<val>')
def led(uname, val):
cur = db.iot_led.find({'uname': uname})
data = json.loads(dumps(cur))
if(len(data) == 0):
cur = db.iot_led.insert({'uname': uname, 'val': val, 'time_stamp': time.time()})
return {'response': 'New User Added', 'val': val}
else:
cur = db.iot_led.update({'uname': uname}, {'$set': {'val': val, 'time_stamp': time.time()}})
return {'response': 'LED Toggled', 'val': val}
@app.route('/led/<uname>')
def led(uname):
cur = db.iot_led.find({'uname': uname})
data = json.loads(dumps(cur))
return data[0]['val']
@app.route('/sensor/<uname>/<val>')
def sensor(uname, val):
cur = db.iot_sensor.insert({'uname': uname, 'val': val, 'time_stamp': time.time()})
return {'response': 'Sensor Value Added', 'val': val}
@app.route('/sensor/<uname>')
def sensor(uname):
cur = db.iot_sensor.find({'uname': uname})
data = json.loads(dumps(cur))
return {'response': data}