diff --git a/src/examples/checkout/create.ts b/src/examples/checkout/create.ts index fb00a33..dda6cb1 100644 --- a/src/examples/checkout/create.ts +++ b/src/examples/checkout/create.ts @@ -1,18 +1,27 @@ /* eslint-disable @typescript-eslint/naming-convention */ import { v4 as uuidv4 } from 'uuid' import gm from '../gm.js' +import { GameMoneyError } from '../../index.js' const projectCheckoutId = uuidv4() -const response = await gm.createCheckout({ - projectId: projectCheckoutId, - user: '1', - ip: '72.14.192.0', - amount: 200.5, - wallet: '89123456789', - type: 'qiwi', - description: 'Payout for user account 250115125', - add_some_field: 'some value', -}) +try { + const response = await gm.createCheckout({ + projectId: projectCheckoutId, + user: '1', + ip: '72.14.192.0', + amount: 200.5, + wallet: '89123456789', + type: 'qiwi', + description: 'Payout for user account 250115125', + add_some_field: 'some value', + }) -console.log({ projectCheckoutId, response }) + console.log({ projectCheckoutId, response }) +} catch (error: unknown) { + if (error instanceof GameMoneyError) { + console.log('Error from GameMoney API:', error.message) + } else { + console.log('another error:', error) + } +} diff --git a/src/index.ts b/src/index.ts index bcd0be1..f258ab9 100644 --- a/src/index.ts +++ b/src/index.ts @@ -407,14 +407,20 @@ export interface TransferNotification { } type Payload = Record + +export class GameMoneyError extends Error { + constructor(message: string) { + super(message) + this.name = 'GameMoneyError' + } +} export default class GameMoney { - private readonly config: Config private readonly got = got.extend({ prefixUrl: 'https://paygate.gamemoney.com', responseType: 'json', }) - constructor(config: Config) { + constructor(private readonly config: Config) { this.config = config } @@ -456,7 +462,7 @@ export default class GameMoney { } if (response.state === 'error') { - throw new Error(response.error) + throw new GameMoneyError(response.error!) } return response