from flask import jsonify, request
from flask_sqlalchemy import SQLAlchemy
from models.Token import Token
from models.Idioms import Idioms

db = SQLAlchemy()

def IdiomsListing():
    if request.method == "GET":
        idiomJson = {}
        idiomList =  Idioms.query.filter_by(is_deleted=0).all()
        if idiomList:
            idiomJson = Idioms.serialize_list(idiomList)
        return jsonify(idiomJson)

def IdiomsSearch():
    if request.method == 'POST':
        queryData = request.json
        idiomJson = {}
        if 'query' in queryData:
            query = queryData['query'].strip()
            query = "%{}%".format(query)
            idiomList = Idioms.query.filter((Idioms.idiom.like(query) | Idioms.meaning.like(query)), Idioms.is_deleted==0).all()
            idiomJson = Idioms.serialize_list(idiomList)
        return jsonify(idiomJson)

def AddIdiom():
    if request.method == 'POST':
        result = {'type':'error', 'message':['Something went wrong']}
        queryData = request.json
        #queryData = request.form
        if 'idiom' in queryData and 'meaning' in queryData and 'token' in queryData and 'userId' in queryData:
            idiom = queryData['idiom'].strip()
            meaning = queryData['meaning'].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:
                newIdiom = Idioms(idiom=idiom, meaning=meaning, is_deleted=0)
                db.session.add(newIdiom)
                db.session.commit()
                result =  {'type':'success', 'message': ['Idiom has beed saved']}
            else:
                result = {'type':'error', 'message':['You are not log in']}
        return jsonify(result)