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)
Exemple #4
0
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
Exemple #6
0
	def __init__(self, mdb=None):
		if mdb is None:
			self.mdb = _movie_database()
			self.mdb.load_ratings('ratings.dat')
		else:
			self.mdb = mdb
Exemple #7
0
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)