(balance) fix notifications
if only author and sender oder receiver exists, create special notifications
This commit is contained in:
parent
d7428b2ed1
commit
9077c9fd11
|
@ -5,6 +5,7 @@ Extends users plugin with balance functions
|
||||||
|
|
||||||
from flask import current_app
|
from flask import current_app
|
||||||
from werkzeug.exceptions import NotFound
|
from werkzeug.exceptions import NotFound
|
||||||
|
from werkzeug.local import LocalProxy
|
||||||
|
|
||||||
from flaschengeist import logger
|
from flaschengeist import logger
|
||||||
from flaschengeist.config import config
|
from flaschengeist.config import config
|
||||||
|
@ -82,3 +83,7 @@ class BalancePlugin(Plugin):
|
||||||
balance_controller.set_limit(user, limit, override=False)
|
balance_controller.set_limit(user, limit, override=False)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def getPlugin() -> LocalProxy["BalancePlugin"]:
|
||||||
|
return LocalProxy(lambda: current_app.config["FG_PLUGINS"]["balance"])
|
||||||
|
|
|
@ -21,6 +21,8 @@ __attribute_limit = "balance_limit"
|
||||||
class NotifyType(IntEnum):
|
class NotifyType(IntEnum):
|
||||||
SEND_TO = 0x01
|
SEND_TO = 0x01
|
||||||
SEND_FROM = 0x02
|
SEND_FROM = 0x02
|
||||||
|
ADD_FROM = 0x03
|
||||||
|
SUB_FROM = 0x04
|
||||||
|
|
||||||
|
|
||||||
def set_limit(user: User, limit: float, override=True):
|
def set_limit(user: User, limit: float, override=True):
|
||||||
|
@ -178,6 +180,7 @@ def send(sender: User, receiver, amount: float, author: User):
|
||||||
Raises:
|
Raises:
|
||||||
BadRequest if amount <= 0
|
BadRequest if amount <= 0
|
||||||
"""
|
"""
|
||||||
|
logger.debug(f"send(sender={sender}, receiver={receiver}, amount={amount}, author={author})")
|
||||||
if amount <= 0:
|
if amount <= 0:
|
||||||
raise BadRequest
|
raise BadRequest
|
||||||
|
|
||||||
|
@ -191,20 +194,40 @@ def send(sender: User, receiver, amount: float, author: User):
|
||||||
db.session.add(transaction)
|
db.session.add(transaction)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
if sender is not None and sender.id_ != author.id_:
|
if sender is not None and sender.id_ != author.id_:
|
||||||
BalancePlugin.plugin.notify(
|
if receiver is not None:
|
||||||
sender,
|
BalancePlugin.getPlugin().notify(
|
||||||
"Neue Transaktion",
|
sender,
|
||||||
{
|
"Neue Transaktion",
|
||||||
"type": NotifyType.SEND_FROM,
|
{
|
||||||
"receiver_id": receiver.userid,
|
"type": NotifyType.SEND_FROM,
|
||||||
"author_id": author.userid,
|
"receiver_id": receiver.userid,
|
||||||
"amount": amount,
|
"author_id": author.userid,
|
||||||
},
|
"amount": amount,
|
||||||
)
|
},
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
BalancePlugin.getPlugin().notify(
|
||||||
|
sender,
|
||||||
|
"Neue Transaktion",
|
||||||
|
{"type": NotifyType.SUB_FROM, "author_id": author.userid, "amount": amount},
|
||||||
|
)
|
||||||
if receiver is not None and receiver.id_ != author.id_:
|
if receiver is not None and receiver.id_ != author.id_:
|
||||||
BalancePlugin.plugin.notify(
|
if sender is not None:
|
||||||
receiver, "Neue Transaktion", {"type": NotifyType.SEND_TO, "sender_id": sender.userid, "amount": amount}
|
BalancePlugin.getPlugin().notify(
|
||||||
)
|
receiver,
|
||||||
|
"Neue Transaktion",
|
||||||
|
{
|
||||||
|
"type": NotifyType.SEND_TO,
|
||||||
|
"sender_id": sender.userid,
|
||||||
|
"amount": amount,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
BalancePlugin.getPlugin().notify(
|
||||||
|
receiver,
|
||||||
|
"Neue Transaktion",
|
||||||
|
{"type": NotifyType.ADD_FROM, "author_id": author.userid, "amount": amount},
|
||||||
|
)
|
||||||
return transaction
|
return transaction
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue