legalgo-FE-reactrouter/app/routes/actions.log.ads.$id.ts

56 lines
1.3 KiB
TypeScript
Raw Normal View History

import { data } from 'react-router'
import { XiorError } from 'xior'
import { createLogAdsRequest } from '~/apis/news/create-log-ads'
import { handleCookie } from '~/libs/cookies'
import type { Route } from './+types/actions.log.ads.$id'
export const action = async ({ request, params }: Route.ActionArgs) => {
const userAgent = request.headers.get('user-agent')
const ipAddress =
request.headers.get('cf-connecting-ip') ||
request.headers.get('x-forwarded-for') ||
'localhost'
const { userToken: accessToken } = await handleCookie(request)
const { id } = params
try {
const { data: logsData } = await createLogAdsRequest({
id,
accessToken,
userAgent,
ipAddress,
})
return data(
{
success: true,
logsData,
},
{
status: 200,
statusText: 'OK',
},
)
} catch (error) {
if (error instanceof XiorError) {
return data(
{
success: false,
message: error?.response?.data?.error?.message || error.message,
},
{
status: error?.response?.status || 500,
},
)
}
return data(
{
success: false,
message: 'Internal server error',
},
{ status: 500 },
)
}
}