def post(self, version): if not self.valid_version(version): self.error(404, "API Version %s not supported" % version) return name = self.request.get('name', default_value=None) description = self.request.get('description', default_value=None) if not name or not description: self.error(400, "Bad Data: Name: %s, Description: %s" \ % (name, description)) return slug = slugify.slugify(name) existing_s = List.get_by_slug(slug) if existing_s: self.error(404, "A list with this name already exists") return l = List(name=name, slug=slug, description=description) l.put() invalidate_cache() self.response.set_status(201) self.json(l.rest(self.base_url(version)))
def data(self): services = [] default_status = Status.get_default() lists = [] for list in self.lists: l = List.get_by_slug(list) if l is not None: lists.append(l) for service in Service.all().filter("list IN", lists).order("name").fetch(100): event = service.current_event() if event is not None: status = event.status else: status = default_status if len(self.statuses) and not status.slug in self.statuses: continue today = date.today() + timedelta(days=1) current, = service.history(1, default_status, start=today) has_issues = current["information"] and status.key() == default_status.key() service_dict = { "slug": service.slug, "name": service.name, "url": service.url(), "status": status, "has_issues": has_issues, "history": service.history(5, default_status), } services.append(service_dict) return {"days": get_past_days(5), "statuses": Status.all().fetch(100), "services": services}
def post(self, version, list_slug): if not self.valid_version(version): self.error(404, "API Version %s not supported" % version) return list = List.get_by_slug(list_slug) if not list: self.error(404, "Service %s does not exist" % list_slug) return name = self.request.get('name', default_value=None) description = self.request.get('description', default_value=None) if description: list.description = description if name: list.name = name if name or description: invalidate_cache() list.put() self.json(list.rest(self.base_url(version)))
def post(self, version, list_slug): if not self.valid_version(version): self.error(404, "API Version %s not supported" % version) return list = List.get_by_slug(list_slug) if not list: self.error(404, "Service %s does not exist" % list_slug) return name = self.request.get('name', default_value=None) description = self.request.get('description', default_value=None) if description: list.description = description if name: list.name = name if name or description: invalidate_cache() list.put() self.json(list.rest(self.base_url(version)))
def post(self, version): if not self.valid_version(version): self.error(404, "API Version %s not supported" % version) return name = self.request.get('name', default_value=None) description = self.request.get('description', default_value=None) if not name or not description: self.error(400, "Bad Data: Name: %s, Description: %s" \ % (name, description)) return slug = slugify.slugify(name) existing_s = List.get_by_slug(slug) if existing_s: self.error(404, "A list with this name already exists") return l = List(name=name, slug=slug, description=description) l.put() invalidate_cache() self.response.set_status(201) self.json(l.rest(self.base_url(version)))
def get(self, list_slug): self.list = List.get_by_slug(list_slug) if self.list is None: self.not_found() return td = default_template_data() td.update(self.retrieve("list"+list_slug)) #td.update(self.data()) self.render(td, 'index.html')
def get(self, list_slug): self.list = List.get_by_slug(list_slug) if self.list is None: self.not_found() return td = default_template_data() td.update(self.retrieve("list"+list_slug)) #td.update(self.data()) self.render(td, 'index.html')
def get(self, version, list_slug): if not self.valid_version(version): self.error(404, "API Version %s not supported" % version) return list = List.get_by_slug(list_slug) if not list: self.error(404, "List %s does not exist" % list_slug) return self.json(list.rest(self.base_url(version)))
def get(self, version, list_slug): if not self.valid_version(version): self.error(404, "API Version %s not supported" % version) return list = List.get_by_slug(list_slug) if not list: self.error(404, "List %s does not exist" % list_slug) return self.json(list.rest(self.base_url(version)))
def get(self, slug): list = List.get_by_slug(slug) if not list: self.not_found() return td = { "listss_selected": True, "list": list, } td.update(site.default_template_data()) self.render(td, 'admin/list_delete.html')
def get(self, slug): list = List.get_by_slug(slug) if not list: self.not_found() return td = { "listss_selected": True, "list": list, } td.update(site.default_template_data()) self.render(td, 'admin/list_delete.html')
def data(self): default_status = Status.get_default() lists = [] for list in self.lists: l = List.get_by_slug(list) if l is not None: lists.append(l) @ndb.toplevel def get_services(): services = [] for service in Service.query().filter(Service.list in lists).order(Service.name).fetch(100): event = yield service.current_event_async() if event is not None: status = event.status else: status = default_status if len(self.statuses) and not status.slug in self.statuses: continue today = datetime.today() + timedelta(days=1) current = yield service.history_async(1, default_status, start=today) current = current[0] has_issues = current["information"] and status.key == default_status.key history = yield service.history_async(5, default_status) service_dict = { "slug": service.slug, "name": service.name, "url": service.url(), "status": status, "has_issues": has_issues, "history": history, } services.append(service_dict) raise ndb.Return(services) return { "days": get_past_days(5), "statuses": Status.query().fetch(100), "services": get_services(), }
def get(self, slug): list = List.get_by_slug(slug) if not list: self.not_found() return td = { "lists_selected": True, "list": list, "action": "edit", "url": "/admin/api/v1/service-lists/" + slug, "description": list.description, "name": list.name, } td.update(site.default_template_data()) self.render(td, 'admin/list_edit.html')
def get(self, slug): list = List.get_by_slug(slug) if not list: self.not_found() return td = { "lists_selected": True, "list": list, "action": "edit", "url": "/admin/api/v1/service-lists/" + slug, "description": list.description, "name": list.name, } td.update(site.default_template_data()) self.render(td, 'admin/list_edit.html')
def delete(self, version, list_slug): if not self.valid_version(version): self.error(404, "API Version %s not supported" % version) return list = List.get_by_slug(list_slug) if not list: self.error(404, "List %s not found" % list_slug) return query = Service.query().filter(Service.list == list) for s in query: s.list = None s.put() invalidate_cache() list.delete() self.json(list.rest(self.base_url(version)))
def delete(self, version, list_slug): if not self.valid_version(version): self.error(404, "API Version %s not supported" % version) return list = List.get_by_slug(list_slug) if not list: self.error(404, "List %s not found" % list_slug) return query = Service.all() query.filter('list =', list) if query: for s in query: s.list = None s.put() invalidate_cache() list.delete() self.json(list.rest(self.base_url(version)))
def data(self): services = [] default_status = Status.get_default() lists = [] for list in self.lists: l = List.get_by_slug(list) if l is not None: lists.append(l) for service in Service.all().filter("list IN", lists).order("name").fetch(100): event = service.current_event() if event is not None: status = event.status else: status = default_status if len(self.statuses) and not status.slug in self.statuses: continue today = date.today() + timedelta(days=1) current, = service.history(1, default_status, start=today) has_issues = (current["information"] and status.key() == default_status.key()) service_dict = { "slug": service.slug, "name": service.name, "url": service.url(), "status": status, "has_issues": has_issues, "history": service.history(5, default_status), } services.append(service_dict) return { "days": get_past_days(5), "statuses": Status.all().fetch(100), "services": services, }