示例#1
0
def startNotificationService():
    headers = get_auth_headers()
    url = endpoint('get_updates')
    keys = favorites_ds.data()
    # get system channel
    from api.streams.posts import Manager
    stream_system = None
    for s in Manager.streams:
        if s.title in ['system', 'System']:
            stream_system = s
    if stream_system:
        systemurl = endpoint('get_channel', chan_key=stream_system.key)
    else:
        systemurl = ''
    StartNotificationsService(headers, url, keys, systemurl)
示例#2
0
def startNotificationService():
    headers = get_auth_headers()
    url = endpoint('get_updates')
    keys = favorites_ds.data()
    # get system channel
    from api.streams.posts import Manager
    stream_system = None
    for s in Manager.streams:
        if s.title in ['system', 'System']:
            stream_system = s
    if stream_system:
        systemurl = endpoint('get_channel', chan_key=stream_system.key)
    else:
        systemurl = ''
    StartNotificationsService(headers, url, keys, systemurl)
示例#3
0
def get_channel(chan_key, on_page, on_error=None, **kwargs):
    get_page(
        url=endpoint('get_channel', chan_key=chan_key),
        page_args=get_page_args(**kwargs),
        response_key='updates',
        on_page=on_page,
        on_error=on_error)
示例#4
0
def register(pub_key, on_uid, on_error=None):
    errback = on_error or make_errback()
    try:

        def handle_response(response):
            if response.code == 200:
                callback = partial(
                    _handle_register,
                    on_uid=on_uid,
                    on_error=errback)
                response.deliverBody(JsonReceiver.create(callback, errback))
            else:
                print('error %d %s -- register' % (response.code, response.phrase))
                errback('returned %s' % response.code, code=response.code)

        agent = Agent(reactor)
        d = agent.request(
            'POST',
            endpoint('register'),
            bodyProducer=JsonProducer({'pub_key': pub_key}))
        d.addCallbacks(handle_response, errback)
    except Exception as ex:
        print('error %s -- register' % ex)
        if on_error:
            errback('error %s -- register' % ex)
        else:
            errback('error %s' % ex, 'register')
示例#5
0
def login(user_id, on_token, on_error=None):
    errback = on_error or make_errback()
    try:
        def handle_response(response):
            if response.code == 200:
                callback = partial(
                    _handle_login,
                    on_token=on_token,
                    on_error=errback)
                response.deliverBody(JsonReceiver.create(callback, errback))
            else:
                print('error %d %s -- login' % (response.code, response.phrase))
                errback('returned %s' % response.code, code=response.code)

        agent = Agent(reactor)
        d = agent.request(
            'POST',
            endpoint('login'),
            bodyProducer=JsonProducer({'key': user_id}))
        d.addCallbacks(handle_response, errback)
        timeoutCall = reactor.callLater(10, d.cancel)
        def completed(passthrough):
            print 'Login connection timeout'
            if timeoutCall.active():
                timeoutCall.cancel()

            return passthrough
        d.addBoth(completed)
    except Exception as ex:
        print('error %s -- login' % ex)
        if on_error:
            errback('error %s -- login' % ex, 'login')
        else:
            errback('error %s' % ex, 'login')
示例#6
0
def get_comments(post_key, on_page, on_error=None, **kwargs):
    get_page(
        url=endpoint('get_comments', post_key=post_key),
        page_args=get_page_args(**kwargs),
        response_key='comments',
        on_page=on_page,
        on_error=on_error)
示例#7
0
 def api_endpoint(self, *args, **kwargs):
     if 'headers' not in kwargs:
         kwargs['headers'] = self.request.headers
     response = api.endpoint(*args, **kwargs)
     if 'errors' in response:
         self.abort(503, response['errors'])
     return response
示例#8
0
def get(keys, on_items, on_error=None, **kwargs):
    get_helper(url=add_params(endpoint('get_items'),
                              key=keys,
                              allow_multiple=True),
               on_response=partial(_handle_items,
                                   on_items=on_items,
                                   on_error=on_error),
               on_error=on_error)
示例#9
0
def post(content, role, role_text, theme, background, channels, on_created=None, on_error=None):
    args = {
        'content': content,
        'role': role,
        'role_text': role_text,
        'theme': theme,
        'background': background,
        'channels': channels or []
    }
    post_helper(
        url=endpoint('post_post'),
        data=args,
        on_created=on_created,
        on_error=on_error)
示例#10
0
def post(content,
         role,
         role_text,
         theme,
         background,
         channels,
         on_created=None,
         on_error=None):
    args = {
        'content': content,
        'role': role,
        'role_text': role_text,
        'theme': theme,
        'background': background,
        'channels': channels or []
    }
    post_helper(url=endpoint('post_post'),
                data=args,
                on_created=on_created,
                on_error=on_error)
示例#11
0
def get(post_key, on_post, on_error=None):
    get_helper(endpoint('get_post', post_key=post_key),
               on_response=partial(_handle_post,
                                   on_post=on_post,
                                   on_error=on_error),
               on_error=on_error)
示例#12
0
def post(post_key, on_created=None, on_error=None):
    post_helper(endpoint('post_flag', post_key=post_key),
                on_created=on_created,
                on_error=on_error)
示例#13
0
def post(content, on_created=None, on_error=None):
    post_helper(
        endpoint('post_feedback'),
        data=content,
        on_created=on_created,
        on_error=on_error)
示例#14
0
def post(post_key, content, role, role_text, on_created=None, on_error=None):
    post_helper(
        endpoint('post_comment', post_key=post_key),
        {'content': content, 'role': role, 'role_text': role_text},
        on_created,
        on_error)
示例#15
0
def post(content, on_created=None, on_error=None):
    post_helper(endpoint('post_feedback'),
                data=content,
                on_created=on_created,
                on_error=on_error)
示例#16
0
def get_channels(on_channels, on_error=None):
    get_helper(
        url=endpoint('get_channels'),
        on_response=partial(_handle_channels, on_channels=on_channels, on_error=on_error),
        on_error=on_error)
示例#17
0
def post(post_key, on_created=None, on_error=None):
    post_helper(
        endpoint('post_flag', post_key=post_key),
        on_created=on_created,
        on_error=on_error)
示例#18
0
def post_up(item_key, on_voted=None, on_error=None):
    post_helper(
        endpoint('post_voteup', item_key=item_key),
        None,
        on_voted,
        on_error)
示例#19
0
def delete_down(item_key, on_deleted=None, on_error=None):
    delete_helper(
        endpoint('delete_votedown', item_key=item_key),
        on_deleted,
        on_error)
示例#20
0
def delete_down(item_key, on_deleted=None, on_error=None):
    delete_helper(endpoint('delete_votedown', item_key=item_key), on_deleted,
                  on_error)
示例#21
0
def get(post_key, on_post, on_error=None):
    get_helper(
        endpoint('get_post', post_key=post_key),
        on_response=partial(_handle_post, on_post=on_post, on_error=on_error),
        on_error=on_error)
示例#22
0
def get(keys, on_items, on_error=None, **kwargs):
    get_helper(
        url=add_params(endpoint('get_items'), key=keys, allow_multiple=True),
        on_response=partial(_handle_items, on_items=on_items, on_error=on_error),
        on_error=on_error)
示例#23
0
def post_up(item_key, on_voted=None, on_error=None):
    post_helper(endpoint('post_voteup', item_key=item_key), None, on_voted,
                on_error)