from flask import jsonify, request
from models.Sentence import Sentence
from models.Token import Token
from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

def TenceListing():
    if request.method == 'GET':
        tenceList = Sentence.query.filter_by(is_deleted=0).all()
        tenceJson = Sentence.serialize_list(tenceList)
        return jsonify(tenceJson)

def TenceSearch():
    if request.method == 'POST':
        queryData = request.json
        tenceJson = {}
        if 'query' in queryData:
            query = queryData['query'].strip()
            query = "%{}%".format(query)
            tenceList = Sentence.query.filter((Sentence.sentence.like(query) | Sentence.meaning.like(query)), Sentence.is_deleted==0).all()
            tenceJson = Sentence.serialize_list(tenceList)
        return jsonify(tenceJson)

def AddTense():
    if request.method == 'POST':
        result = {'type':'error', 'message':['Something went wrong']}
        queryData = request.json
        if 'sentence' in queryData and 'meaning' in queryData and 'description' in queryData and 'token' in queryData and 'userId' in queryData:
            sentence = queryData['sentence'].strip()
            meaning = queryData['meaning'].strip()
            description = queryData['description'].strip()
            token = queryData['token'].strip()
            userId = queryData['userId'].strip()
            checkToken = Token.query.filter(Token.user_id==userId, Token.token==token, Token.is_deleted==0).first()
            if checkToken:
                newTence = Sentence(sentence=sentence, meaning=meaning, description=description, is_deleted=0)
                db.session.add(newTence)
                db.session.commit()
                result =  {'type':'success', 'message': ['Sentence has beed saved']}
            else:
                result = {'type':'error', 'message':['You are not log in']}
        return jsonify(result)