Skip to content

Commit b48e6b0

Browse files
committed
feat: add Zendesk ticket integration
1 parent a3e7b84 commit b48e6b0

File tree

15 files changed

+468
-8
lines changed

15 files changed

+468
-8
lines changed

apps/api-harmonization/src/app.module.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ export const AuthModuleBaseModule = AuthModule.Module.register(AppConfig);
7878

7979
@Module({
8080
imports: [
81-
HttpModule,
81+
HttpModule.register({ global: true }),
8282
LoggerModule,
8383
ConfigModule.forRoot({
8484
isGlobal: true,

packages/configs/integrations/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
"dependencies": {
1919
"@o2s/framework": "*",
2020
"@o2s/integrations.mocked": "*",
21-
"@o2s/integrations.strapi-cms": "*"
21+
"@o2s/integrations.strapi-cms": "*",
22+
"@o2s/integrations.zendesk": "*"
2223
},
2324
"devDependencies": {
2425
"@o2s/eslint-config": "*",
Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
import { Config, Integration } from '@o2s/integrations.mocked/integration';
1+
import { Config as ZendeskConfig, Integration as ZendeskIntegration } from '@o2s/integrations.zendesk/integration';
22

33
import { ApiConfig } from '@o2s/framework/modules';
44

5-
export const TicketsIntegrationConfig: ApiConfig['integrations']['tickets'] = Config.tickets!;
6-
7-
export import Service = Integration.Tickets.Service;
8-
export import Request = Integration.Tickets.Request;
9-
export import Model = Integration.Tickets.Model;
5+
export const TicketsIntegrationConfig: ApiConfig['integrations']['tickets'] = ZendeskConfig.tickets!;
6+
export import Service = ZendeskIntegration.Tickets.Service;
7+
export import Request = ZendeskIntegration.Tickets.Request;
8+
export import Model = ZendeskIntegration.Tickets.Model;
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
2+
# compiled output
3+
/dist
4+
/node_modules
5+
/build
6+
7+
# Logs
8+
logs
9+
*.log
10+
npm-debug.log*
11+
pnpm-debug.log*
12+
yarn-debug.log*
13+
yarn-error.log*
14+
lerna-debug.log*
15+
16+
# OS
17+
.DS_Store
18+
19+
# Tests
20+
/coverage
21+
/.nyc_output
22+
23+
# IDEs and editors
24+
/.idea
25+
.project
26+
.classpath
27+
.c9/
28+
*.launch
29+
.settings/
30+
*.sublime-workspace
31+
32+
# IDE - VSCode
33+
.vscode/*
34+
!.vscode/settings.json
35+
!.vscode/tasks.json
36+
!.vscode/launch.json
37+
!.vscode/extensions.json
38+
39+
# dotenv environment variable files
40+
.env
41+
.env.development.local
42+
.env.test.local
43+
.env.production.local
44+
45+
# temp directory
46+
.temp
47+
.tmp
48+
49+
# Runtime data
50+
pids
51+
*.pid
52+
*.seed
53+
*.pid.lock
54+
55+
# Diagnostic reports (https://nodejs.org/api/report.html)
56+
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import apiConfig from '@o2s/prettier-config/api.mjs';
2+
3+
/**
4+
* @see https://prettier.io/docs/en/configuration.html
5+
* @type {import("prettier").Config}
6+
*/
7+
const config = {
8+
...apiConfig,
9+
};
10+
11+
export default config;
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { config } from '@o2s/eslint-config/api';
2+
3+
/** @type {import("eslint").Linter.Config} */
4+
export default config;
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export default {
2+
'*.{js,jsx,ts,tsx,css,scss}': ['prettier --write'],
3+
'*.{js,jsx,ts,tsx}': () => 'tsc --noEmit',
4+
};
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
{
2+
"name": "@o2s/integrations.zendesk",
3+
"version": "1.0.0",
4+
"private": false,
5+
"license": "MIT",
6+
"exports": {
7+
"./integration": "./dist/integration.js"
8+
},
9+
"files": [
10+
"dist"
11+
],
12+
"scripts": {
13+
"dev": "tsc && (concurrently \"tsc -w\" \"tsc-alias -w\")",
14+
"build": "tsc && tsc-alias",
15+
"lint": "tsc --noEmit && eslint . --max-warnings 0",
16+
"format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,css,scss,json}\""
17+
},
18+
"dependencies": {
19+
"@nestjs/axios": "^3.0.0",
20+
"@nestjs/common": "^10.0.0",
21+
"@o2s/framework": "*",
22+
"@o2s/utils.logger": "*",
23+
"axios": "^1.6.0",
24+
"rxjs": "^7.8.1"
25+
},
26+
"devDependencies": {
27+
"@o2s/eslint-config": "*",
28+
"@o2s/prettier-config": "*",
29+
"@o2s/typescript-config": "*",
30+
"concurrently": "^9.2.1",
31+
"eslint": "^9.37.0",
32+
"prettier": "^3.6.2",
33+
"tsc-alias": "^1.8.10",
34+
"typescript": "^5.7.3"
35+
}
36+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { HttpModule } from '@nestjs/axios';
2+
3+
import { ApiConfig, Users } from '@o2s/framework/modules';
4+
5+
import { Service as TicketsService } from './modules/tickets';
6+
7+
export * as Integration from './modules/index';
8+
9+
export const Config: Partial<ApiConfig['integrations']> = {
10+
tickets: {
11+
name: 'zendesk',
12+
service: TicketsService,
13+
imports: [HttpModule, Users.Module],
14+
},
15+
};
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * as Tickets from './tickets';

0 commit comments

Comments
 (0)