Ejemplo n.º 1
0
def register_lending():
    """ 貸出情報の登録
    Parameters
    -------
    access_token: str
        貸す人のアクセストークン
    content: str
        貸したもの
    deadline: datetime
        返却期限

    Returns
    -------
    lending_id: int
        貸出ID
    created_at: str
        返却日
    """
    # パラメータの取得
    payload: dict = request.json
    token: str = get_token()
    content: str = payload.get("content")
    deadline: datetime = payload.get("deadline")

    lending_service = LendingService(token)
    lending_id, created_at = lending_service.register_lending(
        content, deadline)

    return jsonify({"lending_id": lending_id, "created_at": created_at})
Ejemplo n.º 2
0
def register_sent_url(lending_id):
    lending_service = LendingService(get_token())
    try:
        lending_service.register_sent_url(lending_id)
    except InvalidArgumentException as e:
        print(e)
        return jsonify({'status': 'error', 'message': e.message})

    return jsonify({'status': 'success'})
Ejemplo n.º 3
0
def register_borrower(lending_id):
    """ 借りた人の登録

    Parameters
    -------
    lending_id: int
        貸出ID
    access_token: str
        借りた人のアクセストークン

    Returns
    -------
    正常時
        {
          'status': 'success',
          'result': {
            'lending_id': int (貸出ID),
            'content': string (貸出内容),
            'deadline': Datetime (返却期限),
            'owner_name': string (貸した人の名前),
            'is_new_user': bool (新規のユーザーだった場合true)
          }
        }

    既に紐づけられていた場合
        409 Conflict
        {
          'status_code': 409,
          'error_code': 'already associated',
          'error': 'That lending already has borrower.'
        }
    """
    token = get_token()
    lending_service = LendingService(token)
    try:
        response = lending_service.register_borrower(lending_id)
    except BorrowerAlreadyExistsException as e:
        print(e)

        return jsonify({
            'status_code': 409,
            'error_code': 'already associated',
            'error': 'That lending already has borrower.'
        }), 409

    return jsonify(response)
Ejemplo n.º 4
0
def fetch_lending(lending_id):
    lending_service = LendingService(get_token())

    try:
        lending = lending_service.fetch_lending(lending_id)
    except BorrowerAlreadyExistsException as e:
        print(e)

        return jsonify({'status_code': 404, 'error_code': 'Not Found'}), 404

    return jsonify({
        'lending_id': lending.lending_id,
        'content': lending.content,
        'deadline': lending.deadline,
        'owner_name': lending.owner_name,
        'is_associated': lending.borrower_id is not None
    })
Ejemplo n.º 5
0
def get_borrower_lending():
    """ 借りたもの一覧
    Returns
    -------
    lendingList: list
        lendingId: str
            貸出ID
        content: str
            貸出内容
        deadline: datetime
            返却日
        owner_name: str
            貸した人の名前
    """
    token = get_token()
    lending_service = LendingService(token)
    data = lending_service.get_borrower_lending()

    return jsonify({"lending_list": data})
Ejemplo n.º 6
0
def get_owner_lending():
    """ 貸したもの一覧取得
    access_token: str
        アクセストークン
    Returns
    -------
    lendingList: list
        lendingId: str
            貸出ID
        content: str
            貸出内容
        deadline: datetime
            返却日
        borrowerName: str
            借りた人の名前
    """
    token = get_token()
    lending_service = LendingService(token)
    lending_list = lending_service.get_owner_lending()

    return jsonify({"lending_list": lending_list})
Ejemplo n.º 7
0
def register_lending_return(lending_id):
    """ 返却報告
    Parameters
    -------
    lending_id: int
        貸出ID
    accessToken: str
        貸した人のアクセストークン

    Returns
    -------
    lending_id: int
        貸出ID
    content: str
        貸出内容
    deadline: datetime
        返却期限
    borrowerName: str
        借りた人の名前
    """
    token = get_token()
    lending_service = LendingService(token)

    try:
        returned_lending = lending_service.register_lending_return(lending_id)
    except InvalidOwnerException:
        abort(
            403, {
                "code":
                "invalid_user",
                "description":
                "The user who requested is not a owner of the lending."
            })
        return

    return jsonify(returned_lending)