diff --git a/app/blueprints/__init__.py b/app/blueprints/__init__.py new file mode 100644 index 0000000..85b8a28 --- /dev/null +++ b/app/blueprints/__init__.py @@ -0,0 +1,2 @@ +from .auth import auth_blueprint +from .user import user_blueprint diff --git a/app/blueprints/__pycache__/__init__.cpython-313.pyc b/app/blueprints/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000..f5fb878 Binary files /dev/null and b/app/blueprints/__pycache__/__init__.cpython-313.pyc differ diff --git a/app/blueprints/__pycache__/auth.cpython-313.pyc b/app/blueprints/__pycache__/auth.cpython-313.pyc new file mode 100644 index 0000000..895a8eb Binary files /dev/null and b/app/blueprints/__pycache__/auth.cpython-313.pyc differ diff --git a/app/blueprints/__pycache__/register_blueprint.cpython-313.pyc b/app/blueprints/__pycache__/register_blueprint.cpython-313.pyc new file mode 100644 index 0000000..7b11e3c Binary files /dev/null and b/app/blueprints/__pycache__/register_blueprint.cpython-313.pyc differ diff --git a/app/blueprints/__pycache__/user.cpython-313.pyc b/app/blueprints/__pycache__/user.cpython-313.pyc new file mode 100644 index 0000000..1b9e178 Binary files /dev/null and b/app/blueprints/__pycache__/user.cpython-313.pyc differ diff --git a/app/blueprints/auth.py b/app/blueprints/auth.py new file mode 100644 index 0000000..2a940b2 --- /dev/null +++ b/app/blueprints/auth.py @@ -0,0 +1,22 @@ +from flask import Blueprint +from app.controllers import AuthController + +# Inisialisasi blueprint +auth_blueprint = Blueprint("auth", __name__) +auth_controller = AuthController() + + +# Daftarkan rute ke controller +@auth_blueprint.route("/register", methods=["POST"]) +def register(): + return auth_controller.register() + + +@auth_blueprint.route("/login", methods=["POST"]) +def login(): + return auth_controller.login() + + +@auth_blueprint.route("/logout", methods=["DELETE"]) +def logout(): + return auth_controller.logout() diff --git a/blueprints/user.py b/app/blueprints/user.py similarity index 69% rename from blueprints/user.py rename to app/blueprints/user.py index 2f8423d..b422168 100644 --- a/blueprints/user.py +++ b/app/blueprints/user.py @@ -1,7 +1,7 @@ # /blueprints/user.py -from flask import Blueprint, jsonify -from controllers.user_controller import UserController +from flask import Blueprint +from app.controllers import UserController user_blueprint = Blueprint("user", __name__) user_controller = UserController() diff --git a/app/controllers/__init__.py b/app/controllers/__init__.py new file mode 100644 index 0000000..9c5757f --- /dev/null +++ b/app/controllers/__init__.py @@ -0,0 +1,2 @@ +from .auth_controller import AuthController +from .user_controller import UserController diff --git a/app/controllers/__pycache__/__init__.cpython-313.pyc b/app/controllers/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000..ec97f13 Binary files /dev/null and b/app/controllers/__pycache__/__init__.cpython-313.pyc differ diff --git a/app/controllers/__pycache__/auth_controller.cpython-313.pyc b/app/controllers/__pycache__/auth_controller.cpython-313.pyc new file mode 100644 index 0000000..7da4bab Binary files /dev/null and b/app/controllers/__pycache__/auth_controller.cpython-313.pyc differ diff --git a/controllers/__pycache__/user_controller.cpython-313.pyc b/app/controllers/__pycache__/user_controller.cpython-313.pyc similarity index 52% rename from controllers/__pycache__/user_controller.cpython-313.pyc rename to app/controllers/__pycache__/user_controller.cpython-313.pyc index a201ef4..69fdd04 100644 Binary files a/controllers/__pycache__/user_controller.cpython-313.pyc and b/app/controllers/__pycache__/user_controller.cpython-313.pyc differ diff --git a/app/controllers/auth_controller.py b/app/controllers/auth_controller.py new file mode 100644 index 0000000..606c35a --- /dev/null +++ b/app/controllers/auth_controller.py @@ -0,0 +1,19 @@ +from flask import jsonify, request +from app.services import UserService +from app.services import AuthService + + +class AuthController: + def __init__(self): + self.user_service = UserService() + self.auth_service = AuthService() + + def login(self): + data = request.get_json() + users = self.auth_service.login(data) + response = { + "status": True, + "message": "success retrive data", + "data": users, + } + return jsonify(response) diff --git a/controllers/lstm_controller.py b/app/controllers/lstm_controller.py similarity index 100% rename from controllers/lstm_controller.py rename to app/controllers/lstm_controller.py diff --git a/controllers/user_controller.py b/app/controllers/user_controller.py similarity index 84% rename from controllers/user_controller.py rename to app/controllers/user_controller.py index 0f2688f..4218abe 100644 --- a/controllers/user_controller.py +++ b/app/controllers/user_controller.py @@ -1,6 +1,6 @@ # /controllers/user_controller.py from flask import jsonify -from services.user_service import UserService +from app.services import UserService class UserController: diff --git a/controllers/__init__.py b/app/models/__init__.py similarity index 100% rename from controllers/__init__.py rename to app/models/__init__.py diff --git a/app/repositories/__init__.py b/app/repositories/__init__.py new file mode 100644 index 0000000..73ba011 --- /dev/null +++ b/app/repositories/__init__.py @@ -0,0 +1 @@ +from .user_repository import UserRepository diff --git a/app/repositories/__pycache__/__init__.cpython-313.pyc b/app/repositories/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000..0d0d018 Binary files /dev/null and b/app/repositories/__pycache__/__init__.cpython-313.pyc differ diff --git a/app/repositories/__pycache__/user_repository.cpython-313.pyc b/app/repositories/__pycache__/user_repository.cpython-313.pyc new file mode 100644 index 0000000..55836a8 Binary files /dev/null and b/app/repositories/__pycache__/user_repository.cpython-313.pyc differ diff --git a/app/repositories/user_repository.py b/app/repositories/user_repository.py new file mode 100644 index 0000000..0142264 --- /dev/null +++ b/app/repositories/user_repository.py @@ -0,0 +1,24 @@ +class UserRepository: + users = [ + { + "id": 1, + "name": "akhdan", + "email": "akhdanre@gmail.com", + "password": "password123", + }, + { + "id": 2, + "name": "Bob", + "email": "bob@example.com", + "password": "password123", + }, + ] + + def get_all_users(self): + return self.users + + def get_user_by_email(self, email): + for user in self.users: + if user.get("email") == email: + return user + return None diff --git a/app/services/__init__.py b/app/services/__init__.py new file mode 100644 index 0000000..e3e2049 --- /dev/null +++ b/app/services/__init__.py @@ -0,0 +1,2 @@ +from .auth_service import AuthService +from .user_service import UserService diff --git a/app/services/__pycache__/__init__.cpython-313.pyc b/app/services/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000..0ae7392 Binary files /dev/null and b/app/services/__pycache__/__init__.cpython-313.pyc differ diff --git a/app/services/__pycache__/auth_service.cpython-313.pyc b/app/services/__pycache__/auth_service.cpython-313.pyc new file mode 100644 index 0000000..6740b4b Binary files /dev/null and b/app/services/__pycache__/auth_service.cpython-313.pyc differ diff --git a/app/services/__pycache__/user_service.cpython-313.pyc b/app/services/__pycache__/user_service.cpython-313.pyc new file mode 100644 index 0000000..8d37cd3 Binary files /dev/null and b/app/services/__pycache__/user_service.cpython-313.pyc differ diff --git a/app/services/auth_service.py b/app/services/auth_service.py new file mode 100644 index 0000000..a33ba37 --- /dev/null +++ b/app/services/auth_service.py @@ -0,0 +1,21 @@ +from app.repositories import UserRepository + + +class AuthService: + def __init__(self): + self.user_repository = UserRepository() + + def login(self, data): + email = data.get("email") + password = data.get("password") + + user_data = self.user_repository.get_user_by_email(email) + + if user_data == None: + return None + + if user_data["password"] == password: + del user_data["password"] + return user_data + + return None diff --git a/services/lstm.py b/app/services/lstm.py similarity index 100% rename from services/lstm.py rename to app/services/lstm.py diff --git a/services/user_service.py b/app/services/user_service.py similarity index 67% rename from services/user_service.py rename to app/services/user_service.py index 7d562ed..5bf4ff9 100644 --- a/services/user_service.py +++ b/app/services/user_service.py @@ -1,6 +1,4 @@ -# /services/user_service.py - -from repositories.user_repository import UserRepository +from app.repositories import UserRepository class UserService: diff --git a/blueprints/__pycache__/user.cpython-313.pyc b/blueprints/__pycache__/user.cpython-313.pyc deleted file mode 100644 index a203882..0000000 Binary files a/blueprints/__pycache__/user.cpython-313.pyc and /dev/null differ diff --git a/controllers/__pycache__/__init__.cpython-313.pyc b/controllers/__pycache__/__init__.cpython-313.pyc deleted file mode 100644 index cf49416..0000000 Binary files a/controllers/__pycache__/__init__.cpython-313.pyc and /dev/null differ diff --git a/main.py b/main.py index 10db396..a40a8c8 100644 --- a/main.py +++ b/main.py @@ -1,8 +1,9 @@ from flask import Flask -from blueprints.user import user_blueprint +from app.blueprints import auth_blueprint, user_blueprint app = Flask(__name__) +app.register_blueprint(auth_blueprint, url_prefix="/api") app.register_blueprint(user_blueprint, url_prefix="/api") if __name__ == "__main__": diff --git a/models/__init__.py b/models/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/repositories/__init__.py b/repositories/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/repositories/__pycache__/__init__.cpython-313.pyc b/repositories/__pycache__/__init__.cpython-313.pyc deleted file mode 100644 index f067392..0000000 Binary files a/repositories/__pycache__/__init__.cpython-313.pyc and /dev/null differ diff --git a/repositories/__pycache__/user_repository.cpython-313.pyc b/repositories/__pycache__/user_repository.cpython-313.pyc deleted file mode 100644 index a3e778d..0000000 Binary files a/repositories/__pycache__/user_repository.cpython-313.pyc and /dev/null differ diff --git a/repositories/user_repository.py b/repositories/user_repository.py deleted file mode 100644 index dc4683c..0000000 --- a/repositories/user_repository.py +++ /dev/null @@ -1,3 +0,0 @@ -class UserRepository: - def get_all_users(self): - return [{"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"}] diff --git a/services/__init__.py b/services/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/services/__pycache__/__init__.cpython-313.pyc b/services/__pycache__/__init__.cpython-313.pyc deleted file mode 100644 index ac75d55..0000000 Binary files a/services/__pycache__/__init__.cpython-313.pyc and /dev/null differ diff --git a/services/__pycache__/user_service.cpython-313.pyc b/services/__pycache__/user_service.cpython-313.pyc deleted file mode 100644 index a878751..0000000 Binary files a/services/__pycache__/user_service.cpython-313.pyc and /dev/null differ