def apiprocess():
    app.logger.info('REST API for process has been invoked')
    targetlang = 'en'
    classification = {"className":"unknown"}
    results = {}
    theData = {"error":"If you see this message then something has gone badly wrong"} 
  
    app.logger.info(request.form['txtdata'])
    if not 'txtdata' in request.form:
        theData = {"error":"Text to be processed must not be blank"} 
    else:   
        del theData["error"]
        try:
            data = request.form['txtdata']
            ltu = LanguageTranslationUtils(app) 
            nlcu = NaturalLanguageClassifierUtils(app)     
            primarylang = theData['language'] = ltu.identifyLanguage(data)["language"]
            if targetlang != primarylang:
                supportedModels = ltu.checkForTranslation(primarylang, targetlang)
                if supportedModels:
                    englishTxt = ltu.performTranslation(data, primarylang, targetlang)
                    classification = nlcu.classifyTheText(englishTxt)
            else:
                classification = nlcu.classifyTheText(data)

            theData['classification'] = classification['className']

        except WatsonException as err:
            theData['error'] = err;

    results["results"] = theData    
    return jsonify(results), 201
def wlhome():
    app.logger.info('wlhome page requested')
    allinfo = {}
    outputTxt = "TBD"
    targetlang = 'en'
    lang = "TBD"
    txt = None
    form = LangForm()
    if form.validate_on_submit():
        lang = "TBC"
        txt = form.txtdata.data
        form.txtdata.data = ''

        try:
            ltu = LanguageTranslationUtils(app)
            nlcu = NaturalLanguageClassifierUtils(app)
            lang = ltu.identifyLanguage(txt)
            primarylang = lang["language"]
            confidence = lang["confidence"]

            outputTxt = "I am {} confident that the language is {}"
            outputTxt = outputTxt.format(confidence, primarylang)
            if targetlang != primarylang:
                supportedModels = ltu.checkForTranslation(
                    primarylang, targetlang)
                if supportedModels:
                    englishTxt = ltu.performTranslation(
                        txt, primarylang, targetlang)
                    outputTxt += ", which in english is %s" % englishTxt
                    classification = nlcu.classifyTheText(englishTxt)
                else:
                    outputTxt += \
                        ", which unfortunately we can't translate into English"
            else:
                classification = nlcu.classifyTheText(txt)
            if classification:
                message = "(and {} confident that it is {} classification)"
                message = message.format(classification['confidence'],
                                         classification['className'])
                outputTxt += message

            session['langtext'] = outputTxt

            allinfo['lang'] = lang
            allinfo['form'] = form
            return redirect(url_for('wlhome'))
        except WatsonException as err:
            allinfo['error'] = err

    allinfo['lang'] = session.get('langtext')
    allinfo['form'] = form
    return render_template('watson/wlindex.html', info=allinfo)