from flask import Blueprint, request, json
from flask_cors import *

from service.taxonsDetailsService import speciesDetails, genusDetails, getSpeciesBoxPlot, getGenusBoxPlot, getSpeciesIntro, getGenusIntro

taxonsToOneSite = Blueprint('taxonsToOneSite', __name__)
CORS(taxonsToOneSite, support_credentials=True)


@taxonsToOneSite.route('/species', methods=['GET'])
def speciesData():
    ncbi_taxon_id = request.args.get('ncbi_taxon_id')
    site = request.args.get('site')
    data = speciesDetails(ncbi_taxon_id, site)
    intro = getSpeciesIntro(ncbi_taxon_id, site)
    result = {
        'data': data,
        'intro': intro
    }
    return result


@taxonsToOneSite.route('/genus', methods=['GET'])
def genusData():
    ncbi_taxon_id = request.args.get('ncbi_taxon_id')
    site = request.args.get('site')
    data = genusDetails(ncbi_taxon_id, site)
    intro = getGenusIntro(ncbi_taxon_id, site)
    result = {
        'data': data,
        'intro': intro
    }
    return result


@taxonsToOneSite.route('/speciesBox', methods=['GET'])
def speciesBoxData():
    ncbi_taxon_id = request.args.get('ncbi_taxon_id')
    site = request.args.get('site')
    data = getSpeciesBoxPlot(ncbi_taxon_id, site)
    return data


@taxonsToOneSite.route('/genusBox', methods=['GET'])
def genusBoxData():
    ncbi_taxon_id = request.args.get('ncbi_taxon_id')
    site = request.args.get('site')
    data = getGenusBoxPlot(ncbi_taxon_id, site)
    return data
