def render(self, request): logger.log_debug("%s %s" % (request.method, request.path)) logger.log_debug(str(request.args)) try: # get session id sid = request.args.get("session-id", ["0"]) sid = int(sid[0]) if sid == 0 or not sid in self.service.sessions: raise Exception("session-id %i is invalid" % sid) # get revision number rid = request.args.get("revision-number", ["0"]) rid = int(rid[0]) logger.log_debug("UpdateCommand: revision-number is %i" % rid) # if revision-number is not current revision number if not rid == DaapPrivate.REVISION_NUMBER: if rid < 0: raise Exception("invalid revision-number %s" % rid) # return the current revision number mupd = CodeBag("mupd") mupd.add(ContentCode("mstt", 200)) mupd.add(ContentCode("musr", int(DaapPrivate.REVISION_NUMBER))) return Response(200, {"content-type": x_dmap_tagged}, mupd.render()) # create a new update stream to listen for db-changed signal stream = UpdateStream(self.service) return Response(200, {"content-type": x_dmap_tagged}, stream) except Exception, e: logger.log_error("UpdateCommand failed: %s" % e) return Response(400, {"content-type": MimeType("text", "plain")}, str(e))
def render(self, request): """calls the renderDAAP method and returns its result.""" logger.log_debug("%s %s" % (request.method, request.path)) logger.log_debug(str(request.args)) try: return Response(200, {"content-type": x_dmap_tagged}, self.renderDAAP(request).render()) except Exception, e: logger.log_error("command failed: %s" % e) return Response(400, {"content-type": MimeType("text", "plain")}, str(e))
def _errDAAP(self, failure): logger.log_error("ListItemsCommand failed: %s" % failure) return Response(400, {"content-type": MimeType("text", "plain")}, str(failure))