def __init__(self, mdb=None): if mdb is None: self.mdb = _movie_database() else: self.mdb = mdb self.mdb.load_movies('movies.dat')
def PUT_KEY(self, movie_id): output = {'result': 'success'} mid = int(movie_id) try: data = json.loads(cherrypy.request.body.read().decode()) mdbtmp = _movie_database() mdbtmp.load_movies('movies.dat') movie = mdbtmp.get_movie(mid) self.mdb.set_movie(mid, movie) except Exception as ex: output['result'] = 'error' output['message'] = str(ex) return json.dumps(output)
def PUT_KEY(self, movie_id): '''when PUT request comes in for /reset/movie_id endpoint, then that movie is reloaded and updated in mdb''' output = {'result': 'success'} mid = int(movie_id) try: data = json.loads(cherrypy.request.body.read().decode()) mdbtmp = _movie_database() mdbtmp.load_movies('movies.dat') movie = mdbtmp.get_movie(mid) self.mdb.set_movie(mid, movie) #TODO remember to reset genre also except Exception as ex: output['result'] = 'error' output['message'] = str(ex) return json.dumps(output)
def start_service(): dispatcher = cherrypy.dispatch.RoutesDispatcher() mdb = _movie_database() movieController = MovieController(mdb=mdb) resetController = ResetController(mdb=mdb) ratingsController = RatingsController(mdb=mdb) dispatcher.connect('movie_get', '/movies/:movie_id', controller=movieController, action='GET_KEY', conditions=dict(method=['GET'])) dispatcher.connect('movie_put', '/movies/:movie_id', controller=movieController, action='PUT_KEY', conditions=dict(method=['PUT'])) dispatcher.connect('movie_delete', '/movies/:movie_id', controller=movieController, action='DELETE_KEY', conditions=dict(method=['DELETE'])) dispatcher.connect('movie_index_get', '/movies/', controller=movieController, action='GET_INDEX', conditions=dict(method=['GET'])) dispatcher.connect('movie_index_post', '/movies/', controller=movieController, action='POST_INDEX', conditions=dict(method=['POST'])) dispatcher.connect('movie_index_delete', '/movies/', controller=movieController, action='DELETE_INDEX', conditions=dict(method=['DELETE'])) dispatcher.connect('reset_put', '/reset/:movie_id', controller=resetController, action='PUT_KEY', conditions=dict(method=['PUT'])) dispatcher.connect('reset_index_put', '/reset/', controller=resetController, action='PUT_INDEX', conditions=dict(method=['PUT'])) dispatcher.connect('rating_get', '/ratings/:movie_id', controller=ratingsController, action='GET_KEY', conditions=dict(method=['GET'])) # CORS related options connections dispatcher.connect('movie_key_options', '/movies/:movie_id', controller=optionsController, action='OPTIONS', conditions=dict(method=['OPTIONS'])) dispatcher.connect('movie_options', '/movies/', controller=optionsController, action='OPTIONS', conditions=dict(method=['OPTIONS'])) dispatcher.connect('reset_key_options', '/reset/:movie_id', controller=optionsController, action='OPTIONS', conditions=dict(method=['OPTIONS'])) dispatcher.connect('reset_options', '/reset/', controller=optionsController, action='OPTIONS', conditions=dict(method=['OPTIONS'])) dispatcher.connect('rating_options', '/ratings/:movie_id', controller=optionsController, action='OPTIONS', conditions=dict(method=['OPTIONS'])) conf = { 'global': { 'server.thread_pool': 5, 'server.socket_host': 'student10.cse.nd.edu', 'server.socket_port': 51091, }, '/': { 'request.dispatch': dispatcher, 'tools.CORS.on': True, } } cherrypy.config.update(conf) app = cherrypy.tree.mount(None, config=conf) cherrypy.quickstart(app)
def __init__(self, mdb=None): if mdb is None: self.mdb = _movie_database() else: self.mdb = mdb
def __init__(self, mdb=None): if mdb is None: self.mdb = _movie_database() self.mdb.load_ratings('ratings.dat') else: self.mdb = mdb
def start_service(): dispatcher = cherrypy.dispatch.RoutesDispatcher() mdb = _movie_database() movieController = MovieController(mdb=mdb) resetController = ResetController(mdb=mdb) ratingsController = RatingsController(mdb=mdb) dispatcher.connect('movie_get', '/movies/:movie_id', controller=movieController, action='GET_KEY', conditions=dict(method=['GET'])) dispatcher.connect('movie_put', '/movies/:movie_id', controller=movieController, action='PUT_KEY', conditions=dict(method=['PUT'])) dispatcher.connect('movie_delete', '/movies/:movie_id', controller=movieController, action='DELETE_KEY', conditions=dict(method=['DELETE'])) dispatcher.connect('movie_index_get', '/movies/', controller=movieController, action='GET_INDEX', conditions=dict(method=['GET'])) dispatcher.connect('movie_index_post', '/movies/', controller=movieController, action='POST_INDEX', conditions=dict(method=['POST'])) dispatcher.connect('movie_index_delete', '/movies/', controller=movieController, action='DELETE_INDEX', conditions=dict(method=['DELETE'])) dispatcher.connect('reset_put', '/reset/:movie_id', controller=resetController, action='PUT_KEY', conditions=dict(method=['PUT'])) dispatcher.connect('reset_index_put', '/reset/', controller=resetController, action='PUT_INDEX', conditions=dict(method=['PUT'])) dispatcher.connect('rating_get', '/ratings/:movie_id', controller=ratingsController, action='GET_KEY', conditions=dict(method=['GET'])) conf = { 'global': { 'server.thread_pool': 5, # optional argument 'server.socket_host': 'student04.cse.nd.edu', # 'server.socket_port': 51045, #change port number to your assigned }, '/': { 'request.dispatch': dispatcher, } } cherrypy.config.update(conf) app = cherrypy.tree.mount(None, config=conf) cherrypy.quickstart(app)