def from_json(data): if type(data) != type({}): data = json.loads(str(data).strip()) job = Job() job.id = get_value(data, "id", int, optional = True) job.name = get_value(data, "name", str); # Optional attributes job.description = get_value(data, "description", str, optional = True); job.cron = None cron = get_value(data, "cron", dict, optional = True) if cron != None: for name in ["day", "month", "year", "hour", "minute", "second"]: if name in cron: if job.cron == None: job.cron = {} job.cron[name] = get_value(cron, name, str) for s in data["signals"]: job.add_signal(Signal.from_json(s)) return job
def save_signal(self, handler): try: signal = Signal.from_json(handler.get_post_data()) signal = signal.sql_save(self.sql()) self.sql_commit() except Exception, e: self.log_error(e) handler.send_json_response(str(e), 400) return