Appearance
Rule.io SDK / client/src / markTagDirection
Function: markTagDirection()
Call Signature
markTagDirection(
event,direction):SubscriberAddedToTagEvent
Defined in: client/src/webhooks/mark-tag.ts:51
Commit the direction of a subscriber.tag-changed event.
Rule.io's "added to tag" and "removed from tag" webhook bodies are identical — parseWebhookEvent therefore returns the ambiguous subscriber.tag-changed shape. Once the receiver knows which direction the request represents (typically because the URL was configured for one or the other in Rule.io's account UI), call this helper to narrow the type.
The returned event preserves the original tag and subscriber fields — only the discriminator changes.
Parameters
event
direction
"added"
Returns
Throws
If event.type is not 'subscriber.tag-changed'.
Example
typescript
import { parseWebhookEvent, markTagDirection } from '@rule/client';
app.post('/webhooks/rule/tag-added', (req, res) => {
const parsed = parseWebhookEvent(req.body);
if (parsed.type !== 'subscriber.tag-changed') {
// unexpected — only tag webhooks should reach this URL
return res.status(400).end();
}
const event = markTagDirection(parsed, 'added');
// event.type === 'subscriber.added-to-tag'
res.status(200).end();
});Call Signature
markTagDirection(
event,direction):SubscriberRemovedFromTagEvent
Defined in: client/src/webhooks/mark-tag.ts:55
Commit the direction of a subscriber.tag-changed event.
Rule.io's "added to tag" and "removed from tag" webhook bodies are identical — parseWebhookEvent therefore returns the ambiguous subscriber.tag-changed shape. Once the receiver knows which direction the request represents (typically because the URL was configured for one or the other in Rule.io's account UI), call this helper to narrow the type.
The returned event preserves the original tag and subscriber fields — only the discriminator changes.
Parameters
event
direction
"removed"
Returns
Throws
If event.type is not 'subscriber.tag-changed'.
Example
typescript
import { parseWebhookEvent, markTagDirection } from '@rule/client';
app.post('/webhooks/rule/tag-added', (req, res) => {
const parsed = parseWebhookEvent(req.body);
if (parsed.type !== 'subscriber.tag-changed') {
// unexpected — only tag webhooks should reach this URL
return res.status(400).end();
}
const event = markTagDirection(parsed, 'added');
// event.type === 'subscriber.added-to-tag'
res.status(200).end();
});Call Signature
markTagDirection(
event,direction):SubscriberAddedToTagEvent|SubscriberRemovedFromTagEvent
Defined in: client/src/webhooks/mark-tag.ts:59
Commit the direction of a subscriber.tag-changed event.
Rule.io's "added to tag" and "removed from tag" webhook bodies are identical — parseWebhookEvent therefore returns the ambiguous subscriber.tag-changed shape. Once the receiver knows which direction the request represents (typically because the URL was configured for one or the other in Rule.io's account UI), call this helper to narrow the type.
The returned event preserves the original tag and subscriber fields — only the discriminator changes.
Parameters
event
direction
"added" | "removed"
Returns
SubscriberAddedToTagEvent | SubscriberRemovedFromTagEvent
Throws
If event.type is not 'subscriber.tag-changed'.
Example
typescript
import { parseWebhookEvent, markTagDirection } from '@rule/client';
app.post('/webhooks/rule/tag-added', (req, res) => {
const parsed = parseWebhookEvent(req.body);
if (parsed.type !== 'subscriber.tag-changed') {
// unexpected — only tag webhooks should reach this URL
return res.status(400).end();
}
const event = markTagDirection(parsed, 'added');
// event.type === 'subscriber.added-to-tag'
res.status(200).end();
});