apps/meteor/app/federation/server/normalizers/subscription.js
import { getNameAndDomain, isFullyQualified } from '../functions/helpers';
import { getFederationDomain } from '../lib/getFederationDomain';
const denormalizeSubscription = (originalResource) => {
const resource = { ...originalResource };
const [username, domain] = getNameAndDomain(resource.u.username);
resource.u.username = domain === getFederationDomain() ? username : resource.u.username;
const [nameUsername, nameDomain] = getNameAndDomain(resource.name);
resource.name = nameDomain === getFederationDomain() ? nameUsername : resource.name;
return resource;
};
const denormalizeAllSubscriptions = (resources) => resources.map(denormalizeSubscription);
const normalizeSubscription = (originalResource) => {
const resource = { ...originalResource };
resource.u.username = !isFullyQualified(resource.u.username) ? `${resource.u.username}@${getFederationDomain()}` : resource.u.username;
resource.name = !isFullyQualified(resource.name) ? `${resource.name}@${getFederationDomain()}` : resource.name;
// Federation
resource.federation = resource.federation || {
origin: getFederationDomain(), // The origin of this resource, where it was created
};
return resource;
};
const normalizeAllSubscriptions = (resources) => resources.map(normalizeSubscription);
export default {
denormalizeSubscription,
denormalizeAllSubscriptions,
normalizeSubscription,
normalizeAllSubscriptions,
};