From 0b7a69c69154009ab3c3c544fd5d6b2b4d0ad827 Mon Sep 17 00:00:00 2001 From: dznFK Date: Sat, 25 Nov 2023 00:11:23 +0400 Subject: [PATCH 1/9] Separation --- database/__init__.py | 1 - database/enums.py | 10 ---------- database/mariadb.py | 40 ---------------------------------------- database/models.py | 44 -------------------------------------------- 4 files changed, 95 deletions(-) delete mode 100644 database/__init__.py delete mode 100644 database/enums.py delete mode 100644 database/mariadb.py delete mode 100644 database/models.py diff --git a/database/__init__.py b/database/__init__.py deleted file mode 100644 index 70cdde6..0000000 --- a/database/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from database.models import * diff --git a/database/enums.py b/database/enums.py deleted file mode 100644 index e167a8d..0000000 --- a/database/enums.py +++ /dev/null @@ -1,10 +0,0 @@ -from enum import unique, IntEnum - - -@unique -class AssemblyState(IntEnum): - NOT_STARTED = 0, - ASSEMBLING_PRODUCTS = 1, - ALL_PRODUCTS_ASSEMBLED = 2, - CONFIRMED = 3, - ENDED = 4 diff --git a/database/mariadb.py b/database/mariadb.py deleted file mode 100644 index f56740a..0000000 --- a/database/mariadb.py +++ /dev/null @@ -1,40 +0,0 @@ -import mariadb - -import settings - - -class MariadbConnector: - def __init__(self): - # Settings - self.user = settings.MY_LOGIN - self.password = settings.MY_PASSWORD - self.host = settings.MY_HOST - self.port = int(settings.MY_PORT) - self.database = settings.MY_DATABASE - - self.conn = self._get_connection() - self.cursor = self._get_cursor() - - def _get_connection(self) -> mariadb.connections.Connection: - return mariadb.connect(user=self.user, - password=self.password, - host=self.host, - port=self.port, - database=self.database) - - def _get_cursor(self) -> mariadb.cursors.Cursor: - return self.conn.cursor() - - def select(self, query_string: str, as_list=True): - cursor = self.cursor - - cursor.execute(query_string) - if not as_list: - return cursor.fetchone() - return cursor.fetchall() - - def insert(self, query_string) -> int: - cursor = self.cursor - - cursor.execute(query_string) - return cursor.insert_id diff --git a/database/models.py b/database/models.py deleted file mode 100644 index 4b77fc3..0000000 --- a/database/models.py +++ /dev/null @@ -1,44 +0,0 @@ -from flask_sqlalchemy import SQLAlchemy - -db = SQLAlchemy() - - -class User(db.Model): - __tablename__ = 'users' - id = db.Column(db.Integer, primary_key=True, comment='ID пользователя') - - login = db.Column(db.String, nullable=False, comment='Логин') - password_hash = db.Column(db.String, nullable=False, comment='Пароль') - - sipro_id = db.Column(db.Integer, nullable=True, comment='ID пользователя в SIPRO') - - -class Assembly(db.Model): - __tablename__ = 'assemblies' - id = db.Column(db.Integer, primary_key=True, comment='ID сборки') - - created_at = db.Column(db.DateTime, nullable=True, comment='Дата и время начала сборки') - ended_at = db.Column(db.DateTime, nullable=True, comment='Дата и время конца сборки') - - user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False) - user = db.relationship('User', backref='assemblies') - - order_id = db.Column(db.Integer, nullable=False, comment='ID заказа в базе данных') - is_active = db.Column(db.Boolean, nullable=False, comment='Активная ли сборка') - state = db.Column(db.Integer, nullable=False, comment='Состояние сборки') - - -class Barcode(db.Model): - __tablename__ = 'barcodes' - id = db.Column(db.Integer, primary_key=True, comment='ID пользователя') - denco_article = db.Column(db.Integer, nullable=False, comment='Артикул', index=True) - barcode = db.Column(db.String, nullable=False, comment='Баркод', index=True) - - -class Application(db.Model): - __tablename__ = 'applications' - id = db.Column(db.Integer, primary_key=True, comment='') - name = db.Column(db.String(40), nullable=False) - version = db.Column(db.String(10), nullable=False) - uploaded = db.Column(db.DateTime, nullable=False) - filename = db.Column(db.String, nullable=False) From 3468d5e6400dad0de0911a89557d77102b6917ad Mon Sep 17 00:00:00 2001 From: dznFK Date: Sat, 25 Nov 2023 00:12:23 +0400 Subject: [PATCH 2/9] Submodule added --- .gitmodules | 3 +++ database | 1 + 2 files changed, 4 insertions(+) create mode 100644 .gitmodules create mode 160000 database diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..2b6ac30 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "database"] + path = database + url = https://git.denco.store/agonex/Assemblr-Database.git diff --git a/database b/database new file mode 160000 index 0000000..785179e --- /dev/null +++ b/database @@ -0,0 +1 @@ +Subproject commit 785179e3dcaf809b4e7bd854942b79751d1fd89b From b5a3b3f1d1ad48335564060ddd008230802ff628 Mon Sep 17 00:00:00 2001 From: dznFK Date: Sat, 25 Nov 2023 00:34:30 +0400 Subject: [PATCH 3/9] Structural changes --- app.py | 2 +- database | 1 - routes/assembly.py | 1 - routes/auth.py | 2 +- 4 files changed, 2 insertions(+), 4 deletions(-) delete mode 160000 database diff --git a/app.py b/app.py index e9ece98..3d5c99e 100644 --- a/app.py +++ b/app.py @@ -1,4 +1,4 @@ -from flask import Flask, request +from flask import Flask from flask_cors import CORS from flask_jwt_extended import JWTManager from flask_migrate import Migrate diff --git a/database b/database deleted file mode 160000 index 785179e..0000000 --- a/database +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 785179e3dcaf809b4e7bd854942b79751d1fd89b diff --git a/routes/assembly.py b/routes/assembly.py index 70af522..d2f22f4 100644 --- a/routes/assembly.py +++ b/routes/assembly.py @@ -1,5 +1,4 @@ import datetime -import time from flask import Blueprint, request, jsonify from flask_jwt_extended import get_jwt_identity diff --git a/routes/auth.py b/routes/auth.py index 0c2abbf..88c1e17 100644 --- a/routes/auth.py +++ b/routes/auth.py @@ -1,5 +1,5 @@ from flask import Blueprint, request, jsonify -from flask_jwt_extended import create_access_token, jwt_required, get_jwt_identity +from flask_jwt_extended import create_access_token from werkzeug.security import generate_password_hash, check_password_hash from database import User, db From 07735b5e2c55a4ceb87af7be7b43e69caea8a877 Mon Sep 17 00:00:00 2001 From: dznFK Date: Sat, 25 Nov 2023 00:36:54 +0400 Subject: [PATCH 4/9] Changes --- .gitmodules | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 .gitmodules diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 2b6ac30..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "database"] - path = database - url = https://git.denco.store/agonex/Assemblr-Database.git From 52f54d086fea7682c2a0bacaf3d4d27cb1db2629 Mon Sep 17 00:00:00 2001 From: dznFK Date: Sat, 25 Nov 2023 01:03:10 +0400 Subject: [PATCH 5/9] Assembly separation --- .gitmodules | 3 +++ database/__init__.py | 1 + database/assebmlr | 1 + database/mariadb.py | 39 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 44 insertions(+) create mode 100644 .gitmodules create mode 100644 database/__init__.py create mode 160000 database/assebmlr create mode 100644 database/mariadb.py diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..47f34fd --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "database/assebmlr"] + path = database/assebmlr + url = https://git.denco.store/agonex/Assemblr-Database.git diff --git a/database/__init__.py b/database/__init__.py new file mode 100644 index 0000000..4ac8d72 --- /dev/null +++ b/database/__init__.py @@ -0,0 +1 @@ +from assebmlr.models import * diff --git a/database/assebmlr b/database/assebmlr new file mode 160000 index 0000000..4096f3f --- /dev/null +++ b/database/assebmlr @@ -0,0 +1 @@ +Subproject commit 4096f3f868bc263df0989e2496365719b6863f2d diff --git a/database/mariadb.py b/database/mariadb.py new file mode 100644 index 0000000..388b42d --- /dev/null +++ b/database/mariadb.py @@ -0,0 +1,39 @@ +import mariadb +import settings + + +class MariadbConnector: + def __init__(self): + # Settings + self.user = settings.MY_LOGIN + self.password = settings.MY_PASSWORD + self.host = settings.MY_HOST + self.port = int(settings.MY_PORT) + self.database = settings.MY_DATABASE + + self.conn = self._get_connection() + self.cursor = self._get_cursor() + + def _get_connection(self) -> mariadb.connections.Connection: + return mariadb.connect(user=self.user, + password=self.password, + host=self.host, + port=self.port, + database=self.database) + + def _get_cursor(self) -> mariadb.cursors.Cursor: + return self.conn.cursor() + + def select(self, query_string: str, as_list=True): + cursor = self.cursor + + cursor.execute(query_string) + if not as_list: + return cursor.fetchone() + return cursor.fetchall() + + def insert(self, query_string) -> int: + cursor = self.cursor + + cursor.execute(query_string) + return cursor.insert_id From f0fce37a0c7ce049125f3e0719108409bcdf8f55 Mon Sep 17 00:00:00 2001 From: dznFK Date: Sat, 25 Nov 2023 01:06:11 +0400 Subject: [PATCH 6/9] Assembly separation --- database/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/__init__.py b/database/__init__.py index 4ac8d72..75eb683 100644 --- a/database/__init__.py +++ b/database/__init__.py @@ -1 +1 @@ -from assebmlr.models import * +from .assebmlr.models import * From 82c67434e284007f349be21541e33ef321413383 Mon Sep 17 00:00:00 2001 From: dznFK Date: Sat, 25 Nov 2023 01:07:25 +0400 Subject: [PATCH 7/9] Submodule update --- routes/assembly.py | 2 +- utils/barcodes_synchronizer.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/routes/assembly.py b/routes/assembly.py index d2f22f4..1e7d7df 100644 --- a/routes/assembly.py +++ b/routes/assembly.py @@ -4,7 +4,7 @@ from flask import Blueprint, request, jsonify from flask_jwt_extended import get_jwt_identity import database -from database.enums import AssemblyState +from database.assebmlr.enums import AssemblyState from routes.utils import jwt_protect_blueprint import sipro.api.orders diff --git a/utils/barcodes_synchronizer.py b/utils/barcodes_synchronizer.py index f3b85d9..d79557d 100644 --- a/utils/barcodes_synchronizer.py +++ b/utils/barcodes_synchronizer.py @@ -10,7 +10,6 @@ class BarcodesSynchronizer: existing_barcodes = database.Barcode.query.all() denco_articles = list(set([barcode.denco_article for barcode in existing_barcodes])) - query_string = 'SELECT product, barcode FROM modx_0_connections WHERE barcode != "" LIMIT 100' for denco_article, barcodes_string in self.mariadb_connector.select(query_string): barcodes = barcodes_string.split(',') From 4f325898f9704fc334f3c1658b810018e4cb66bc Mon Sep 17 00:00:00 2001 From: dznFK Date: Sat, 25 Nov 2023 01:09:56 +0400 Subject: [PATCH 8/9] Removal of log --- assemblr.log | 89 ---------------------------------------------------- 1 file changed, 89 deletions(-) delete mode 100644 assemblr.log diff --git a/assemblr.log b/assemblr.log deleted file mode 100644 index 1a121b3..0000000 --- a/assemblr.log +++ /dev/null @@ -1,89 +0,0 @@ -10-15 00:21 - assemblr - INFO - SiproClient successfully initialized -10-15 00:31 - assemblr - INFO - SiproClient successfully initialized -10-15 00:31 - assemblr - INFO - SiproClient successfully initialized -10-15 00:31 - assemblr - INFO - SiproClient successfully initialized -10-15 00:31 - assemblr - INFO - SiproClient successfully initialized -10-27 03:01 - assemblr - INFO - SiproClient successfully initialized -10-27 04:50 - assemblr - INFO - SiproClient successfully initialized -10-27 04:51 - assemblr - INFO - SiproClient successfully initialized -10-27 05:36 - assemblr - INFO - SiproClient successfully initialized -10-27 05:37 - assemblr - INFO - SiproClient successfully initialized -10-27 05:38 - assemblr - INFO - SiproClient successfully initialized -10-27 05:57 - assemblr - INFO - SiproClient successfully initialized -10-28 04:06 - assemblr - INFO - SiproClient successfully initialized -10-28 04:06 - assemblr - INFO - SiproClient successfully initialized -10-28 04:37 - assemblr - INFO - SiproClient successfully initialized -10-28 04:38 - assemblr - INFO - SiproClient successfully initialized -10-28 04:38 - assemblr - INFO - SiproClient successfully initialized -10-28 04:38 - assemblr - INFO - SiproClient successfully initialized -10-28 05:00 - assemblr - INFO - SiproClient successfully initialized -10-28 05:00 - assemblr - INFO - SiproClient successfully initialized -10-28 05:00 - assemblr - INFO - SiproClient successfully initialized -10-28 05:02 - assemblr - INFO - SiproClient successfully initialized -10-28 05:02 - assemblr - INFO - SiproClient successfully initialized -10-28 05:02 - assemblr - INFO - SiproClient successfully initialized -10-28 05:03 - assemblr - INFO - SiproClient successfully initialized -10-28 05:03 - assemblr - INFO - SiproClient successfully initialized -10-28 05:04 - assemblr - INFO - SiproClient successfully initialized -10-28 05:06 - assemblr - INFO - SiproClient successfully initialized -10-28 05:06 - assemblr - INFO - SiproClient successfully initialized -10-28 05:07 - assemblr - INFO - SiproClient successfully initialized -10-28 05:07 - assemblr - INFO - SiproClient successfully initialized -10-28 05:08 - assemblr - INFO - SiproClient successfully initialized -10-28 05:08 - assemblr - INFO - SiproClient successfully initialized -10-28 05:09 - assemblr - INFO - SiproClient successfully initialized -10-28 05:09 - assemblr - INFO - SiproClient successfully initialized -10-29 01:50 - assemblr - INFO - SiproClient successfully initialized -10-29 01:50 - assemblr - INFO - SiproClient successfully initialized -10-29 02:21 - assemblr - INFO - SiproClient successfully initialized -10-29 02:25 - assemblr - INFO - SiproClient successfully initialized -10-29 06:43 - assemblr - INFO - SiproClient successfully initialized -10-29 06:47 - assemblr - INFO - SiproClient successfully initialized -10-29 06:53 - assemblr - INFO - SiproClient successfully initialized -10-30 03:37 - assemblr - INFO - SiproClient successfully initialized -10-30 03:37 - assemblr - INFO - SiproClient successfully initialized -10-30 03:39 - assemblr - INFO - SiproClient successfully initialized -10-30 04:23 - assemblr - INFO - SiproClient successfully initialized -10-30 05:10 - assemblr - INFO - SiproClient successfully initialized -10-30 05:11 - assemblr - INFO - SiproClient successfully initialized -10-30 05:11 - assemblr - INFO - SiproClient successfully initialized -10-30 05:11 - assemblr - INFO - SiproClient successfully initialized -10-30 05:11 - assemblr - INFO - SiproClient successfully initialized -10-30 05:11 - assemblr - INFO - SiproClient successfully initialized -10-30 05:13 - assemblr - INFO - SiproClient successfully initialized -10-30 05:15 - assemblr - INFO - SiproClient successfully initialized -10-30 05:15 - assemblr - INFO - SiproClient successfully initialized -10-30 05:15 - assemblr - INFO - SiproClient successfully initialized -10-30 05:29 - assemblr - INFO - SiproClient successfully initialized -10-30 05:29 - assemblr - INFO - SiproClient successfully initialized -10-30 05:31 - assemblr - INFO - SiproClient successfully initialized -10-30 05:34 - assemblr - INFO - SiproClient successfully initialized -10-30 05:34 - assemblr - INFO - SiproClient successfully initialized -10-30 05:34 - assemblr - INFO - SiproClient successfully initialized -10-30 05:34 - assemblr - INFO - SiproClient successfully initialized -10-30 05:34 - assemblr - INFO - SiproClient successfully initialized -10-30 05:34 - assemblr - INFO - SiproClient successfully initialized -10-30 05:34 - assemblr - INFO - SiproClient successfully initialized -10-30 05:37 - assemblr - INFO - SiproClient successfully initialized -10-30 05:38 - assemblr - INFO - SiproClient successfully initialized -10-30 05:46 - assemblr - INFO - SiproClient successfully initialized -10-30 06:15 - assemblr - INFO - SiproClient successfully initialized -10-30 06:24 - assemblr - INFO - SiproClient successfully initialized -10-30 06:24 - assemblr - INFO - SiproClient successfully initialized -10-30 07:14 - assemblr - INFO - SiproClient successfully initialized -10-30 07:18 - assemblr - INFO - SiproClient successfully initialized -10-30 07:19 - assemblr - INFO - SiproClient successfully initialized -10-30 07:19 - assemblr - INFO - SiproClient successfully initialized -10-30 07:21 - assemblr - INFO - SiproClient successfully initialized -11-02 03:18 - assemblr - INFO - SiproClient successfully initialized -11-02 03:18 - assemblr - INFO - SiproClient successfully initialized -11-02 03:26 - assemblr - INFO - SiproClient successfully initialized -11-03 04:07 - assemblr - INFO - SiproClient successfully initialized -11-03 04:07 - assemblr - INFO - SiproClient successfully initialized -11-03 04:12 - assemblr - INFO - SiproClient successfully initialized -11-06 03:47 - assemblr - INFO - SiproClient successfully initialized -11-06 03:47 - assemblr - INFO - SiproClient successfully initialized -11-06 03:47 - assemblr - INFO - SiproClient successfully initialized -11-06 05:15 - assemblr - INFO - SiproClient successfully initialized -11-06 05:17 - assemblr - INFO - SiproClient successfully initialized -11-06 05:32 - assemblr - INFO - SiproClient successfully initialized From a5b6c572d2842c4d2a55c37e18534198e8d08634 Mon Sep 17 00:00:00 2001 From: dznFK Date: Sat, 25 Nov 2023 02:33:12 +0400 Subject: [PATCH 9/9] deshitting --- .gitmodules | 3 --- database/__init__.py | 2 +- database/assebmlr | 1 - database/enums.py | 10 ++++++++++ database/mariadb.py | 1 + database/models.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ routes/assembly.py | 2 +- 7 files changed, 57 insertions(+), 6 deletions(-) delete mode 100644 .gitmodules delete mode 160000 database/assebmlr create mode 100644 database/enums.py create mode 100644 database/models.py diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 47f34fd..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "database/assebmlr"] - path = database/assebmlr - url = https://git.denco.store/agonex/Assemblr-Database.git diff --git a/database/__init__.py b/database/__init__.py index 75eb683..70cdde6 100644 --- a/database/__init__.py +++ b/database/__init__.py @@ -1 +1 @@ -from .assebmlr.models import * +from database.models import * diff --git a/database/assebmlr b/database/assebmlr deleted file mode 160000 index 4096f3f..0000000 --- a/database/assebmlr +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 4096f3f868bc263df0989e2496365719b6863f2d diff --git a/database/enums.py b/database/enums.py new file mode 100644 index 0000000..e167a8d --- /dev/null +++ b/database/enums.py @@ -0,0 +1,10 @@ +from enum import unique, IntEnum + + +@unique +class AssemblyState(IntEnum): + NOT_STARTED = 0, + ASSEMBLING_PRODUCTS = 1, + ALL_PRODUCTS_ASSEMBLED = 2, + CONFIRMED = 3, + ENDED = 4 diff --git a/database/mariadb.py b/database/mariadb.py index 388b42d..f56740a 100644 --- a/database/mariadb.py +++ b/database/mariadb.py @@ -1,4 +1,5 @@ import mariadb + import settings diff --git a/database/models.py b/database/models.py new file mode 100644 index 0000000..4b77fc3 --- /dev/null +++ b/database/models.py @@ -0,0 +1,44 @@ +from flask_sqlalchemy import SQLAlchemy + +db = SQLAlchemy() + + +class User(db.Model): + __tablename__ = 'users' + id = db.Column(db.Integer, primary_key=True, comment='ID пользователя') + + login = db.Column(db.String, nullable=False, comment='Логин') + password_hash = db.Column(db.String, nullable=False, comment='Пароль') + + sipro_id = db.Column(db.Integer, nullable=True, comment='ID пользователя в SIPRO') + + +class Assembly(db.Model): + __tablename__ = 'assemblies' + id = db.Column(db.Integer, primary_key=True, comment='ID сборки') + + created_at = db.Column(db.DateTime, nullable=True, comment='Дата и время начала сборки') + ended_at = db.Column(db.DateTime, nullable=True, comment='Дата и время конца сборки') + + user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False) + user = db.relationship('User', backref='assemblies') + + order_id = db.Column(db.Integer, nullable=False, comment='ID заказа в базе данных') + is_active = db.Column(db.Boolean, nullable=False, comment='Активная ли сборка') + state = db.Column(db.Integer, nullable=False, comment='Состояние сборки') + + +class Barcode(db.Model): + __tablename__ = 'barcodes' + id = db.Column(db.Integer, primary_key=True, comment='ID пользователя') + denco_article = db.Column(db.Integer, nullable=False, comment='Артикул', index=True) + barcode = db.Column(db.String, nullable=False, comment='Баркод', index=True) + + +class Application(db.Model): + __tablename__ = 'applications' + id = db.Column(db.Integer, primary_key=True, comment='') + name = db.Column(db.String(40), nullable=False) + version = db.Column(db.String(10), nullable=False) + uploaded = db.Column(db.DateTime, nullable=False) + filename = db.Column(db.String, nullable=False) diff --git a/routes/assembly.py b/routes/assembly.py index 1e7d7df..d2f22f4 100644 --- a/routes/assembly.py +++ b/routes/assembly.py @@ -4,7 +4,7 @@ from flask import Blueprint, request, jsonify from flask_jwt_extended import get_jwt_identity import database -from database.assebmlr.enums import AssemblyState +from database.enums import AssemblyState from routes.utils import jwt_protect_blueprint import sipro.api.orders