Skip to content

Commit

Permalink
admin substance
Browse files Browse the repository at this point in the history
  • Loading branch information
marceloarocha committed Sep 9, 2024
1 parent 10ffecc commit e8da18f
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 6 deletions.
4 changes: 3 additions & 1 deletion routes/admin/admin_substance.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,14 @@ def get_substances():
limit=data.get("limit", 50),
offset=data.get("offset", 0),
name=data.get("name", None),
idClassList=data.get("idClassList", []),
has_handling=data.get("hasHandling", None),
)

return {"status": "success", "data": list}, status.HTTP_200_OK


@app_admin_subs.route("/admin/substance", methods=["PUT"])
@app_admin_subs.route("/admin/substance", methods=["POST"])
@jwt_required()
def update_substance():
user = User.find(get_jwt_identity())
Expand Down
29 changes: 24 additions & 5 deletions services/admin/admin_substance_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
def get_substances(
user: User,
name=None,
idClassList=[],
has_handling=None,
limit=50,
offset=0,
):
Expand All @@ -28,6 +30,15 @@ def get_substances(
if name != None:
q = q.filter(Substance.name.ilike(name))

if len(idClassList) > 0:
q = q.filter(Substance.idclass.in_(idClassList))

if has_handling != None:
if has_handling:
q = q.filter(Substance.handling != None)
else:
q = q.filter(Substance.handling == None)

q = (
q.options(undefer(Substance.handling))
.order_by(Substance.name)
Expand Down Expand Up @@ -69,21 +80,29 @@ def upsert_substance(data: dict, user):
db.session.add(subs)

subs.name = data.get("name", None)
subs.idclass = data.get("idclass", None)
subs.idclass = data.get("idClass", None)
subs.active = data.get("active", None)
subs.link = data.get("link", None)
subs.handling = data.get("handling")

db.session.flush()

db_substance = db.session.query(Substance).filter(Substance.id == subs.id).first()
db_substance = (
db.session.query(Substance, SubstanceClass)
.outerjoin(SubstanceClass, SubstanceClass.id == Substance.idclass)
.filter(Substance.id == subs.id)
.first()
)

# todo
# return list_to_dto([db_substance])
return dict(
_to_dto(db_substance[0]),
**{"className": db_substance[1].name if db_substance[1] != None else None}
)


def _to_dto(s: Substance):
return {
"id": s.id,
"id": str(s.id),
"name": s.name,
"idClass": s.idclass,
"active": s.active,
Expand Down

0 comments on commit e8da18f

Please sign in to comment.