from flask import Blueprint, request, jsonify, abort, Response

from app.processor.stockprofiling.StockLoader import StockLoader

from app.resource.CustomerJSONEncoder import *
from app.resource.ResourceConstant import ResourceConstant
from app.resource.ResultWrapper import *
from app.resource.ResponseBuilder import *

mod = Blueprint('stockloader', __name__, url_prefix=ResourceConstant.STOCK_LOADER)

@mod.route(ResourceConstant.SAVE, methods=['POST'])
def calculate_json_post():
        parameters = request.get_json(force=True)

        ticker = parameters["ticker"]
        startDate = parameters["startDate"]
        endDate = parameters["endDate"]
             
        try:
            stockRecNum = StockLoader.save(ticker, startDate, endDate)
            resultWrapper = ResultWrapper(str(stockRecNum) + "  record(s) of " + ticker + " are saved.")
        except Exception as e:
            parameters = {
                      "content": [],
                      "state": "false",
                      "logMessage": str(e)
                      }
            resultWrapper = ResultWrapper(**parameters)
        
        return ResponseBuilder.build(resultWrapper)
