add marketing api docs
This commit is contained in:
3
apps/docs/api-reference/contacts/create-contact.mdx
Normal file
3
apps/docs/api-reference/contacts/create-contact.mdx
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
openapi: post /v1/contactBooks/{contactBookId}/contacts
|
||||||
|
---
|
3
apps/docs/api-reference/contacts/get-contact.mdx
Normal file
3
apps/docs/api-reference/contacts/get-contact.mdx
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
openapi: get /v1/contactBooks/{contactBookId}/contacts/{contactId}
|
||||||
|
---
|
3
apps/docs/api-reference/contacts/update-contact.mdx
Normal file
3
apps/docs/api-reference/contacts/update-contact.mdx
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
openapi: patch /v1/contactBooks/{contactBookId}/contacts/{contactId}
|
||||||
|
---
|
@@ -120,7 +120,7 @@
|
|||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
"200": {
|
"200": {
|
||||||
"description": "Retrieve the user",
|
"description": "Retrieve the email",
|
||||||
"content": {
|
"content": {
|
||||||
"application/json": {
|
"application/json": {
|
||||||
"schema": {
|
"schema": {
|
||||||
@@ -217,14 +217,14 @@
|
|||||||
"enum": [
|
"enum": [
|
||||||
"QUEUED",
|
"QUEUED",
|
||||||
"SENT",
|
"SENT",
|
||||||
|
"DELIVERY_DELAYED",
|
||||||
"BOUNCED",
|
"BOUNCED",
|
||||||
|
"REJECTED",
|
||||||
|
"RENDERING_FAILURE",
|
||||||
"DELIVERED",
|
"DELIVERED",
|
||||||
"OPENED",
|
"OPENED",
|
||||||
"CLICKED",
|
"CLICKED",
|
||||||
"COMPLAINED",
|
"COMPLAINED",
|
||||||
"REJECTED",
|
|
||||||
"RENDERING_FAILURE",
|
|
||||||
"DELIVERY_DELAYED",
|
|
||||||
"FAILED"
|
"FAILED"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -381,6 +381,217 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"/v1/contactBooks/{contactBookId}/contacts": {
|
||||||
|
"post": {
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"schema": {
|
||||||
|
"type": "string",
|
||||||
|
"minLength": 3,
|
||||||
|
"example": "cuiwqdj74rygf74"
|
||||||
|
},
|
||||||
|
"required": true,
|
||||||
|
"name": "contactBookId",
|
||||||
|
"in": "path"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"requestBody": {
|
||||||
|
"required": true,
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"email": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"firstName": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"lastName": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"properties": {
|
||||||
|
"type": "object",
|
||||||
|
"additionalProperties": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"subscribed": {
|
||||||
|
"type": "boolean"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"email"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "Retrieve the user",
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"contactId": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"/v1/contactBooks/{contactBookId}/contacts/{contactId}": {
|
||||||
|
"patch": {
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"schema": {
|
||||||
|
"type": "string",
|
||||||
|
"example": "cuiwqdj74rygf74"
|
||||||
|
},
|
||||||
|
"required": true,
|
||||||
|
"name": "contactBookId",
|
||||||
|
"in": "path"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"schema": {
|
||||||
|
"type": "string",
|
||||||
|
"example": "cuiwqdj74rygf74"
|
||||||
|
},
|
||||||
|
"required": true,
|
||||||
|
"name": "contactId",
|
||||||
|
"in": "path"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"requestBody": {
|
||||||
|
"required": true,
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"firstName": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"lastName": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"properties": {
|
||||||
|
"type": "object",
|
||||||
|
"additionalProperties": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"subscribed": {
|
||||||
|
"type": "boolean"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "Retrieve the user",
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"contactId": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"get": {
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"schema": {
|
||||||
|
"type": "string",
|
||||||
|
"example": "cuiwqdj74rygf74"
|
||||||
|
},
|
||||||
|
"required": true,
|
||||||
|
"name": "contactBookId",
|
||||||
|
"in": "path"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"schema": {
|
||||||
|
"type": "string",
|
||||||
|
"example": "cuiwqdj74rygf74"
|
||||||
|
},
|
||||||
|
"required": true,
|
||||||
|
"name": "contactId",
|
||||||
|
"in": "path"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "Retrieve the contact",
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"firstName": {
|
||||||
|
"type": "string",
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
"lastName": {
|
||||||
|
"type": "string",
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
"email": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"subscribed": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": true
|
||||||
|
},
|
||||||
|
"properties": {
|
||||||
|
"type": "object",
|
||||||
|
"additionalProperties": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"contactBookId": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"createdAt": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"updatedAt": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"id",
|
||||||
|
"email",
|
||||||
|
"properties",
|
||||||
|
"contactBookId",
|
||||||
|
"createdAt",
|
||||||
|
"updatedAt"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -72,6 +72,14 @@
|
|||||||
"api-reference/emails/send-email"
|
"api-reference/emails/send-email"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"group": "Contacts",
|
||||||
|
"pages": [
|
||||||
|
"api-reference/contacts/get-contact",
|
||||||
|
"api-reference/contacts/create-contact",
|
||||||
|
"api-reference/contacts/update-contact"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"group": "Domains",
|
"group": "Domains",
|
||||||
"pages": [
|
"pages": [
|
||||||
|
@@ -5,7 +5,6 @@ import { getConfigurationSetName } from "~/utils/ses-utils";
|
|||||||
import { db } from "../db";
|
import { db } from "../db";
|
||||||
import { sendEmailThroughSes, sendEmailWithAttachments } from "../aws/ses";
|
import { sendEmailThroughSes, sendEmailWithAttachments } from "../aws/ses";
|
||||||
import { getRedis } from "../redis";
|
import { getRedis } from "../redis";
|
||||||
import { createUnsubUrl } from "./campaign-service";
|
|
||||||
|
|
||||||
function createQueueAndWorker(region: string, quota: number, suffix: string) {
|
function createQueueAndWorker(region: string, quota: number, suffix: string) {
|
||||||
const connection = getRedis();
|
const connection = getRedis();
|
||||||
|
0
packages/sdk/src/contact.ts
Normal file
0
packages/sdk/src/contact.ts
Normal file
97
packages/sdk/types/schema.d.ts
vendored
97
packages/sdk/types/schema.d.ts
vendored
@@ -54,7 +54,7 @@ export interface paths {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
responses: {
|
responses: {
|
||||||
/** @description Retrieve the user */
|
/** @description Retrieve the email */
|
||||||
200: {
|
200: {
|
||||||
content: {
|
content: {
|
||||||
"application/json": {
|
"application/json": {
|
||||||
@@ -73,7 +73,7 @@ export interface paths {
|
|||||||
emailEvents: ({
|
emailEvents: ({
|
||||||
emailId: string;
|
emailId: string;
|
||||||
/** @enum {string} */
|
/** @enum {string} */
|
||||||
status: "QUEUED" | "SENT" | "BOUNCED" | "DELIVERED" | "OPENED" | "CLICKED" | "COMPLAINED" | "REJECTED" | "RENDERING_FAILURE" | "DELIVERY_DELAYED" | "FAILED";
|
status: "QUEUED" | "SENT" | "DELIVERY_DELAYED" | "BOUNCED" | "REJECTED" | "RENDERING_FAILURE" | "DELIVERED" | "OPENED" | "CLICKED" | "COMPLAINED" | "FAILED";
|
||||||
createdAt: string;
|
createdAt: string;
|
||||||
data?: unknown;
|
data?: unknown;
|
||||||
})[];
|
})[];
|
||||||
@@ -115,6 +115,99 @@ export interface paths {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
"/v1/contactBooks/{contactBookId}/contacts": {
|
||||||
|
post: {
|
||||||
|
parameters: {
|
||||||
|
path: {
|
||||||
|
contactBookId: string;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
requestBody: {
|
||||||
|
content: {
|
||||||
|
"application/json": {
|
||||||
|
email: string;
|
||||||
|
firstName?: string;
|
||||||
|
lastName?: string;
|
||||||
|
properties?: {
|
||||||
|
[key: string]: string;
|
||||||
|
};
|
||||||
|
subscribed?: boolean;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
responses: {
|
||||||
|
/** @description Retrieve the user */
|
||||||
|
200: {
|
||||||
|
content: {
|
||||||
|
"application/json": {
|
||||||
|
contactId?: string;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"/v1/contactBooks/{contactBookId}/contacts/{contactId}": {
|
||||||
|
get: {
|
||||||
|
parameters: {
|
||||||
|
path: {
|
||||||
|
contactBookId: string;
|
||||||
|
contactId: string;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
responses: {
|
||||||
|
/** @description Retrieve the contact */
|
||||||
|
200: {
|
||||||
|
content: {
|
||||||
|
"application/json": {
|
||||||
|
id: string;
|
||||||
|
firstName?: string | null;
|
||||||
|
lastName?: string | null;
|
||||||
|
email: string;
|
||||||
|
/** @default true */
|
||||||
|
subscribed?: boolean;
|
||||||
|
properties: {
|
||||||
|
[key: string]: string;
|
||||||
|
};
|
||||||
|
contactBookId: string;
|
||||||
|
createdAt: string;
|
||||||
|
updatedAt: string;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
patch: {
|
||||||
|
parameters: {
|
||||||
|
path: {
|
||||||
|
contactBookId: string;
|
||||||
|
contactId: string;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
requestBody: {
|
||||||
|
content: {
|
||||||
|
"application/json": {
|
||||||
|
firstName?: string;
|
||||||
|
lastName?: string;
|
||||||
|
properties?: {
|
||||||
|
[key: string]: string;
|
||||||
|
};
|
||||||
|
subscribed?: boolean;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
responses: {
|
||||||
|
/** @description Retrieve the user */
|
||||||
|
200: {
|
||||||
|
content: {
|
||||||
|
"application/json": {
|
||||||
|
contactId?: string;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export type webhooks = Record<string, never>;
|
export type webhooks = Record<string, never>;
|
||||||
|
Reference in New Issue
Block a user