Files
bodyshop/client/src/utils/fcm-handler.js
Dave Richer 4eb8faa5d9 - the great reformat
Signed-off-by: Dave Richer <dave@imexsystems.ca>
2024-02-06 18:23:46 -05:00

70 lines
2.4 KiB
JavaScript

export default async function FcmHandler({client, payload}) {
switch (payload.type) {
case "messaging-inbound":
client.cache.modify({
id: client.cache.identify({
__typename: "conversations",
id: payload.conversationid,
}),
fields: {
messages_aggregate(cached) {
return {aggregate: {count: cached.aggregate.count + 1}};
},
},
});
client.cache.modify({
fields: {
messages_aggregate(cached) {
return {aggregate: {count: cached.aggregate.count + 1}};
},
},
});
break;
case "messaging-outbound":
client.cache.modify({
id: client.cache.identify({
__typename: "conversations",
id: payload.conversationid,
}),
fields: {
updated_at(oldupdated0) {
return new Date();
},
// messages_aggregate(cached) {
// return { aggregate: { count: cached.aggregate.count + 1 } };
// },
},
});
break;
case "messaging-mark-conversation-read":
let previousUnreadCount = 0;
client.cache.modify({
id: client.cache.identify({
__typename: "conversations",
id: payload.conversationid,
}),
fields: {
messages_aggregate(cached) {
previousUnreadCount = cached.aggregate.count;
return {aggregate: {count: 0}};
},
},
});
client.cache.modify({
fields: {
messages_aggregate(cached) {
return {
aggregate: {
count: cached.aggregate.count - previousUnreadCount,
},
};
},
},
});
break;
default:
console.log("No payload type set.");
break;
}
}