from flask import Blueprint, request
from flask_cors import *

from service.dataPageService import getDataIntro, getProjectData, getRunData, getProjectDataIntro, getProjectRunsData, \
    getRunData2

data = Blueprint('data', __name__)
CORS(data, support_credentials=True)


@data.route('/data')
def getData():
    run_page = request.args.get('runPage')
    run_limit = request.args.get('runLimit')
    project_page = request.args.get('projectPage')
    project_limit = request.args.get('projectLimit')
    introData = getDataIntro()
    projectData = getProjectData(int(project_page), int(project_limit))
    runData = getRunData(int(run_page), int(run_limit))
    dataResult = {
        'introData': introData,
        'project': projectData,
        'run': runData
    }
    return dataResult


@data.route('/data/pagination')
def getDataPagination():
    page = request.args.get('page')
    limit = request.args.get('limit')
    dataType = request.args.get('type')
    print(dataType)
    if dataType == 'project':
        print(dataType)
        dataRes = getProjectData(int(page), int(limit))
    else:
        dataRes = getRunData(int(page), int(limit))
    dataResult = {
        'data': dataRes
    }
    return dataResult


@data.route('data/project')
def getProjectPageData():
    projectId = request.args.get('projectId')
    introData = getProjectDataIntro(projectId)
    # projectData = getProjectData(int(project_page), int(project_limit))
    runData = getProjectRunsData(projectId)
    dataResult = {
        'introData': introData,
        # 'project': projectData,
        'run': runData
    }
    return dataResult


@data.route('data/run')
def RunData():
    runId = request.args.get('runId')
    runData = getRunData2(runId)
    dataResult = {
        'runData': runData
    }
    return dataResult
