Compare commits

...
6 Commits
9 changed files with 48 additions and 40 deletions
+2
View File
@@ -0,0 +1,2 @@
KEY= # Key for JWT token
POSTGRES_URL=postgresql://
+28
View File
@@ -0,0 +1,28 @@
from flask import Blueprint, request, jsonify
from model.user import User
auth = Blueprint("auth", __name__)
@auth.route('/login', methods = ['POST'])
def login():
if request.is_json:
req = request.json
email = req.get('email')
password = req.get('password')
if not email or not password:
return "Request must have email and password", 400
if len(email.strip()) < 4 or '@' not in email or '.' not in email:
return "Email is incorrect", 400
if len(password.strip()) < 8:
return "Password is too short", 400
user = User(email, password)
return jsonify(user.toJson())
else:
return "Request is not a json", 400
-19
View File
@@ -1,19 +0,0 @@
from flask import Blueprint, request, jsonify
from model.user import user
from utils.createLogger import createLogger
loginBP = Blueprint("loginapi", __name__)
log = createLogger("LoginAPI")
@loginBP.route('/api/login', methods = ['POST'])
def login():
if request.is_json:
req = request.json
email = req['email']
password = req['password']
#if(isvalid(email, password)):
us = user(email, password)
log.debug("Respons is sended")
return jsonify(us.toDictionary())
else:
log.error("Request is not a JSON")
return "Request is not a json", 500
+6 -3
View File
@@ -1,12 +1,15 @@
from sys import exit
from flask import Flask from flask import Flask
from api.auth.loginapi import loginBP from api.auth import auth
from utils.loadDotEnv import initializeENV from utils.loadDotEnv import initializeENV
from utils.PostgressConnect import PSQLConnect, PSQLCursor from utils.PostgressConnect import PSQLConnect, PSQLCursor
state = initializeENV() if not initializeENV():
exit(-1)
#conn = PSQLConnect() #conn = PSQLConnect()
#cur = PSQLCursor(conn) #cur = PSQLCursor(conn)
app = Flask(__name__) app = Flask(__name__)
app.register_blueprint(loginBP) app.register_blueprint(auth, url_prefix='/api/auth')
+2 -1
View File
@@ -1,4 +1,5 @@
flask==3.1.2 flask==3.1.2
python-dotenv python-dotenv
psycopg-binary psycopg2-binary
pyjwt pyjwt
loguru
+2 -2
View File
@@ -3,7 +3,7 @@ import json
from utils.token import generateKey from utils.token import generateKey
@dataclass @dataclass
class user: class User:
id: int id: int
name: str name: str
role: str role: str
@@ -16,5 +16,5 @@ class user:
self.role = 'Backend'#us['role'] self.role = 'Backend'#us['role']
self.token = generateKey(email, passwd) self.token = generateKey(email, passwd)
def toDictionary(self): def toJson(self):
return {"user": {"id": self.id, "name": self.name, "role": self.role}, "token": self.token} return {"user": {"id": self.id, "name": self.name, "role": self.role}, "token": self.token}
+1 -1
View File
@@ -2,7 +2,7 @@ import psycopg2
import os import os
def PSQLConnect(): def PSQLConnect():
conn = psycopg2.connect(os.getenv('POSTDRESS_CONNECTION')) conn = psycopg2.connect(os.getenv('POSTGRES_URL'))
return conn return conn
def PSQLCursor(conn): def PSQLCursor(conn):
-6
View File
@@ -1,6 +0,0 @@
import logging
def createLogger(name: str):
logger = logging.getLogger()
logger.propagate = False
return logger
+7 -8
View File
@@ -1,15 +1,14 @@
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
from .createLogger import createLogger from loguru import logger as log
log = createLogger("ENV") DOTENV_PATH = '.env'
def initializeENV(): def initializeENV() -> bool:
dotenv_path = '../.env' if os.path.exists(DOTENV_PATH):
if os.path.exists(dotenv_path): load_dotenv(DOTENV_PATH)
load_dotenv(dotenv_path)
log.info('.env is loaded') log.info('.env is loaded')
return 1 return True
else: else:
log.error('.env isn`t loaded') log.error('.env isn`t loaded')
return 0 return False