refactor: standardize access token variable naming across routes
This commit is contained in:
parent
f423f3e1c0
commit
1ce5a2130b
27
app/apis/admin/delete-ads.ts
Normal file
27
app/apis/admin/delete-ads.ts
Normal file
@ -0,0 +1,27 @@
|
||||
import { z } from 'zod'
|
||||
|
||||
import { HttpServer, type THttpServer } from '~/libs/http-server'
|
||||
import type { TAdsSchema } from '~/pages/form-advertisements'
|
||||
|
||||
const deleteAdsResponseSchema = z.object({
|
||||
data: z.object({
|
||||
Message: z.string(),
|
||||
}),
|
||||
})
|
||||
|
||||
type TParameters = {
|
||||
id: TAdsSchema['id']
|
||||
} & THttpServer
|
||||
|
||||
export const deleteAdsRequest = async (parameters: TParameters) => {
|
||||
const { id, ...restParameters } = parameters
|
||||
try {
|
||||
const { data } = await HttpServer(restParameters).delete(
|
||||
`/api/ads/${id}/delete`,
|
||||
)
|
||||
return deleteAdsResponseSchema.parse(data)
|
||||
} catch (error) {
|
||||
// eslint-disable-next-line unicorn/no-useless-promise-resolve-reject
|
||||
return Promise.reject(error)
|
||||
}
|
||||
}
|
||||
@ -7,11 +7,9 @@ import { FormContentsPage } from '~/pages/form-contents'
|
||||
import type { Route } from './+types/_admin.lg-admin._dashboard.contents.update.$slug'
|
||||
|
||||
export const loader = async ({ request, params }: Route.LoaderArgs) => {
|
||||
const { staffToken } = await handleCookie(request)
|
||||
const { data: newsData } = await getNewsBySlug({
|
||||
accessToken: staffToken,
|
||||
slug: params.slug,
|
||||
})
|
||||
const { staffToken: accessToken } = await handleCookie(request)
|
||||
const { slug } = params
|
||||
const { data: newsData } = await getNewsBySlug({ accessToken, slug })
|
||||
return { newsData }
|
||||
}
|
||||
|
||||
|
||||
@ -7,10 +7,8 @@ import { UsersPage } from '~/pages/dashboard-users'
|
||||
import type { Route } from './+types/_admin.lg-admin._dashboard.users._index'
|
||||
|
||||
export const loader = async ({ request }: Route.LoaderArgs) => {
|
||||
const { staffToken } = await handleCookie(request)
|
||||
const { data: usersData } = await getUsers({
|
||||
accessToken: staffToken,
|
||||
})
|
||||
const { staffToken: accessToken } = await handleCookie(request)
|
||||
const { data: usersData } = await getUsers({ accessToken })
|
||||
|
||||
return { usersData }
|
||||
}
|
||||
|
||||
@ -10,16 +10,14 @@ import { setStaffLogoutHeaders } from '~/libs/logout-header.server'
|
||||
import type { Route } from './+types/_admin.lg-admin'
|
||||
|
||||
export const loader = async ({ request }: Route.LoaderArgs) => {
|
||||
const { staffToken } = await handleCookie(request)
|
||||
const { staffToken: accessToken } = await handleCookie(request)
|
||||
const { pathname } = new URL(request.url)
|
||||
const isAuthPage = AUTH_PAGES.includes(pathname)
|
||||
let staffData
|
||||
|
||||
if (staffToken) {
|
||||
if (accessToken) {
|
||||
try {
|
||||
const { data } = await getStaff({
|
||||
accessToken: staffToken,
|
||||
})
|
||||
const { data } = await getStaff({ accessToken })
|
||||
staffData = data
|
||||
} catch (error) {
|
||||
if (error instanceof XiorError && error.response?.status === 401) {
|
||||
@ -28,11 +26,11 @@ export const loader = async ({ request }: Route.LoaderArgs) => {
|
||||
}
|
||||
}
|
||||
|
||||
if (!isAuthPage && !staffToken) {
|
||||
if (!isAuthPage && !accessToken) {
|
||||
throw redirect('/lg-admin/login')
|
||||
}
|
||||
|
||||
if (isAuthPage && staffToken) {
|
||||
if (isAuthPage && accessToken) {
|
||||
throw redirect('/lg-admin')
|
||||
}
|
||||
|
||||
|
||||
@ -10,11 +10,9 @@ import { NewsDetailPage } from '~/pages/news-detail'
|
||||
import type { Route } from './+types/_news.detail.$slug'
|
||||
|
||||
export const loader = async ({ request, params }: Route.LoaderArgs) => {
|
||||
const { userToken } = await handleCookie(request)
|
||||
const { data: newsDetailData } = await getNewsBySlug({
|
||||
slug: params.slug,
|
||||
accessToken: userToken,
|
||||
})
|
||||
const { userToken: accessToken } = await handleCookie(request)
|
||||
const { slug } = params
|
||||
const { data: newsDetailData } = await getNewsBySlug({ slug, accessToken })
|
||||
const { data: categoriesData } = await getCategories()
|
||||
const beritaCode = 'berita'
|
||||
const beritaCategory = categoriesData.find(
|
||||
|
||||
@ -13,13 +13,11 @@ import { setUserLogoutHeaders } from '~/libs/logout-header.server'
|
||||
import type { Route } from './+types/_news'
|
||||
|
||||
export const loader = async ({ request }: Route.LoaderArgs) => {
|
||||
const { userToken } = await handleCookie(request)
|
||||
const { userToken: accessToken } = await handleCookie(request)
|
||||
let userData
|
||||
if (userToken) {
|
||||
if (accessToken) {
|
||||
try {
|
||||
const { data } = await getUser({
|
||||
accessToken: userToken,
|
||||
})
|
||||
const { data } = await getUser({ accessToken })
|
||||
userData = data
|
||||
} catch (error) {
|
||||
if (error instanceof XiorError && error.response?.status === 401) {
|
||||
|
||||
@ -10,7 +10,7 @@ import { adsSchema, type TAdsSchema } from '~/pages/form-advertisements'
|
||||
import type { Route } from './+types/actions.admin.advertisements.create'
|
||||
|
||||
export const action = async ({ request }: Route.ActionArgs) => {
|
||||
const { staffToken } = await handleCookie(request)
|
||||
const { staffToken: accessToken } = await handleCookie(request)
|
||||
try {
|
||||
const {
|
||||
errors,
|
||||
@ -26,15 +26,12 @@ export const action = async ({ request }: Route.ActionArgs) => {
|
||||
return data({ success: false, errors, defaultValues }, { status: 400 })
|
||||
}
|
||||
|
||||
const { data: categoryData } = await createAdsRequest({
|
||||
accessToken: staffToken,
|
||||
payload,
|
||||
})
|
||||
const { data: adsData } = await createAdsRequest({ accessToken, payload })
|
||||
|
||||
return data(
|
||||
{
|
||||
success: true,
|
||||
categoryData,
|
||||
adsData,
|
||||
},
|
||||
{
|
||||
status: 200,
|
||||
|
||||
45
app/routes/actions.admin.advertisements.delete.$id.ts
Normal file
45
app/routes/actions.admin.advertisements.delete.$id.ts
Normal file
@ -0,0 +1,45 @@
|
||||
import { data } from 'react-router'
|
||||
import { XiorError } from 'xior'
|
||||
|
||||
import { deleteAdsRequest } from '~/apis/admin/delete-ads'
|
||||
import { handleCookie } from '~/libs/cookies'
|
||||
|
||||
import type { Route } from './+types/actions.admin.advertisements.create'
|
||||
|
||||
export const action = async ({ request, params }: Route.ActionArgs) => {
|
||||
const { staffToken: accessToken } = await handleCookie(request)
|
||||
const { id } = params
|
||||
try {
|
||||
const { data: adsData } = await deleteAdsRequest({ accessToken, id })
|
||||
|
||||
return data(
|
||||
{
|
||||
success: true,
|
||||
adsData,
|
||||
},
|
||||
{
|
||||
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 },
|
||||
)
|
||||
}
|
||||
}
|
||||
@ -10,7 +10,7 @@ import { categorySchema, type TCategorySchema } from '~/pages/form-category'
|
||||
import type { Route } from './+types/actions.admin.categories.create'
|
||||
|
||||
export const action = async ({ request }: Route.ActionArgs) => {
|
||||
const { staffToken } = await handleCookie(request)
|
||||
const { staffToken: accessToken } = await handleCookie(request)
|
||||
try {
|
||||
const {
|
||||
errors,
|
||||
@ -27,7 +27,7 @@ export const action = async ({ request }: Route.ActionArgs) => {
|
||||
}
|
||||
|
||||
const { data: categoryData } = await createCategoryRequest({
|
||||
accessToken: staffToken,
|
||||
accessToken,
|
||||
payload,
|
||||
})
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@ import { categorySchema, type TCategorySchema } from '~/pages/form-category'
|
||||
import type { Route } from './+types/actions.admin.categories.update'
|
||||
|
||||
export const action = async ({ request }: Route.ActionArgs) => {
|
||||
const { staffToken } = await handleCookie(request)
|
||||
const { staffToken: accessToken } = await handleCookie(request)
|
||||
try {
|
||||
const {
|
||||
errors,
|
||||
@ -27,7 +27,7 @@ export const action = async ({ request }: Route.ActionArgs) => {
|
||||
}
|
||||
|
||||
const { data: categoryData } = await updateCategoryRequest({
|
||||
accessToken: staffToken,
|
||||
accessToken,
|
||||
payload,
|
||||
})
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@ import { contentSchema, type TContentSchema } from '~/pages/form-contents'
|
||||
import type { Route } from './+types/actions.admin.contents.create'
|
||||
|
||||
export const action = async ({ request }: Route.ActionArgs) => {
|
||||
const { staffToken } = await handleCookie(request)
|
||||
const { staffToken: accessToken } = await handleCookie(request)
|
||||
try {
|
||||
const {
|
||||
errors,
|
||||
@ -26,10 +26,7 @@ export const action = async ({ request }: Route.ActionArgs) => {
|
||||
return data({ success: false, errors, defaultValues }, { status: 400 })
|
||||
}
|
||||
|
||||
const { data: newsData } = await createNewsRequest({
|
||||
accessToken: staffToken,
|
||||
payload,
|
||||
})
|
||||
const { data: newsData } = await createNewsRequest({ accessToken, payload })
|
||||
|
||||
return data(
|
||||
{
|
||||
|
||||
@ -10,7 +10,7 @@ import { contentSchema, type TContentSchema } from '~/pages/form-contents'
|
||||
import type { Route } from './+types/actions.admin.contents.update'
|
||||
|
||||
export const action = async ({ request }: Route.ActionArgs) => {
|
||||
const { staffToken } = await handleCookie(request)
|
||||
const { staffToken: accessToken } = await handleCookie(request)
|
||||
try {
|
||||
const {
|
||||
errors,
|
||||
@ -26,10 +26,7 @@ export const action = async ({ request }: Route.ActionArgs) => {
|
||||
return data({ success: false, errors, defaultValues }, { status: 400 })
|
||||
}
|
||||
|
||||
const { data: newsData } = await updateNewsRequest({
|
||||
accessToken: staffToken,
|
||||
payload,
|
||||
})
|
||||
const { data: newsData } = await updateNewsRequest({ accessToken, payload })
|
||||
|
||||
return data(
|
||||
{
|
||||
|
||||
@ -27,13 +27,9 @@ export const action = async ({ request }: Route.ActionArgs) => {
|
||||
}
|
||||
|
||||
const { data: loginData } = await staffLoginRequest(payload)
|
||||
const { token } = loginData
|
||||
const { data: staffData } = await getStaff({
|
||||
accessToken: token,
|
||||
})
|
||||
const tokenCookie = generateStaffTokenCookie({
|
||||
token,
|
||||
})
|
||||
const { token: accessToken } = loginData
|
||||
const { data: staffData } = await getStaff({ accessToken })
|
||||
const tokenCookie = generateStaffTokenCookie({ accessToken })
|
||||
|
||||
const headers = new Headers()
|
||||
headers.append('Set-Cookie', await tokenCookie)
|
||||
|
||||
@ -13,7 +13,7 @@ import {
|
||||
import type { Route } from './+types/actions.admin.subscribe-plan.create'
|
||||
|
||||
export const action = async ({ request }: Route.ActionArgs) => {
|
||||
const { staffToken } = await handleCookie(request)
|
||||
const { staffToken: accessToken } = await handleCookie(request)
|
||||
try {
|
||||
const {
|
||||
errors,
|
||||
@ -30,7 +30,7 @@ export const action = async ({ request }: Route.ActionArgs) => {
|
||||
}
|
||||
|
||||
const { data: subscribePlanData } = await createSubscribePlanRequest({
|
||||
accessToken: staffToken,
|
||||
accessToken,
|
||||
payload,
|
||||
})
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ import {
|
||||
import type { Route } from './+types/actions.admin.subscribe-plan.update'
|
||||
|
||||
export const action = async ({ request }: Route.ActionArgs) => {
|
||||
const { staffToken } = await handleCookie(request)
|
||||
const { staffToken: accessToken } = await handleCookie(request)
|
||||
try {
|
||||
const {
|
||||
errors,
|
||||
@ -30,7 +30,7 @@ export const action = async ({ request }: Route.ActionArgs) => {
|
||||
}
|
||||
|
||||
const { data: subscribePlanData } = await updateSubscribePlanRequest({
|
||||
accessToken: staffToken,
|
||||
accessToken,
|
||||
payload,
|
||||
})
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@ import { tagSchema, type TTagSchema } from '~/pages/form-tag'
|
||||
import type { Route } from './+types/actions.admin.tags.create'
|
||||
|
||||
export const action = async ({ request }: Route.ActionArgs) => {
|
||||
const { staffToken } = await handleCookie(request)
|
||||
const { staffToken: accessToken } = await handleCookie(request)
|
||||
try {
|
||||
const {
|
||||
errors,
|
||||
@ -26,10 +26,7 @@ export const action = async ({ request }: Route.ActionArgs) => {
|
||||
return data({ success: false, errors, defaultValues }, { status: 400 })
|
||||
}
|
||||
|
||||
const { data: tagsData } = await createTagsRequest({
|
||||
accessToken: staffToken,
|
||||
payload,
|
||||
})
|
||||
const { data: tagsData } = await createTagsRequest({ accessToken, payload })
|
||||
|
||||
return data(
|
||||
{
|
||||
|
||||
@ -10,7 +10,7 @@ import { tagSchema, type TTagSchema } from '~/pages/form-tag'
|
||||
import type { Route } from './+types/actions.admin.tags.update'
|
||||
|
||||
export const action = async ({ request }: Route.ActionArgs) => {
|
||||
const { staffToken } = await handleCookie(request)
|
||||
const { staffToken: accessToken } = await handleCookie(request)
|
||||
try {
|
||||
const {
|
||||
errors,
|
||||
@ -26,10 +26,7 @@ export const action = async ({ request }: Route.ActionArgs) => {
|
||||
return data({ success: false, errors, defaultValues }, { status: 400 })
|
||||
}
|
||||
|
||||
const { data: tagData } = await updateTagRequest({
|
||||
accessToken: staffToken,
|
||||
payload,
|
||||
})
|
||||
const { data: tagData } = await updateTagRequest({ accessToken, payload })
|
||||
|
||||
return data(
|
||||
{
|
||||
|
||||
@ -10,7 +10,7 @@ import { handleCookie } from '~/libs/cookies'
|
||||
import type { Route } from './+types/actions.admin.upload'
|
||||
|
||||
export const action = async ({ request }: Route.ActionArgs) => {
|
||||
const { staffToken } = await handleCookie(request)
|
||||
const { staffToken: accessToken } = await handleCookie(request)
|
||||
|
||||
try {
|
||||
const {
|
||||
@ -29,7 +29,7 @@ export const action = async ({ request }: Route.ActionArgs) => {
|
||||
|
||||
const { data: uploadData } = await uploadFileRequest({
|
||||
payload,
|
||||
accessToken: staffToken,
|
||||
accessToken,
|
||||
})
|
||||
|
||||
return data(
|
||||
|
||||
@ -27,13 +27,9 @@ export const action = async ({ request }: Route.ActionArgs) => {
|
||||
}
|
||||
|
||||
const { data: loginData } = await userLoginRequest(payload)
|
||||
const { token } = loginData
|
||||
const { data: userData } = await getUser({
|
||||
accessToken: token,
|
||||
})
|
||||
const tokenCookie = generateUserTokenCookie({
|
||||
token,
|
||||
})
|
||||
const { token: accessToken } = loginData
|
||||
const { data: userData } = await getUser({ accessToken })
|
||||
const tokenCookie = generateUserTokenCookie({ accessToken })
|
||||
|
||||
const headers = new Headers()
|
||||
headers.append('Set-Cookie', await tokenCookie)
|
||||
|
||||
@ -30,13 +30,9 @@ export const action = async ({ request }: Route.ActionArgs) => {
|
||||
}
|
||||
|
||||
const { data: registerData } = await userRegisterRequest(payload)
|
||||
const { token } = registerData
|
||||
const { data: userData } = await getUser({
|
||||
accessToken: token,
|
||||
})
|
||||
const tokenCookie = generateUserTokenCookie({
|
||||
token,
|
||||
})
|
||||
const { token: accessToken } = registerData
|
||||
const { data: userData } = await getUser({ accessToken })
|
||||
const tokenCookie = generateUserTokenCookie({ accessToken })
|
||||
|
||||
const headers = new Headers()
|
||||
headers.append('Set-Cookie', await tokenCookie)
|
||||
|
||||
@ -13,7 +13,7 @@ import { handleCookie } from '~/libs/cookies'
|
||||
import type { Route } from './+types/actions.subscribe'
|
||||
|
||||
export const action = async ({ request }: Route.ActionArgs) => {
|
||||
const { userToken } = await handleCookie(request)
|
||||
const { userToken: accessToken } = await handleCookie(request)
|
||||
try {
|
||||
const {
|
||||
errors,
|
||||
@ -32,9 +32,7 @@ export const action = async ({ request }: Route.ActionArgs) => {
|
||||
// TODO: implement subscribe
|
||||
console.log('payload', payload) // eslint-disable-line no-console
|
||||
|
||||
const { data: userData } = await getUser({
|
||||
accessToken: userToken,
|
||||
})
|
||||
const { data: userData } = await getUser({ accessToken })
|
||||
|
||||
return data(
|
||||
{
|
||||
|
||||
@ -6,33 +6,33 @@ import {
|
||||
} from '~/libs/cookie.server'
|
||||
|
||||
type TTokenCookie = {
|
||||
token: string
|
||||
accessToken: string
|
||||
}
|
||||
|
||||
export const generateUserTokenCookie = (parameters: TTokenCookie) => {
|
||||
const { token } = parameters
|
||||
const { accessToken } = parameters
|
||||
|
||||
const decodedToken = decodeJwt(token)
|
||||
const decodedToken = decodeJwt(accessToken)
|
||||
const decodedTokenExp = decodedToken.exp
|
||||
const expirationDate = decodedTokenExp
|
||||
? new Date(decodedTokenExp * 1000)
|
||||
: undefined
|
||||
|
||||
return userTokenCookieConfig.serialize(token, {
|
||||
return userTokenCookieConfig.serialize(accessToken, {
|
||||
expires: expirationDate,
|
||||
})
|
||||
}
|
||||
|
||||
export const generateStaffTokenCookie = (parameters: TTokenCookie) => {
|
||||
const { token } = parameters
|
||||
const { accessToken } = parameters
|
||||
|
||||
const decodedToken = decodeJwt(token)
|
||||
const decodedToken = decodeJwt(accessToken)
|
||||
const decodedTokenExp = decodedToken.exp
|
||||
const expirationDate = decodedTokenExp
|
||||
? new Date(decodedTokenExp * 1000)
|
||||
: undefined
|
||||
|
||||
return staffTokenCookieConfig.serialize(token, {
|
||||
return staffTokenCookieConfig.serialize(accessToken, {
|
||||
expires: expirationDate,
|
||||
})
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user