Example #1
0
        new_feed = {'title':title, 'alias':alias, 'xml_url':xml_url, 
                    'http_url':http_url, 'feed_type':feed_type}

        global_feed_id = add_feed_to_master_list(new_feed)
        if not global_feed_id:
            abort(500) #need to explain this in the docs
        user_feed_id = add_feed_to_user(user, global_feed_id)

        # return the resource
        return '%s' % user_feed_id, 201

    def delete(self, username, feed_id = None): 
        user = self.user_validate(username)
        if not feed_id:
            abort(400)
        uf = user.get('feeds')
        if not uf: 
            abort(404)
        removed = False
        for i, feed in enumerate(uf):
            if feed['feed_id'] == int(feed_id):
                del uf[i]
                removed = True
        if not removed: 
            abort(404)
        users.save(user)
        return ''

app.add_url_rule('/feeds/<username>/', view_func=feed.as_view('feed'))
app.add_url_rule('/feeds/<username>/<int:feed_id>', view_func=feed.as_view('feed_w_id'))
Example #2
0
        else: 
            abort(401)

    def post(self):
        if signed_request(request.args, request.form):
            name = request.form.get('name')
            pid = request.form.get('pid')
            addr = request.form.get('addr')

            if name and pid and addr:
                if register(name, pid, addr):
                    return ''

        abort(403)

app.add_url_rule('/fetch/register/', view_func=fetch_register.as_view('fetch_register'))

class fetch_feed(MethodView):
    def get(self):
        if not signed_request(request.args, request.form) or not registered():
            abort(403)
        # determine how well the load is balanced.

        # are there any unassigned feeds?
        unassigned = [ x for x in feeds.find({'cat':'unassigned'}) ]
        app.logger.debug('%s' % unassigned)
        if not unassigned: 
            return ''
        abort(401)
        # how many fetchers are alive?