示例#1
0
def post_comment(token_data):
    '''comment投稿
    Args:
        text:       コメントテキスト
        thread_id:  スレッドID
    Returns:
        200:    正常終了
            list(dict):
                comment情報のリスト
        500:    サーバエラー
    '''
    try:
        params = request.json

        user_id = token_data.get('user_id')
        user = User.get(user_id=user_id)

        params.update({'user_id': user_id, 'name': user.get('nick_name')})

        # comment作成
        Comment.post(params)

        # comment追加後,thread_idに紐づく
        thread = Thread.get(thread_id=params.get('thread_id'))

        result = thread.get('comments')

        return make_response(jsonify(result), 201)
    except Exception as e:
        if str(e) == 'over text length':
            result = {'error_message': 'テキストが長すぎます'}
            return make_response(jsonify(result), 400)

        return make_response('', 500)
    def test_delete(self):
        '''thread削除
        '''
        self.load_fixtures()

        thread = Thread()

        thread.delete(1)

        actual = thread.get(1)

        self.assertEqual(None, actual)
示例#3
0
def post(token_data):
    '''threadを作成
    Args:
        title:          スレッドタイトル
        category_id:    カテゴリID
        comment_text:        1コメ
    Returns:
        dict:
            作成されたthread情報
    '''
    try:
        params = request.json

        new_thread = Thread.post(
            title=params.get('title'),
            category_id=params.get('category_id')
        )

        user_id = token_data.get('user_id')

        user = User.get(user_id)

        data = {
            'name': user.get('nick_name'),
            'thread_id': new_thread.get('thread_id'),
            'text': params.get('comment_text'),
            'user_id': user_id,
        }

        Comment.post(data)

        result = Thread.get(new_thread.get('thread_id'))

        return jsonify(result)
    except Exception as e:
        if str(e) == 'over title length':
            result = {
                'error_message': 'タイトルが長すぎます'
            }
            return make_response(jsonify(result), 400)

        return make_response('', 500)
    def test_get(self):
        '''thread_idに紐づくthread取得
        '''
        self.load_fixtures()

        thread = Thread()

        actual = thread.get(1)
        expect = {
            'thread':
            self.filter_test_data(table='thread',
                                  field='thread_id',
                                  target=[1])[0],
            'comments':
            self.filter_test_data(table='comment',
                                  field='thread_id',
                                  target=[1])
        }

        self.assertDictEqual(expect, actual)
示例#5
0
def get(thread_id):
    '''thread_idからthread情報取得
    Args:
        thread_id:  スレッドID
    Returns:
        200:
            dict:
                thread: thread情報
                comments: list(dict) comment情報のリスト
        400: threadが存在しない場合
        500: サーバエラnー
    '''
    try:
        result = Thread.get(thread_id)

        if not result:
            return make_response('', 400)

        return jsonify(result)
    except Exception as e:
        return make_response('', 500)