mirror of
https://github.com/eliasstepanik/core.git
synced 2026-01-23 12:38:30 +00:00
fix: print response to understand email delivery
This commit is contained in:
parent
de94f67f7b
commit
0b88a2cd49
@ -23,6 +23,7 @@ interface EpisodeFact {
|
|||||||
|
|
||||||
interface EpisodeFactsResponse {
|
interface EpisodeFactsResponse {
|
||||||
facts: EpisodeFact[];
|
facts: EpisodeFact[];
|
||||||
|
invalidFacts: EpisodeFact[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export function LogDetails({
|
export function LogDetails({
|
||||||
@ -33,6 +34,7 @@ export function LogDetails({
|
|||||||
log,
|
log,
|
||||||
}: LogDetailsProps) {
|
}: LogDetailsProps) {
|
||||||
const [facts, setFacts] = useState<any[]>([]);
|
const [facts, setFacts] = useState<any[]>([]);
|
||||||
|
const [invalidFacts, setInvalidFacts] = useState<any[]>([]);
|
||||||
const [factsLoading, setFactsLoading] = useState(false);
|
const [factsLoading, setFactsLoading] = useState(false);
|
||||||
const fetcher = useFetcher<EpisodeFactsResponse>();
|
const fetcher = useFetcher<EpisodeFactsResponse>();
|
||||||
|
|
||||||
@ -50,6 +52,7 @@ export function LogDetails({
|
|||||||
setFactsLoading(false);
|
setFactsLoading(false);
|
||||||
const response = fetcher.data;
|
const response = fetcher.data;
|
||||||
setFacts(response.facts);
|
setFacts(response.facts);
|
||||||
|
setInvalidFacts(response.invalidFacts);
|
||||||
}
|
}
|
||||||
}, [fetcher.data, fetcher.state]);
|
}, [fetcher.data, fetcher.state]);
|
||||||
|
|
||||||
@ -122,6 +125,33 @@ export function LogDetails({
|
|||||||
<span>
|
<span>
|
||||||
Valid: {new Date(fact.validAt).toLocaleString()}
|
Valid: {new Date(fact.validAt).toLocaleString()}
|
||||||
</span>
|
</span>
|
||||||
|
{fact.invalidAt && (
|
||||||
|
<span>
|
||||||
|
Invalid:{" "}
|
||||||
|
{new Date(fact.invalidAt).toLocaleString()}
|
||||||
|
</span>
|
||||||
|
)}
|
||||||
|
{Object.keys(fact.attributes).length > 0 && (
|
||||||
|
<Badge variant="secondary" className="text-xs">
|
||||||
|
{Object.keys(fact.attributes).length} attributes
|
||||||
|
</Badge>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
{invalidFacts.map((fact) => (
|
||||||
|
<div
|
||||||
|
key={fact.uuid}
|
||||||
|
className="bg-grayAlpha-100 rounded-md p-3"
|
||||||
|
>
|
||||||
|
<p className="mb-1 text-sm">{fact.fact}</p>
|
||||||
|
<div className="text-muted-foreground flex items-center gap-2 text-xs">
|
||||||
|
{fact.invalidAt && (
|
||||||
|
<span>
|
||||||
|
Invalid:{" "}
|
||||||
|
{new Date(fact.invalidAt).toLocaleString()}
|
||||||
|
</span>
|
||||||
|
)}
|
||||||
{Object.keys(fact.attributes).length > 0 && (
|
{Object.keys(fact.attributes).length > 0 && (
|
||||||
<Badge variant="secondary" className="text-xs">
|
<Badge variant="secondary" className="text-xs">
|
||||||
{Object.keys(fact.attributes).length} attributes
|
{Object.keys(fact.attributes).length} attributes
|
||||||
|
|||||||
@ -48,9 +48,10 @@ export async function createWorkspace(
|
|||||||
});
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await sendEmail({ email: "welcome", to: user.email });
|
const response = await sendEmail({ email: "welcome", to: user.email });
|
||||||
|
logger.info(`${JSON.stringify(response)}`);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.error("Error sending email");
|
logger.error(`Error sending email: ${e}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
return workspace;
|
return workspace;
|
||||||
|
|||||||
@ -86,7 +86,9 @@ export async function scheduleEmail(
|
|||||||
|
|
||||||
export async function sendEmail(data: DeliverEmail) {
|
export async function sendEmail(data: DeliverEmail) {
|
||||||
try {
|
try {
|
||||||
return client.send(data);
|
const response = client.send(data);
|
||||||
|
|
||||||
|
return response;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.error(`Error: ${e}`);
|
logger.error(`Error: ${e}`);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,7 @@
|
|||||||
import { getEpisodeStatements } from "~/services/graphModels/episode";
|
import {
|
||||||
|
getEpisodeStatements,
|
||||||
|
getStatementsInvalidatedByEpisode,
|
||||||
|
} from "~/services/graphModels/episode";
|
||||||
|
|
||||||
export async function getEpisodeFacts(episodeUuid: string, userId: string) {
|
export async function getEpisodeFacts(episodeUuid: string, userId: string) {
|
||||||
try {
|
try {
|
||||||
@ -7,13 +10,27 @@ export async function getEpisodeFacts(episodeUuid: string, userId: string) {
|
|||||||
userId,
|
userId,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const invalidFacts = await getStatementsInvalidatedByEpisode({
|
||||||
|
episodeUuid,
|
||||||
|
userId,
|
||||||
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
success: true,
|
success: true,
|
||||||
facts: facts.map(fact => ({
|
facts: facts.map((fact) => ({
|
||||||
uuid: fact.uuid,
|
uuid: fact.uuid,
|
||||||
fact: fact.fact,
|
fact: fact.fact,
|
||||||
createdAt: fact.createdAt.toISOString(),
|
createdAt: fact.createdAt.toISOString(),
|
||||||
validAt: fact.validAt.toISOString(),
|
validAt: fact.validAt.toISOString(),
|
||||||
|
invalidAt: fact.invalidAt ? fact.invalidAt.toISOString() : null,
|
||||||
|
attributes: fact.attributes,
|
||||||
|
})),
|
||||||
|
invalidFacts: invalidFacts.map((fact) => ({
|
||||||
|
uuid: fact.uuid,
|
||||||
|
fact: fact.fact,
|
||||||
|
createdAt: fact.createdAt.toISOString(),
|
||||||
|
validAt: fact.validAt.toISOString(),
|
||||||
|
invalidAt: fact.invalidAt ? fact.invalidAt.toISOString() : null,
|
||||||
attributes: fact.attributes,
|
attributes: fact.attributes,
|
||||||
})),
|
})),
|
||||||
};
|
};
|
||||||
@ -25,4 +42,4 @@ export async function getEpisodeFacts(episodeUuid: string, userId: string) {
|
|||||||
facts: [],
|
facts: [],
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -315,6 +315,35 @@ export async function getEpisodeStatements(params: {
|
|||||||
userId: params.userId,
|
userId: params.userId,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return result.map((record) => {
|
||||||
|
const stmt = record.get("stmt").properties;
|
||||||
|
|
||||||
|
return {
|
||||||
|
uuid: stmt.uuid,
|
||||||
|
fact: stmt.fact,
|
||||||
|
factEmbedding: stmt.factEmbedding,
|
||||||
|
createdAt: new Date(stmt.createdAt),
|
||||||
|
validAt: new Date(stmt.validAt),
|
||||||
|
invalidAt: stmt.invalidAt ? new Date(stmt.invalidAt) : null,
|
||||||
|
attributes: stmt.attributesJson ? JSON.parse(stmt.attributesJson) : {},
|
||||||
|
userId: stmt.userId,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function getStatementsInvalidatedByEpisode(params: {
|
||||||
|
episodeUuid: string;
|
||||||
|
userId: string;
|
||||||
|
}) {
|
||||||
|
const query = `
|
||||||
|
MATCH (stmt:Statement {invalidatedBy: $episodeUuid})
|
||||||
|
RETURN stmt
|
||||||
|
`;
|
||||||
|
|
||||||
|
const result = await runQuery(query, {
|
||||||
|
episodeUuid: params.episodeUuid,
|
||||||
|
});
|
||||||
|
|
||||||
return result.map((record) => {
|
return result.map((record) => {
|
||||||
const stmt = record.get("stmt").properties;
|
const stmt = record.get("stmt").properties;
|
||||||
return {
|
return {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user