-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
WIP refactor to work with app router
- Loading branch information
1 parent
f6767e8
commit b29ad34
Showing
63 changed files
with
6,037 additions
and
4,185 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -36,3 +36,8 @@ yarn-error.log* | |
|
||
# typescript | ||
*.tsbuildinfo | ||
|
||
# packages | ||
node_modules/ | ||
|
||
.yarn |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
"use client"; | ||
|
||
import { useContext } from "react"; | ||
import { AppContext } from "../../context/AppContext"; | ||
import Link from "next/link"; | ||
import { useTranslation } from "../../utils/helpers"; | ||
|
||
type Props = { | ||
locale: string | ||
} | ||
const Element = ({locale}: Props) => { | ||
const {translation} = useTranslation(locale); | ||
const {items} = useContext(AppContext); | ||
return <> | ||
{items.length > 0 && | ||
<div className='h-10'> | ||
<Link className="btn" href={'/contact'} passHref> | ||
{translation.next} | ||
</Link> | ||
</div> | ||
} | ||
</> | ||
} | ||
|
||
export default Element |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
import { NextRequest, NextResponse } from "next/server"; | ||
import paytrailService from "@/utils/paytrail"; | ||
import { updateOrderState } from "../createPayment/route"; | ||
|
||
const handler = async (request: NextRequest) => { | ||
if (request.method !== 'GET') return NextResponse.json({}, {status: 405}); | ||
const query = request.nextUrl.searchParams; | ||
const queryObject = Object.fromEntries(query.entries()) | ||
try { | ||
const result = paytrailService.verifyPayment(queryObject); | ||
if (!result) return NextResponse.json({}, {status: 400}); | ||
await updateOrderState( | ||
Number(query.get('checkout-reference')), | ||
query.get('checkout-status') || 'fail', | ||
query.get('checkout-transaction-id') || undefined, | ||
); | ||
return NextResponse.json({}, {status: 200}); | ||
} catch(error) { | ||
console.error(error); | ||
return NextResponse.json({}, {status: 500}); | ||
} | ||
} | ||
|
||
export default handler |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
"use client"; | ||
|
||
import { useContext, useEffect, useRef } from "react"; | ||
import { AppContext } from "@/context/AppContext"; | ||
import Link from "next/link"; | ||
import { useTranslation } from "@/utils/helpers"; | ||
|
||
type Props = { | ||
locale: string; | ||
isValid: boolean; | ||
paymentStatus: string; | ||
content: any; | ||
} | ||
|
||
const CallbackResult = ({ locale, isValid, paymentStatus, content}: Props) => { | ||
const {reset} = useContext(AppContext); | ||
const {translation} = useTranslation(locale); | ||
const handled = useRef(false); | ||
useEffect(() => { | ||
if(isValid && paymentStatus === 'ok' && !handled.current) { | ||
handled.current = true; | ||
reset(); | ||
} | ||
},[isValid, paymentStatus, reset]); | ||
let result = <p>{content.attributes.onSuccess}</p> | ||
if(isValid === undefined) return <p>Loading...</p> | ||
if (!isValid) result = <div> | ||
{content.attributes.onError} <Link className='text-primary-900 dark:text-primary-100 underline' href="/summary"> | ||
{translation.backToOrder} | ||
</Link> | ||
</div> | ||
else if (paymentStatus !== 'ok') result = <div> | ||
{content.attributes.onCancel} <Link href="/summary"> | ||
<a className='text-primary-900 dark:text-primary-100 underline'>{translation.backToOrder}</a> | ||
</Link> | ||
</div> | ||
return ( | ||
<div className='container text-primary-900 dark:text-primary-100 max-w-3xl bg-secondary-50 dark:bg-secondary-800 mx-auto rounded shadow-md p-2 pt-4 sm:p-8'> | ||
{result} | ||
</div> | ||
); | ||
} | ||
|
||
export default CallbackResult; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
import paytrailService from '@/utils/paytrail'; | ||
|
||
import { serverFetchAPI } from '@/lib/serverApi'; | ||
import { CallbackPageFields } from '@/utils/models'; | ||
|
||
import { useParams } from 'next/navigation'; | ||
import Result from './Result'; | ||
|
||
type CheckoutStatus = 'new' | 'ok' | 'fail' | 'pending' | 'delayed'; | ||
|
||
const getContent = async (locale: string) => { | ||
const content = await serverFetchAPI<CallbackPageFields>('/callback-page',{},{ | ||
locale: locale, | ||
}); | ||
return content; | ||
} | ||
|
||
type Props = { | ||
params: { | ||
locale: string | ||
} | ||
} | ||
|
||
const CallbackPage = async ({params: {locale}}: Props) => { | ||
const params = useParams() as Record<string,number | string>; | ||
const isValid = paytrailService.verifyPayment(params); | ||
const paymentStatus = params['checkout-status'] as CheckoutStatus; | ||
const content = await getContent(locale); | ||
|
||
return <Result | ||
locale={locale} | ||
isValid={isValid} | ||
paymentStatus={paymentStatus} | ||
content={content}/> | ||
} | ||
|
||
export default CallbackPage |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
import Component from "./Component"; | ||
|
||
|
||
const ContactPage = () => { | ||
return <div> | ||
<Component></Component> | ||
</div> | ||
} | ||
|
||
export default ContactPage; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
import Form from "./ContactForm"; | ||
|
||
type Props = { | ||
params: { | ||
locale: string | ||
} | ||
} | ||
|
||
const ContactPage = ({params: {locale}}:Props) => { | ||
return <Form locale={locale}/> | ||
} | ||
|
||
export default ContactPage; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.