
# !page: user_notification
# !latest updated: 09Jul2021

from flask import Flask, render_template, request, session, redirect, url_for, flash, Blueprint, jsonify
from modules.database_modules import db_connect
from functions.date_time_functions import upload_time


user_notification = Blueprint("user_notification", __name__, static_folder="static",
                              template_folder="templates")


@user_notification.route('/register-notification-token', methods=['POST'])
def registerNotification():
    header = request.headers
    authKey = header.get('Authorization')
    serverAuth = '88d464b2c2f13bcd7d1d648126e0e8aa5abeb5b1a209639f4e53d994696a422587b403fd69e1baa27b21deb03c2020fd3303e5cdc3ded8e0bc686b5dbbcd37ae'
    if request.method == 'POST' and authKey == serverAuth:
        con = db_connect()
        cur = con.cursor(dictionary=True, buffered=True)
        noti_token = request.form['noti_token']
        user_id = request.form['userID']
        noti_type = request.form['notiType']
        reg_date = upload_time()
        cur.execute(
            'select id from notification_user where noti_token=%s and user_id=%s', (noti_token, user_id))
        tokenExist = cur.fetchone()
        if tokenExist == None:
            cur.execute(
                'insert into notification_user (user_id, noti_token, type, reg_date) values (%s,%s,%s,%s)', (user_id, noti_token, noti_type, reg_date))
            con.commit()
            return jsonify({'message': 'successfully saved notification token', 'status': 'success'}), 200
        return jsonify({'message': 'token already existed', 'status': 'conflict'}), 409
    return jsonify({'message': 'unauthorized access'}), 403
