'API endpoint to get the related blocks for a transaction.
Return:
A ``list`` of ``block_id``s that contain the given transaction. The
list may be filtered when provided a status query parameter:
"valid", "invalid", "undecided".'

def get(self):

    parser = reqparse.RequestParser()
    parser.add_argument('transaction_id', type=str, required=True)
    parser.add_argument('status', type=str, case_sensitive=False, choices=[Bigchain.BLOCK_VALID, Bigchain.BLOCK_INVALID, Bigchain.BLOCK_UNDECIDED])
    args = parser.parse_args(strict=True)
    tx_id = args['transaction_id']
    status = args['status']
    pool = current_app.config['bigchain_pool']
    with pool() as bigchain:
        block_statuses = bigchain.get_blocks_status_containing_tx(tx_id)
        blocks = [block_id for (block_id, block_status) in block_statuses.items() if ((not status) or (block_status == status))]
    return blocks
