aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYarmo Mackenbach <yarmo@yarmo.eu>2022-04-07 09:26:04 +0200
committerYarmo Mackenbach <yarmo@yarmo.eu>2022-04-07 09:26:04 +0200
commitd8d3ed7f1d5c09a0266f05e3a3c801c7175972ba (patch)
tree1a677dfbc39f1dbe2e032d572c5e762d457acec5
parentacdef4225795e7f441bac318764482d7be18de1c (diff)
Add expense sender delegation
-rw-r--r--src/index.js37
1 files changed, 29 insertions, 8 deletions
diff --git a/src/index.js b/src/index.js
index 04170aa..dd92f9d 100644
--- a/src/index.js
+++ b/src/index.js
@@ -235,15 +235,35 @@ matrixClient.on('Room.timeline', async (event, room, toStartOfTimeline) => {
case 'e':
case 'exp':
case 'expense':
- let amount = parseFloat(args[0])
- let description = args
- .slice(1)
- .filter((a) => {
- console.log(a, a[0])
- return a[0] !== '?'
- })
- .join(' ')
+ let from
+ let amount
+ let description
+
+ if (users.includes(args[0])) {
+ // Use delegated sender
+ from = parseFloat(args[0])
+ amount = parseFloat(args[1])
+ description = args
+ .slice(2)
+ .filter((a) => {
+ console.log(a, a[0])
+ return a[0] !== '?'
+ })
+ .join(' ')
+ } else {
+ // Use event sender
+ from = event.getSender()
+ amount = parseFloat(args[0])
+ description = args
+ .slice(1)
+ .filter((a) => {
+ console.log(a, a[0])
+ return a[0] !== '?'
+ })
+ .join(' ')
+ }
+ // Check amount
if (!amount) {
sendMessage(
room.roomId,
@@ -258,6 +278,7 @@ matrixClient.on('Room.timeline', async (event, room, toStartOfTimeline) => {
roomId: room.roomId,
userId: event.getSender(),
data: {
+ from: from,
amount: amount,
currency: 'EUR',
description: description,