Files
twenty_crm/packages/twenty-website/src/app/api/releases/route.tsx
Ady Beraud 43cd8cc451 Modified URLs and added button to share on LinkedIn (#5306)
- Removed the env variable and added the current URL in contributor's
page
- Added button to share on LinkedIn on contributor's profile
- Fixed absolute image URL for release API

---------

Co-authored-by: Ady Beraud <a.beraud96@gmail.com>
2024-05-07 08:59:03 +02:00

52 lines
1.5 KiB
TypeScript

import { desc } from 'drizzle-orm';
import { getGithubReleaseDateFromReleaseNote } from '@/app/releases/utils/get-github-release-date-from-release-note';
import { getReleases } from '@/app/releases/utils/get-releases';
import { getVisibleReleases } from '@/app/releases/utils/get-visible-releases';
import { findAll } from '@/database/database';
import { GithubReleases, githubReleasesModel } from '@/database/model';
export const dynamic = 'force-dynamic';
export async function GET() {
try {
const githubReleases = (await findAll(
githubReleasesModel,
desc(githubReleasesModel.publishedAt),
)) as GithubReleases[];
const latestGithubRelease = githubReleases[0];
const releaseNotes = await getReleases();
const visibleReleasesNotes = getVisibleReleases(
releaseNotes,
latestGithubRelease.tagName,
);
const formattedReleasesNotes = visibleReleasesNotes.map((releaseNote) => {
const updatedContent = releaseNote.content.replace(
/!\[(.*?)\]\((\/images\/.*?)\)/g,
(match, altText, imagePath) => {
return `![${altText}](https://twenty.com${imagePath})`;
},
);
return {
...releaseNote,
content: updatedContent,
publishedAt: getGithubReleaseDateFromReleaseNote(
githubReleases,
releaseNote.release,
releaseNote.date,
),
};
});
return Response.json(formattedReleasesNotes);
} catch (error: any) {
return new Response(`Github releases error: ${error?.message}`, {
status: 500,
});
}
}