def post(self): token = self.request.get("token") if not token: self.response.set_status(400) self.response.out.write("Missing parameter: token") return protocols = self.request.get("protocols") if not protocols: self.response.set_status(400) self.response.out.write("Missing parameter: protocols") profile = ProfileManager.findByToken(token) if not profile: self.response.set_status(400) self.response.out.write("Invalid token") return params = { "action": self.request.path.lstrip("/"), "protocols": protocols.split(",") } profile.update(params) self.response.out.write("OK")
def post(self): required_parameters = ["token", "number"] for param in required_parameters: param_value = self.request.get(param) if not param_value: self.response.set_status(400) self.response.out.write("Missing parameter: %s" % param) return profile = ProfileManager.findByToken(self.request.get("token")) if not profile: self.response.set_status(400) self.response.out.write("Invalid token") return announcement = Announcement(type="phonecall", params={"number": self.request.get("number"), "name": self.request.get("name"), "profile": profile}) announcement.send() self.response.set_status(200) self.response.out.write("OK")
def post(self): required_parameters = ["token", "message"] for param in required_parameters: param_value = self.request.get(param) if not param_value: self.response.set_status(400) self.response.out.write("Missing parameter: %s" % param) return profile = ProfileManager.findByToken(self.request.get("token")) if not profile: self.response.set_status(400) self.response.out.write("Invalid token") return announcement = Announcement(type="event", params={"message": self.request.get("message"), "source": self.request.get("source") or "generic", "profile": profile}) announcement.send() self.response.set_status(200) self.response.out.write("OK")
def get(self): required_parameters = ["token", "offset"] for param in required_parameters: param_value = self.request.get(param) if not param_value: self.response.set_status(400) self.response.out.write("Missing parameter: %s" % param) return profile = ProfileManager.findByToken(self.request.get("token")) if not profile: self.response.set_status(400) self.response.out.write("Invalid token") return if self.request.get("limit"): limit = int(self.request.get("limit")) else: limit = 10 events = Event.find(profile, limit) offset = self.request.get("offset") if len(offset) == 5: sign = offset[0:1] hours = int(offset[1:3]) minutes = int(offset[3:5]) offset_seconds = hours * 3600 + minutes * 60 if sign == "-": offset_seconds *= -1 else: offset_seconds = 0 format = "%-16s %-30s %-s\n" self.response.out.write(format % ("Date", "Source", "Message")) self.response.out.write("------------------------------------------------------------------------\n") for event in events: event_date = event.received + timedelta(seconds=offset_seconds) event_date = event_date.strftime("%b %d %I:%M %p") message_for_display = event.message.replace("\n", " ") self.response.out.write(format % (event_date, event.source, message_for_display))
def receive(self, message): token = None # the recipient address is determined by the url, not the # content of the email message. received_at = self.request.path.split("/")[-1] token = received_at.split("@")[0] profile = ProfileManager.findByToken(token) if not profile: self.response.out.write("NO PROFILE") logging.info("Profile not found") return announcement = Announcement(type="email", params={"message": message, "profile": profile}) announcement.send() self.response.set_status(200) self.response.out.write("OK")