예제 #1
0
def mark_notice_route(request, notice_id):
    """
    Mark notice as read or unread.
    Must be logged in as user, provide a valid ID, and own the notice.
    Return notice.
    """

    db_conn = request['db_conn']

    current_user = get_current_user(request)
    if not current_user:
        return abort(401)
    notice = get_notice({'id': notice_id}, db_conn)
    if not notice:
        return abort(404)
    if notice['user_id'] != current_user['id']:
        return abort(403)

    if 'read' not in request['params']:
        errors = [{
            'name': 'read',
            'message': 'You must specify read or unread.',
        }]
    elif request['params'].get('read') is True:
        notice, errors = mark_notice_as_read(notice, db_conn)
    elif request['params'].get('read') is False:
        notice, errors = mark_notice_as_unread(notice, db_conn)
    if len(errors):
        return 400, {
            'errors': errors,
            'ref': 'qR4CBtcfcYfWDTqK9JOXXLhO',
        }

    return 200, {'notice': deliver_notice(notice, access='private')}
예제 #2
0
파일: notice.py 프로젝트: wincax88/sagefy
def mark_notice_route(request, notice_id):
    """
    Mark notice as read or unread.
    Must be logged in as user, provide a valid ID, and own the notice.
    Return notice.
    """

    db_conn = request['db_conn']

    current_user = get_current_user(request)
    if not current_user:
        return abort(401)
    notice = get_notice({'id': notice_id}, db_conn)
    if not notice:
        return abort(404)
    if notice['user_id'] != current_user['id']:
        return abort(403)

    if 'read' not in request['params']:
        errors = [{
            'name': 'read',
            'message': 'You must specify read or unread.',
        }]
    elif request['params'].get('read') is True:
        notice, errors = mark_notice_as_read(notice, db_conn)
    elif request['params'].get('read') is False:
        notice, errors = mark_notice_as_unread(notice, db_conn)
    if len(errors):
        return 400, {
            'errors': errors,
            'ref': 'qR4CBtcfcYfWDTqK9JOXXLhO',
        }

    return 200, {'notice': deliver_notice(notice, access='private')}
예제 #3
0
def mark_notice_route(request, notice_id):
  """
  Mark notice as read or unread.
  Must be logged in as user, provide a valid ID, and own the notice.
  Return notice.
  """

  db_conn = request['db_conn']

  current_user = get_current_user(request)
  if not current_user:
    return abort(401, 'EWoueZr0TYSccUhdNISK3A')
  notice = get_notice(db_conn, {'id': notice_id})
  if not notice:
    return abort(404, 'xsNPOqJoRw-aUrFo0RhVoA')
  if notice['user_id'] != current_user['id']:
    return abort(403, 'xPkb7MYXRIOaI7HeV9U37A')
  if 'read' not in request['params']:
    errors = [{
      'name': 'read',
      'message': 'You must specify read or unread.',
      'ref': 'bvtS4G4jQnaLlVSLyUXjVg',
    }]
  elif request['params'].get('read') is True:
    notice, errors = mark_notice_as_read(db_conn, notice)
  elif request['params'].get('read') is False:
    notice, errors = mark_notice_as_unread(db_conn, notice)
  if errors:
    return 400, {
      'errors': errors,
      'ref': 'FeEtTWJJQv22dTpz8y5fZA',
    }
  return 200, {'notice': deliver_notice(notice, access='private')}
예제 #4
0
def test_mark_notice_as_unread(db_conn):
  create_test_notices(db_conn)
  notice = get_notice(db_conn, {
    'id': notice_a_id
  })
  assert notice
  notice, errors = mark_notice_as_read(db_conn, notice)
  assert not errors
  assert notice
  assert notice['read'] is True
  notice, errors = mark_notice_as_unread(db_conn, notice)
  assert not errors
  assert notice
  assert notice['read'] is False
예제 #5
0
def test_mark_unread(db_conn, notices_table):
    """
    Expect to mark as unread.
    """

    notice, errors = insert_notice(
        {"user_id": "abcd1234", "kind": "create_proposal", "tags": ["test"], "read": True}, db_conn
    )
    assert notice["read"] is True
    notice, errors = mark_notice_as_unread(notice, db_conn)
    assert len(errors) == 0
    assert notice["read"] is False
    record = notices_table.filter({"user_id": "abcd1234"}).run(db_conn)
    record = list(record)[0]
    assert record["read"] is False
예제 #6
0
def test_mark_unread(db_conn, notices_table):
    """
    Expect to mark as unread.
    """

    notice, errors = insert_notice(
        {
            'user_id': 'abcd1234',
            'kind': 'create_proposal',
            'tags': ['test'],
            'read': True
        }, db_conn)
    assert notice['read'] is True
    notice, errors = mark_notice_as_unread(notice, db_conn)
    assert len(errors) == 0
    assert notice['read'] is False
    record = notices_table.filter({'user_id': 'abcd1234'}).run(db_conn)
    record = list(record)[0]
    assert record['read'] is False