diff --git a/src/data.functions/feedback.service.ts b/src/data.functions/feedback.service.ts index 5fc82ee..b94572b 100644 --- a/src/data.functions/feedback.service.ts +++ b/src/data.functions/feedback.service.ts @@ -1,12 +1,14 @@ import { createFiderClient } from "@strootje/fider-api"; -import { createMiddleware, createServerFn } from "@tanstack/solid-start"; +import { createMiddleware, createServerFn, createServerOnlyFn } from "@tanstack/solid-start"; import * as v from "valibot"; import { getUserMiddleware } from "./user.service.ts"; const appTag = "app-later"; -const fider = createFiderClient({ - baseUri: "https://feedback.strooware.nl", - token: "1Wfz1xfqff2GXEkhwCekzStehPwIJpDLDvPDV6Ht0XLXyh5AMHb0NZu9KcU4tmBk", +const fider = createServerOnlyFn(() => { + return createFiderClient({ + baseUri: "https://feedback.strooware.nl", + token: import.meta.env.FIDER_API_TOKEN, + }); }); const getFeedbackUserMiddleware = createMiddleware().middleware([ @@ -15,7 +17,7 @@ const getFeedbackUserMiddleware = createMiddleware().middleware([ context: { user }, next, }) => { - const { id: feedbackUserId } = await fider.users.create({ + const { id: feedbackUserId } = await fider().users.create({ email: user.email, name: user.email, reference: user.id, @@ -33,7 +35,7 @@ export const getFeedbackPosts = createServerFn().middleware([ ]).handler(async ({ context: { feedbackUserId }, }) => { - return await fider.as(feedbackUserId).posts.list({ + return await fider().as(feedbackUserId).posts.list({ tags: [appTag], }); }); @@ -47,7 +49,7 @@ export const addFeedbackPost = createServerFn().inputValidator(v.object({ context: { feedbackUserId }, data: post, }) => { - const newPost = await fider.as(feedbackUserId).posts.create({ + const newPost = await fider().as(feedbackUserId).posts.create({ title: post.title, }); @@ -55,7 +57,7 @@ export const addFeedbackPost = createServerFn().inputValidator(v.object({ throw newPost.error; } - await fider.as(feedbackUserId).posts(newPost.value.id).addTag({ + await fider().as(feedbackUserId).posts(newPost.value.id).addTag({ tag: appTag, }); @@ -72,8 +74,8 @@ export const upvoteFeedbackPost = createServerFn().inputValidator(v.object({ data: { remove, postId }, }) => { if (remove) { - await fider.as(feedbackUserId).posts(postId).removeVote({}); + await fider().as(feedbackUserId).posts(postId).removeVote({}); } else { - await fider.as(feedbackUserId).posts(postId).addVote({}); + await fider().as(feedbackUserId).posts(postId).addVote({}); } }); diff --git a/src/data.functions/mailing-list.service.ts b/src/data.functions/mailing-list.service.ts index 06c2287..00b6977 100644 --- a/src/data.functions/mailing-list.service.ts +++ b/src/data.functions/mailing-list.service.ts @@ -1,12 +1,14 @@ import { createListmonkClient } from "@strootje/listmonk-api"; -import { createMiddleware, createServerFn } from "@tanstack/solid-start"; +import { createMiddleware, createServerFn, createServerOnlyFn } from "@tanstack/solid-start"; import * as v from "valibot"; import { getUserMiddleware, updateUser } from "./user.service.ts"; -const listmonk = createListmonkClient({ - baseUri: "https://lists.strooware.nl", - token: "oIuz1XoK5G6Uj1n93efZGR5oaNw2TV4v", - login: "later", +const listmonk = createServerOnlyFn(() => { + return createListmonkClient({ + baseUri: "https://lists.strooware.nl", + token: import.meta.env.LISTMONK_API_TOKEN, + login: import.meta.env.LISTMONK_API_LOGIN, + }); }); const getSubscriberMiddleware = createMiddleware().middleware([ @@ -18,12 +20,12 @@ const getSubscriberMiddleware = createMiddleware().middleware([ if (user.subscriberId) { return await next({ context: { - subscriber: await listmonk.subscribers(user.subscriberId).get({}), + subscriber: await listmonk().subscribers(user.subscriberId).get({}), }, }); } - const subscriber = await listmonk.subscribers.new({ + const subscriber = await listmonk().subscribers.new({ email: user.email, name: user.name, }); @@ -56,7 +58,7 @@ export const updateSubscriber = createServerFn().middleware([ context: { subscriber }, data: { listId, subscribe }, }) => { - return listmonk.subscribers(subscriber.id).update({ + return listmonk().subscribers(subscriber.id).update({ ...subscriber, lists: [ ...subscriber.lists.filter((p) => subscribe || p.id !== listId).map((p) => p.id), @@ -66,7 +68,7 @@ export const updateSubscriber = createServerFn().middleware([ }); export const getMailingLists = createServerFn().handler(async () => { - const lists = await listmonk.lists.get({ + const lists = await listmonk().lists.get({ tags: ["app-later"], }); diff --git a/src/virtual.d.ts b/src/virtual.d.ts index 1b72917..5151b62 100644 --- a/src/virtual.d.ts +++ b/src/virtual.d.ts @@ -8,6 +8,11 @@ interface ImportMetaEnv { readonly PROD: boolean; readonly DEV: boolean; readonly SSR: boolean; + + readonly SENTRY_TOKEN: string; + readonly FIDER_API_TOKEN: string; + readonly LISTMONK_API_TOKEN: string; + readonly LISTMONK_API_LOGIN: string; } interface ImportMeta {