Ejemplo n.º 1
0
    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)))
Ejemplo n.º 2
0
    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}
Ejemplo n.º 3
0
    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)))
Ejemplo n.º 4
0
    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)))
Ejemplo n.º 5
0
    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)))
Ejemplo n.º 6
0
    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')
Ejemplo n.º 7
0
    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')
Ejemplo n.º 8
0
    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)))
Ejemplo n.º 9
0
    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)))
Ejemplo n.º 10
0
    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')
Ejemplo n.º 11
0
    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')
Ejemplo n.º 12
0
    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(),
            }
Ejemplo n.º 13
0
    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')
Ejemplo n.º 14
0
    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')
Ejemplo n.º 15
0
    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)))
Ejemplo n.º 16
0
    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)))
Ejemplo n.º 17
0
    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,
            }