Skip to content

Commit

Permalink
Handle outages with Faktory
Browse files Browse the repository at this point in the history
  • Loading branch information
dcramer committed Dec 23, 2023
1 parent c847742 commit 5090e18
Show file tree
Hide file tree
Showing 6 changed files with 66 additions and 9 deletions.
11 changes: 10 additions & 1 deletion apps/server/src/trpc/routes/bottleCreate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import {
import pushJob from "@peated/server/jobs";
import { upsertEntity } from "@peated/server/lib/db";
import { notEmpty } from "@peated/server/lib/filter";
import { logError } from "@peated/server/lib/log";
import { normalizeBottleName } from "@peated/server/lib/normalize";
import { BottleInputSchema } from "@peated/server/schemas";
import { serialize } from "@peated/server/serializers";
Expand Down Expand Up @@ -161,7 +162,15 @@ export default authedProcedure
});
}

await pushJob("GenerateBottleDetails", { bottleId: bottle.id });
try {
await pushJob("GenerateBottleDetails", { bottleId: bottle.id });
} catch (err) {
logError(err, {
bottle: {
id: bottle.id,
},
});
}

return await serialize(BottleSerializer, bottle, ctx.user);
});
14 changes: 12 additions & 2 deletions apps/server/src/trpc/routes/bottleUpdate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {
} from "@peated/server/db/schema";
import pushJob from "@peated/server/jobs";
import { notEmpty } from "@peated/server/lib/filter";
import { logError } from "@peated/server/lib/log";
import { normalizeBottleName } from "@peated/server/lib/normalize";
import { BottleInputSchema } from "@peated/server/schemas";
import { serialize } from "@peated/server/serializers";
Expand Down Expand Up @@ -279,8 +280,17 @@ export default modProcedure
!newBottle.description ||
!newBottle.tastingNotes ||
newBottle.suggestedTags.length === 0
)
await pushJob("GenerateBottleDetails", { bottleId: bottle.id });
) {
try {
await pushJob("GenerateBottleDetails", { bottleId: bottle.id });
} catch (err) {
logError(err, {
bottle: {
id: bottle.id,
},
});
}
}

return await serialize(BottleSerializer, newBottle, ctx.user);
});
11 changes: 10 additions & 1 deletion apps/server/src/trpc/routes/entityCreate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { db } from "@peated/server/db";
import type { NewEntity } from "@peated/server/db/schema";
import { changes, entities } from "@peated/server/db/schema";
import pushJob from "@peated/server/jobs";
import { logError } from "@peated/server/lib/log";
import { EntityInputSchema } from "@peated/server/schemas";
import { serialize } from "@peated/server/serializers";
import { EntitySerializer } from "@peated/server/serializers/entity";
Expand Down Expand Up @@ -68,7 +69,15 @@ export default authedProcedure
});
}

await pushJob("GenerateEntityDetails", { entityId: entity.id });
try {
await pushJob("GenerateEntityDetails", { entityId: entity.id });
} catch (err) {
logError(err, {
entity: {
id: entity.id,
},
});
}

return await serialize(EntitySerializer, entity, ctx.user);
});
11 changes: 10 additions & 1 deletion apps/server/src/trpc/routes/entityMerge.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
entities,
} from "@peated/server/db/schema";
import pushJob from "@peated/server/jobs";
import { logError } from "@peated/server/lib/log";
import { serialize } from "@peated/server/serializers";
import { EntitySerializer } from "@peated/server/serializers/entity";
import { TRPCError } from "@trpc/server";
Expand Down Expand Up @@ -116,7 +117,15 @@ export default modProcedure
const toEntity = input.direction === "mergeInto" ? otherEntity : rootEntity;

const newEntity = await mergeEntitiesInto(toEntity, fromEntity);
await pushJob("GenerateEntityDetails", { entityId: toEntity.id });
try {
await pushJob("GenerateEntityDetails", { entityId: toEntity.id });
} catch (err) {
logError(err, {
entity: {
id: toEntity.id,
},
});
}

return await serialize(EntitySerializer, newEntity, ctx.user);
});
14 changes: 12 additions & 2 deletions apps/server/src/trpc/routes/entityUpdate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import type { Entity } from "@peated/server/db/schema";
import { changes, entities } from "@peated/server/db/schema";
import pushJob from "@peated/server/jobs";
import { arraysEqual } from "@peated/server/lib/equals";
import { logError } from "@peated/server/lib/log";
import { EntityInputSchema } from "@peated/server/schemas";
import { serialize } from "@peated/server/serializers";
import { EntitySerializer } from "@peated/server/serializers/entity";
Expand Down Expand Up @@ -98,8 +99,17 @@ export default modProcedure
});
}

if (newEntity.name !== entity.name || !newEntity.description)
await pushJob("GenerateEntityDetails", { entityId: entity.id });
if (newEntity.name !== entity.name || !newEntity.description) {
try {
await pushJob("GenerateEntityDetails", { entityId: entity.id });
} catch (err) {
logError(err, {
entity: {
id: entity.id,
},
});
}
}

return await serialize(EntitySerializer, newEntity, ctx.user);
});
14 changes: 12 additions & 2 deletions apps/server/src/trpc/routes/tastingCreate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import pushJob from "@peated/server/jobs";
import { checkBadges } from "@peated/server/lib/badges";
import { isDistantFuture, isDistantPast } from "@peated/server/lib/dates";
import { notEmpty } from "@peated/server/lib/filter";
import { logError } from "@peated/server/lib/log";
import { TastingInputSchema } from "@peated/server/schemas";
import { serialize } from "@peated/server/serializers";
import { TastingSerializer } from "@peated/server/serializers/tasting";
Expand Down Expand Up @@ -203,8 +204,17 @@ export default authedProcedure
});
}

if (!ctx.user.private)
await pushJob("NotifyDiscordOnTasting", { tastingId: tasting.id });
if (!ctx.user.private) {
try {
await pushJob("NotifyDiscordOnTasting", { tastingId: tasting.id });
} catch (err) {
logError(err, {
tasting: {
id: tasting.id,
},
});
}
}

return await serialize(TastingSerializer, tasting, ctx.user);
});

0 comments on commit 5090e18

Please sign in to comment.