feat: add base types

main
henrriky.bastos 2024-12-16 21:38:06 -03:00
parent aad59e55b0
commit aaab95592b
5 changed files with 4410 additions and 3416 deletions

View File

@ -16,6 +16,7 @@
"lint:fix": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix" "lint:fix": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix"
}, },
"dependencies": { "dependencies": {
"@figuro/chatwoot-sdk": "^1.1.16",
"@infobip-api/sdk": "^0.3.2", "@infobip-api/sdk": "^0.3.2",
"@nestjs/common": "^10.4.4", "@nestjs/common": "^10.4.4",
"@nestjs/config": "^3.2.3", "@nestjs/config": "^3.2.3",
@ -25,6 +26,7 @@
"crypto-js": "^4.2.0", "crypto-js": "^4.2.0",
"dotenv": "^16.4.5", "dotenv": "^16.4.5",
"morgan": "^1.10.0", "morgan": "^1.10.0",
"prisma": "^6.0.1",
"reflect-metadata": "^0.2.0", "reflect-metadata": "^0.2.0",
"rxjs": "^7.8.1" "rxjs": "^7.8.1"
}, },

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,19 @@
// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?
// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mongodb"
url = env("DATABASE_URL")
}
model User {
id String @id @default(auto()) @map("_id") @db.ObjectId
email String
}

View File

@ -6,11 +6,12 @@ export class ChatwootController {
constructor (private readonly chatwootService: ChatwootService) {} constructor (private readonly chatwootService: ChatwootService) {}
@Post('/webhook/:sms/:provider/:apikey/:inbox') @Post('/webhook/:sms/:provider/:apikey/:inbox')
create ( receiveChatwootWebhook (
@Param() params: { sms: string, provider: 'infobip', apikey: string, inbox: string } @Param() params: { sms: string, provider: 'infobip', apikey: string, inbox: string }
) { ) {
this.chatwootService.
} }
@Get() @Get()

View File

@ -1,11 +1,70 @@
import ChatwootClient from '@figuro/chatwoot-sdk';
import { Injectable } from '@nestjs/common'; import { Injectable } from '@nestjs/common';
import { CreateChatwootDto } from './dto/create-chatwoot.dto';
import { UpdateChatwootDto } from './dto/update-chatwoot.dto'; interface CWWebhook {
}
interface CWMessageCreatedWebhook extends CWWebhook {
event: "message_created"
id: string
content: string
created_at: string
message_type: "incoming" | "outgoing"
content_type: "input_select" | "cards" | "form" | "text"
content_attributes: any
source_id: string
sender: {
id: string
name: string
email: string
}
contact: {
id: string
name: string
}
account: {
id: number
name: string
}
conversation: {
additional_attributes: any
channel: string,
id: number,
}
}
interface ReceiveChatwootWebhookData {
event: string
}
@Injectable() @Injectable()
export class ChatwootService { export class ChatwootService {
create(createChatwootDto: CreateChatwootDto) {
return 'This action adds a new chatwoot'; constructor(
private readonly cw: ChatwootClient,
) {
}
receiveChatwootWebhook(
webhookData: ReceiveChatwootWebhookData
) {
const { token } = webhookData
const client = new ChatwootClient({
config: {
basePath: 'http://172.31.187.223:3000',
with_credentials: true,
credentials: "include",
token: "clie"
}
})
} }
findAll() { findAll() {