Release 202505311149

This commit is contained in:
pluja
2025-05-31 11:49:38 +00:00
parent 9a68112e24
commit 0596df6cda
3 changed files with 33 additions and 15 deletions

View File

@@ -24,7 +24,7 @@ export const apiServiceActions = {
.optional(),
url: zodUrlOptionalProtocol.optional(),
}),
handler: async (input) => {
handler: async (input, context) => {
if (!input.id && !input.slug && !input.url) {
throw new ActionError({
code: 'BAD_REQUEST',
@@ -122,7 +122,7 @@ export const apiServiceActions = {
(url) => url + (service.referral ?? '')
),
tosUrls: service.tosUrls,
kycnotmeUrl: `https://kycnot.me/service/${service.slug}`,
kycnotmeUrl: new URL(`/service/${service.slug}`, context.url).href,
}
},
}),

View File

@@ -13,15 +13,38 @@ export async function makeAdminApiCallInfo<T extends Misc.JSON.Object>({
}) {
const fullPath = new URL(`/api/v1${path}`, baseUrl).href
const fetchProsmise = fetch(fullPath, {
method,
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(input),
}).then((res) => {
try {
return res.json() as Promise<Misc.JSON.Value>
} catch (errJson: unknown) {
console.error(errJson)
try {
return res.text()
} catch (errText: unknown) {
console.error(errText)
return ''
}
}
})
let output: Misc.JSON.Value = ''
try {
output = await fetchProsmise
} catch (err: unknown) {
console.error(err)
output = err instanceof Error ? err.message : String(err)
}
return {
method,
path,
fullPath,
input,
output: await fetch(fullPath, {
method,
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(input),
}).then((res) => res.json() as Promise<Misc.JSON.Value>),
output,
}
}

View File

@@ -2,6 +2,7 @@
import { Icon } from 'astro-icon/components'
import { Markdown } from 'astro-remote'
import { actions, isInputError } from 'astro:actions'
import { Code } from 'astro:components'
import { orderBy } from 'lodash-es'
import BadgeSmall from '../../../../components/BadgeSmall.astro'
@@ -1121,16 +1122,10 @@ const apiCalls = await Astro.locals.banners.try(
apiCalls.map((call) => (
<FormSubSection title={`${call.method} ${call.path}`}>
<p class="text-day-400 text-sm">Input:</p>
<pre
class="bg-night-800 border-night-500 text-day-300 overflow-x-auto rounded-md border p-3"
set:text={JSON.stringify(call.input, null, 2)}
/>
<Code code={JSON.stringify(call.input, null, 2)} lang="json" class="rounded-lg p-4 text-xs" />
<p class="text-day-400 text-sm">Output:</p>
<pre
class="bg-night-800 border-night-500 text-day-300 overflow-x-auto rounded-md border p-3"
set:text={JSON.stringify(call.output, null, 2)}
/>
<Code code={JSON.stringify(call.output, null, 2)} lang="json" class="rounded-lg p-4 text-xs" />
</FormSubSection>
))
}