All files / packages/mutations/src/user-connection-intentions utils.ts

91.66% Statements 11/12
100% Branches 0/0
87.5% Functions 7/8
100% Lines 10/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51                    49x         1x   1x           1x       1x       1x 1x     1x           1x         1x        
import type { TRPCMutationOutput } from "~app/trpc";
import type { PeerId } from "~db/ids";
 
import { update as updateDebts } from "../cache/debts";
import {
	invalidateSuggest as invalidateSuggestPeers,
	update as updatePeers,
} from "../cache/peers";
import type { ControllerContext } from "../types";
 
export const updatePeerConnected = (
	controllerContext: ControllerContext,
	peerId: PeerId,
	user: TRPCMutationOutput<"userConnectionIntentions.add">["user"],
) => {
	updatePeers(controllerContext, {
		get: (controller) => {
			controller.update(peerId, (peer) => ({
				...peer,
				connectedUser: user,
			}));
		},
		getForeign: (controller) => {
			controller.updateOwn(peerId, (peer) => ({
				...peer,
				connectedUser: user,
			}));
			controller.invalidateForeign();
		},
		getPaged: undefined,
	});
	void invalidateSuggestPeers(controllerContext);
	updateDebts(controllerContext, {
		// A newly connected  user may have new debts for us
		getAll: (controller) => {
			void controller.invalidate();
		},
		getAllPeer: undefined,
		getByPeerPaged: undefined,
		// A newly connected  user may have new debts for us
		getPeersPaged: (controller) => {
			controller.invalidate();
		},
		get: undefined,
		// A newly connected  user may have new intentions for us
		getIntentions: (controller) => {
			void controller.invalidate();
		},
	});
};