#!/usr/bin/python3
from dreamtown_config import *
import sys
import binascii
import os
import json
import sqlite3
import hashlib

print("Content-Type: application/json")
print("")
method = os.environ["REQUEST_METHOD"]
if method != "POST":
	print("Expected POST")
	os._exit()
	

content_len = int(os.environ["CONTENT_LENGTH"])
post = sys.stdin.read(content_len)
jsonData = json.loads(post)
result = {"status":SUCCESS}


def TryLogin():
	username = jsonData['name'].lower()
	password = jsonData['password']
	authToken = jsonData['authToken']
	
	#Check User Exists
	c = db.cursor()
	cur = c.execute('SELECT COUNT(1) from users WHERE Name=?',(username,))
	rows = cur.fetchone()
	count = rows[0]
	
	if count == 0:
		result['status'] = USER_DOES_NOT_EXIST
		return 0
	#Check Password
	cur = c.execute('SELECT PassHash,Salt from users WHERE Name= ?',(username,))
	
	rows = cur.fetchone()

	PassHash = rows[0]
	Salt = rows[1]
	
	SaltedHash = pass_salt_algo(password,Salt)
	
	if SaltedHash != PassHash:
		result['status'] = INVALID_PASSWORD
		return 0
	c.execute('UPDATE users SET LastSession=NULL WHERE LastSession=?',(authToken,))
	c.execute('UPDATE users SET LastSession=? WHERE Name=?',(authToken,username))
	
		
db = sqlite3.connect(SQLLITE_DB_PATH)
TryLogin()
db.commit()
db.close()
print(json.dumps(result))
		

	