feat: cancel assembly by id
This commit is contained in:
@@ -2,6 +2,7 @@ import datetime
|
|||||||
|
|
||||||
from flask import Blueprint, request, jsonify
|
from flask import Blueprint, request, jsonify
|
||||||
from flask_jwt_extended import get_jwt_identity
|
from flask_jwt_extended import get_jwt_identity
|
||||||
|
from sqlalchemy.orm import joinedload
|
||||||
|
|
||||||
import database
|
import database
|
||||||
from database.enums import AssemblyState
|
from database.enums import AssemblyState
|
||||||
@@ -17,13 +18,17 @@ def create_assembly():
|
|||||||
data: dict = request.json
|
data: dict = request.json
|
||||||
order_id: int = data.get('orderId')
|
order_id: int = data.get('orderId')
|
||||||
user_id = get_jwt_identity()
|
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:
|
if existing_assembly:
|
||||||
response = {
|
response = {
|
||||||
'ok': False,
|
'ok': False,
|
||||||
'message': 'Сборка этого товара уже была запущена',
|
'message': 'Сборка этого товара уже была запущена',
|
||||||
'assemblyId': existing_assembly.id,
|
'assemblyId': existing_assembly.id,
|
||||||
'statusCode': 'ASSEMBLY_ALREADY_EXISTS'
|
'statusCode': 'ASSEMBLY_ALREADY_EXISTS',
|
||||||
|
'userName': existing_assembly.user.login
|
||||||
}
|
}
|
||||||
return jsonify(response)
|
return jsonify(response)
|
||||||
active_assembly = database.Assembly.query.filter(database.Assembly.user_id == user_id,
|
active_assembly = database.Assembly.query.filter(database.Assembly.user_id == user_id,
|
||||||
@@ -111,6 +116,33 @@ def cancel_assembly():
|
|||||||
return jsonify(response)
|
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')
|
@assembly_blueprint.get('/hasActive')
|
||||||
def user_has_active_assembly():
|
def user_has_active_assembly():
|
||||||
user_id = get_jwt_identity()
|
user_id = get_jwt_identity()
|
||||||
|
|||||||
Reference in New Issue
Block a user