Exemple #1
0
def update(board_user_id: str, ver: str):
    session.rollback()
    data = deepcopy(request.data)
    data.update({"updated_by_id": request.user["id"]})
    old_data = query_helper.find_by_params(session,
                                           BoardUser, [{
                                               "id": {
                                                   "$eq": board_user_id
                                               }
                                           }, {
                                               "ver": {
                                                   "$eq": ver
                                               }
                                           }],
                                           json_result=True)
    result = query_helper.update_by_params(session,
                                           BoardUser, [{
                                               "id": {
                                                   "$eq": board_user_id
                                               }
                                           }, {
                                               "ver": {
                                                   "$eq": ver
                                               }
                                           }],
                                           data,
                                           json_result=True)
    log_helper.log_update(session, BoardUser, request.user["id"], result,
                          old_data)
    session.commit()
    return json_dumps(model_helper.insert_field_objects(session, result))
Exemple #2
0
async def create_note(request, session_obj, user_obj):
    params = param_helper.get_json(request)
    _id = id_helper.generate_id()
    params.update({
        'created_at': datetime.utcnow(),
        'id': _id,
        'ver': _id,
        'created_by_id': user_obj['id']
    })

    if 'parent_note_id' in params:

        found_parent = query_helper.find_by_params(
            session_obj,
            Note, [{
                'id': {
                    '$eq': params['parent_note_id']
                }
            }],
            json_result=True)

        if not found_parent:
            return json({
                'message': ('no parent note with id equal to {0} was found, '
                            'try again'.format(params['parent_note_id']))
            })

    result = command_helper.save(session_obj,
                                 Note,
                                 Note.COLUMNS,
                                 params,
                                 json_result=True)

    session_obj.commit()
    return json(result)
Exemple #3
0
async def login(request, session_obj):
    params = param_helper.get_json(request)
    if 'password' in params:
        params.update(
            {'password': password_helper.encrypt(params['password'])})

    # TODO: replace this loop when you integrate WTForms
    for field in ('username', 'password'):
        if field not in params:
            return json(
                {
                    'message': ('You need to provide your `{0}` to '
                                'successfully log in'.format(field))
                }, 401)
    args = [{
        "username": {
            "$eq": params['username']
        }
    }, {
        "password": {
            "$eq": params['password']
        }
    }, {
        "deleted_at": {
            "$eq": None
        }
    }]
    result = query_helper.find_by_params(session_obj, User, args, True)
    if result:
        result.update({"token": jwt_helper.encode_token(result)})
        return json(result)
    return json({'message': 'invalid login details'}, 401)
Exemple #4
0
def delete(user_id: str, ver: str):
    session.rollback()
    old_data = query_helper.find_by_params(session,
                                           User, [{
                                               "id": {
                                                   "$eq": user_id
                                               }
                                           }, {
                                               "ver": {
                                                   "$eq": ver
                                               }
                                           }],
                                           json_result=True)
    result = query_helper.delete_by_params(
        session,
        User, [{
            "id": {
                "$eq": user_id
            }
        }, {
            "ver": {
                "$eq": ver
            }
        }], {'deleted_by_id': request.user['id']},
        json_result=True)
    log_helper.log_update(session, User, request.user["id"], result, old_data)
    session.commit()
    return json_dumps(model_helper.insert_field_objects(session, result))
Exemple #5
0
async def find_note_status(request, session_obj, user_obj, status_id, note_id):
    filters = [
        {'id': {'$eq': status_id}},
        {'created_by_id': {'$eq': user_obj['id']}}
    ]
    return json(
        query_helper.find_by_params(
            session_obj, NoteStatus, filters, json_result=True))
Exemple #6
0
def delete(card_id: str, ver: str):
    session.rollback()
    data = deepcopy(request.data)
    data.update({"deleted_by_id": request.user["id"]})
    old_data = query_helper.find_by_params(
        session, Card, [{"id": {"$eq": card_id}}, {"ver": {"$eq": ver}}],
        json_result=True
    )
    result = query_helper.delete_by_params(
        session, Card, [{"id": {"$eq": card_id}}, {"ver": {"$eq": ver}}],
        data=data, json_result=True
    )
    log_helper.log_update(session, Card, request.user["id"], result, old_data)
    session.commit()
    return json_dumps(result)
Exemple #7
0
async def find_label(request, session_obj, user_obj, label_id):
    filters = [{
        'id': {
            '$eq': label_id
        }
    }, {
        'created_by_id': {
            '$eq': user_obj['id']
        }
    }]
    return json(
        query_helper.find_by_params(session_obj,
                                    Label,
                                    filters,
                                    json_result=True))
Exemple #8
0
def login():
    session.rollback()
    params = request.data
    token = None

    find_args = []
    if 'username' in params:
        find_args.append(
            {'username': {
                "$eq": str(params['username']).strip()
            }})

    elif 'email' in params:
        find_args.append({'email': {"$eq": str(params['email']).strip()}})

    if 'password' in params:
        find_args.append({
            'password': {
                "$eq":
                password_helper.encrypt_password(
                    str(params['password']).strip())
            }
        })

    result = query_helper.find_by_params(session,
                                         User,
                                         find_args,
                                         json_result=True)
    if result:
        if 'password' in result:
            del result['password']

        token = jwt_helper.encode_token(result)

    if token:
        result.update({'token': token})

    return json_dumps(model_helper.insert_field_objects(session, result))
Exemple #9
0
def update(user_id: str, ver: str):
    session.rollback()
    data = deepcopy(request.data)
    data.update({
        "updated_by_id": request.user["id"],
        "updated_at": datetime.now()
    })

    if 'password' in data:
        del data['password']

    old_data = query_helper.find_by_params(session,
                                           User, [{
                                               "id": {
                                                   "$eq": user_id
                                               }
                                           }, {
                                               "ver": {
                                                   "$eq": ver
                                               }
                                           }],
                                           json_result=True)

    result = query_helper.update_by_params(session,
                                           User, [{
                                               "id": {
                                                   "$eq": user_id
                                               }
                                           }, {
                                               "ver": {
                                                   "$eq": ver
                                               }
                                           }],
                                           data,
                                           json_result=True)
    log_helper.log_update(session, User, request.user["id"], result, old_data)
    session.commit()
    return json_dumps(model_helper.insert_field_objects(session, result))