from flask import jsonify, request
from flask_sqlalchemy import SQLAlchemy
from models.Token import Token
from models.Blog import Blog

db = SQLAlchemy()

def BlogListing():
    if request.method == "GET":
        blogJson = {}
        blogList =  Blog.query.filter_by(is_deleted=0).all()
        if blogList:
            blogJson = Blog.serialize_list(blogList)
        return jsonify(blogJson)

def BlogSearch():
    if request.method == 'POST':
        queryData = request.json
        blogJson = {}
        if 'query' in queryData:
            query = queryData['query'].strip()
            query = "%{}%".format(query)
            blogList = Blog.query.filter((Blog.title.like(query) | Blog.description.like(query)), Blog.is_deleted==0).all()
            blogJson = Blog.serialize_list(blogList)
        return jsonify(blogJson)

def AddBlog():
    if request.method == 'POST':
        result = {'type':'error', 'message':['Something went wrong']}
        queryData = request.json
        #queryData = request.form
        if 'title' in queryData and 'description' in queryData and 'token' in queryData and 'userId' in queryData:
            title = queryData['title'].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:
                newblog = Blog(title=title, description=description, is_deleted=0)
                db.session.add(newblog)
                db.session.commit()
                result =  {'type':'success', 'message': ['Blog has beed saved']}
            else:
                result = {'type':'error', 'message':['You are not log in']}
        return jsonify(result)