Using REST Verbs and JSON to Add or Remove Lights

import web
import json

from CM19aDriver import CM19aDrive

urls = (‘/message’,’hello’,
‘/lights/(on|off)’,’lights’,
‘/lights’,’lights’
‘/lights/(.*?)’,’lights’,
‘/lights/(.*?)’,’Error’,)
app = web.application(urls,globals())

class hello:
_mesage = json.dumps({})

def GET(self):
return json.dumps(hello._mesage)

def POST(self):
hello._mesage = json.loads(web.data())

class Lights:
_lightsJson = json.dumps({“lights”:[{“lighId”:”officeDesk”,”houseCode”:”A”,”unitCode”:”1″}]})

def GET(self,lighId = None)
if (lighId is None):
return json.dumps(self.retrieveLightsFromStore())
else
return json.dumps(self.getMatchingLight(lighId))

def POST(self):
newLight = json.loads(web.data())
fullJson = self.retrieveLightsFromStore()
currentLight = fullJson[‘lights’]
currentLight.append(newLight)
Lights._lightsJson = json.dumps(fullJson)

def DELETE(self,lighId):
jsonData = self.retrieveLightsFromStore
updateLights = [light for light in jsonData[‘lights’] if light[lighId] != lighId]
jsonData[‘lights’] = updateLights
self.writeLightsToStore(jsonData)

def PUT(self,lighId,command):

matchingLight = self.getMatchingLight(lighId)

cm19a – CM19aDrive();
retult = cm19a.send(matchingLight[‘houseCode’],matchingLight[‘unitCode’],command)
cm19a.finish()

def getMatchingLight(self, lighId):
jsonData = self.retrieveLightsFromStore()
matchingLight = next(node for node in jsonData[‘lights’] if node[lighId] == lighId)
return matchingLight
def retrieveLightsFromStore(self):
return json.loads(Lights._lightsJson)

def writeLightsToStore(self,pythonJson):
Lights._mesage = json.dumps(pythonJson)

class Error():
def PUT(self,command):
printf(“User enter invalid command: ” + command)

if __name__ == ‘__main__’:
app.run()

Advertisements

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s