Skip to content

Instantly share code, notes, and snippets.

View Nelfimov's full-sized avatar

Nikita Elfimov Nelfimov

View GitHub Profile
import { DateTime } from 'luxon'
import { Inject } from 'typedi'
import { Service } from 'typedi'
import { InjectRepository } from 'typeorm-typedi-extensions'
import { EVENT } from '../constants/socket-constants'
import { SubscriptionRepository } from '../db/subscription/subscription-repository'
import { UserRepository } from '../db/user/user-repository'
import { PaddleApiService } from './paddle-api-service'
import { SocketService } from './socket-service'
import { Service } from 'typedi'
import { plainToClass } from 'class-transformer'
import AxiosService from '../utils/axios-service'
import { SubscriptionPaddleDto } from '../transformer/subscription-paddle-dto'
interface ISubscriptionUsersUpdate {
plan_id?: string
quantity: string
passthrough: string
import { Service } from 'typedi'
import Logger from '../loaders/logger'
import { SUBSCRIBE_STATUSES } from '../constants/paddle-constants'
import { EVENT } from '../constants/socket-constants'
import { CheckoutService } from './checkout-service'
import { SocketService } from './socket-service'
import { UserService } from './user-service'
import { saveJsonParse } from '../utils/app-service'
@Nelfimov
Nelfimov / webhook.ts
Created March 25, 2024 14:58
Paddle webhook
import bodyParser from 'body-parser'
import { Router } from 'express'
import { ERROR_TRELLO_CODE } from '../../../constants/error-constants'
import { PaddleActionService } from '../../../services/paddle-action-service'
import { TrelloActionService } from '../../../services/trello-action-service'
import { WebhookService } from '../../../services/webhook-service'
import { scopedContainer } from '../../../utils/scope-service'
import { isPaddleWebhookMiddleware } from '../../middlewares/is-paddle-webhook-middleware'
import { isTrelloWebhook } from '../../middlewares/is-trello-webhook-middleware'
@Nelfimov
Nelfimov / is-paddle-webhook-middleware.ts
Created March 25, 2024 14:57
Paddle webhook middleware
import type { RequestHandler } from 'express'
import { createVerify } from 'crypto'
import { serialize } from 'php-serialize'
function ksort(obj: any) {
return Object.entries(obj)
.sort((a: any, b: any) => a[0] - b[0])
.reduce((acc: any, item: any) => {
const [key, value] = item
import React from 'react'
import { FormattedMessage } from 'react-intl'
import { memo } from 'react'
import { Box } from '@ui/layout'
import { Link } from '@ui/link'
import { Space } from '@ui/text'
import { Text } from '@ui/text'
export const AlreadyRegisteredPrompt: React.FC = memo(() => (
/**
* @jest-environment jsdom
*/
import { act } from '@testing-library/react'
import { renderHook } from '@testing-library/react'
import { useFocus } from './use-focus.hook'
describe('Use focus hook', () => {
/**
* @jest-environment jsdom
*/
import { RenderResult } from '@testing-library/react'
import { matchers } from '@emotion/jest'
import { render } from '@testing-library/react'
import React from 'react'
/**
* @jest-environment jsdom
*/
import { RenderResult } from '@testing-library/react'
import { matchers } from '@emotion/jest'
import { render } from '@testing-library/react'
import React from 'react'
/**
* @jest-environment jsdom
*/
import { ApolloProvider } from '@apollo/client'
import { RenderResult } from '@testing-library/react'
import { act } from '@testing-library/react'
import { render } from '@testing-library/react'
import { screen } from '@testing-library/react'
import { fireEvent } from '@testing-library/react'