Compare commits

...

2 Commits

Author SHA1 Message Date
b302feec1d Merge remote-tracking branch 'origin/master' 2023-12-20 01:06:26 +03:00
6dea56e3ee feat: cancel assembly by id 2023-12-20 01:04:20 +03:00

View File

@@ -2,6 +2,7 @@ import datetime
from flask import Blueprint, request, jsonify
from flask_jwt_extended import get_jwt_identity
from sqlalchemy.orm import joinedload
import database
from database.enums import AssemblyState
@@ -17,13 +18,17 @@ def create_assembly():
data: dict = request.json
order_id: int = data.get('orderId')
user_id = get_jwt_identity()
existing_assembly = database.Assembly.query.filter_by(order_id=order_id).first()
existing_assembly = (database.Assembly.query.
options(joinedload(database.Assembly.user)).
filter_by(order_id=order_id).
first())
if existing_assembly:
response = {
'ok': False,
'message': 'Сборка этого товара уже была запущена',
'assemblyId': existing_assembly.id,
'statusCode': 'ASSEMBLY_ALREADY_EXISTS'
'statusCode': 'ASSEMBLY_ALREADY_EXISTS',
'userName': existing_assembly.user.login
}
return jsonify(response)
active_assembly = database.Assembly.query.filter(database.Assembly.user_id == user_id,
@@ -111,6 +116,33 @@ def cancel_assembly():
return jsonify(response)
@assembly_blueprint.post('/cancelById')
def cancel_assembly_by_id():
try:
assembly_id = request.json.get('assemblyId')
assembly = database.db.session.get(database.Assembly, assembly_id)
if not assembly:
response = {
'ok': False,
'message': f'Сборка {assembly_id} не найдена'
}
return jsonify(response)
database.db.session.delete(assembly)
database.db.session.commit()
response = {
'ok': True,
'message': f'Сборка {assembly_id} успешно отменена!'
}
return jsonify(response)
except Exception as e:
response = {
'ok': False,
'message': f'Неудалось отменить сборку, ошибка: {e}'
}
return jsonify(response)
@assembly_blueprint.get('/hasActive')
def user_has_active_assembly():
user_id = get_jwt_identity()