#!/usr/bin/env python
# -*- coding: utf_8 -*-

import time
import json
import logging
import traceback
import uuid
from datetime import datetime

from pony.orm import *
from model import fullStackDB
from model.user import User
from utils import md5_salt
from utils.ccode import convert_string

logger = logging.getLogger("ApiManager")

class ApiManager(object):
    def __init__(self):
        super(ApiManager, self).__init__()

    def update_user_password(self, user, data):
        with db_session:
            editor = User.get(id=user)
            if not editor:
                return False, "current user is not exists"

            result = User.get(uuid=data.get("uuid"), password=md5_salt(data['password']))

            if not result:
                return None, "user does not exists"

            data.pop("uuid")
            data['password'] = md5_salt(data['newPassword'])
            data.pop('newPassword')
            data.update({
                "create_by": editor.id,
                "create_at": datetime.now(),
                "update_by": editor.id,
                "update_at": datetime.now()
            })

            result = result.set(**data)
            commit()

            return True, "success"

    def get_escape_text(self, data):
        return convert_string(data['string'])

apiManager = ApiManager()