curl -X DELETE "https://api.tktchurch.com/v1/newsletters/123e4567-e89b-12d3-a456-426614174000" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
const deleteNewsletter = async (accessToken, newsletterId) => {
const response = await fetch(
`https://api.tktchurch.com/v1/newsletters/${newsletterId}`,
{
method: 'DELETE',
headers: {
'Authorization': `Bearer ${accessToken}`
}
}
);
if (!response.ok) {
const error = await response.json();
throw new Error(error.error.reason);
}
};
// Usage
try {
await deleteNewsletter(
'eyJhbGciOiJIUzI1NiIs...',
'123e4567-e89b-12d3-a456-426614174000'
);
console.log('Newsletter deleted successfully');
} catch (error) {
console.error('Failed to delete newsletter:', error.message);
}
func deleteNewsletter(accessToken: String, newsletterId: UUID) async throws {
var urlRequest = URLRequest(url: URL(string: "https://api.tktchurch.com/v1/newsletters/\(newsletterId)")!)
urlRequest.httpMethod = "DELETE"
urlRequest.setValue("Bearer \(accessToken)", forHTTPHeaderField: "Authorization")
let (_, response) = try await URLSession.shared.data(for: urlRequest)
guard let httpResponse = response as? HTTPURLResponse else {
throw URLError(.badServerResponse)
}
if httpResponse.statusCode != 204 {
throw URLError(.badServerResponse)
}
}
// Usage
do {
try await deleteNewsletter(
accessToken: "eyJhbGciOiJIUzI1NiIs...",
newsletterId: UUID(uuidString: "123e4567-e89b-12d3-a456-426614174000")!
)
print("Newsletter deleted successfully")
} catch {
print("Failed to delete newsletter:", error.localizedDescription)
}
class NewsletterService(private val client: OkHttpClient) {
suspend fun deleteNewsletter(accessToken: String, newsletterId: String) {
val request = Request.Builder()
.url("https://api.tktchurch.com/v1/newsletters/$newsletterId")
.delete()
.header("Authorization", "Bearer $accessToken")
.build()
client.newCall(request).execute().use { response ->
if (!response.isSuccessful) {
val error = response.body?.string()?.fromJson<ErrorResponse>()
throw Exception(error?.reason ?: "Failed to delete newsletter")
}
}
}
}
// Usage
try {
newsletterService.deleteNewsletter(
"eyJhbGciOiJIUzI1NiIs...",
"123e4567-e89b-12d3-a456-426614174000"
)
println("Newsletter deleted successfully")
} catch (e: Exception) {
println("Failed to delete newsletter: ${e.message}")
}
import axios from 'axios';
const deleteNewsletter = async (
accessToken: string,
newsletterId: string
): Promise<void> => {
try {
await axios.delete(
`https://api.tktchurch.com/v1/newsletters/${newsletterId}`,
{
headers: {
'Authorization': `Bearer ${accessToken}`
},
}
);
} catch (error) {
if (axios.isAxiosError(error)) {
throw new Error(error.response?.data?.error?.reason || 'Failed to delete newsletter');
}
throw error;
}
};
// Usage
try {
await deleteNewsletter(
'eyJhbGciOiJIUzI1NiIs...',
'123e4567-e89b-12d3-a456-426614174000'
);
console.log('Newsletter deleted successfully');
} catch (error) {
console.error('Failed to delete newsletter:', error.message);
}
{
"error": {
"status": 400,
"reason": "Invalid newsletter ID format"
}
}
{
"error": {
"status": 401,
"reason": "Invalid or expired access token"
}
}
{
"error": {
"status": 403,
"reason": "Missing required permission: deleteNewsletter"
}
}
{
"error": {
"status": 404,
"reason": "Newsletter not found"
}
}
Newsletters
Delete Newsletter
Delete a newsletter
DELETE
/
newsletters
/
{newsletterId}
curl -X DELETE "https://api.tktchurch.com/v1/newsletters/123e4567-e89b-12d3-a456-426614174000" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
const deleteNewsletter = async (accessToken, newsletterId) => {
const response = await fetch(
`https://api.tktchurch.com/v1/newsletters/${newsletterId}`,
{
method: 'DELETE',
headers: {
'Authorization': `Bearer ${accessToken}`
}
}
);
if (!response.ok) {
const error = await response.json();
throw new Error(error.error.reason);
}
};
// Usage
try {
await deleteNewsletter(
'eyJhbGciOiJIUzI1NiIs...',
'123e4567-e89b-12d3-a456-426614174000'
);
console.log('Newsletter deleted successfully');
} catch (error) {
console.error('Failed to delete newsletter:', error.message);
}
func deleteNewsletter(accessToken: String, newsletterId: UUID) async throws {
var urlRequest = URLRequest(url: URL(string: "https://api.tktchurch.com/v1/newsletters/\(newsletterId)")!)
urlRequest.httpMethod = "DELETE"
urlRequest.setValue("Bearer \(accessToken)", forHTTPHeaderField: "Authorization")
let (_, response) = try await URLSession.shared.data(for: urlRequest)
guard let httpResponse = response as? HTTPURLResponse else {
throw URLError(.badServerResponse)
}
if httpResponse.statusCode != 204 {
throw URLError(.badServerResponse)
}
}
// Usage
do {
try await deleteNewsletter(
accessToken: "eyJhbGciOiJIUzI1NiIs...",
newsletterId: UUID(uuidString: "123e4567-e89b-12d3-a456-426614174000")!
)
print("Newsletter deleted successfully")
} catch {
print("Failed to delete newsletter:", error.localizedDescription)
}
class NewsletterService(private val client: OkHttpClient) {
suspend fun deleteNewsletter(accessToken: String, newsletterId: String) {
val request = Request.Builder()
.url("https://api.tktchurch.com/v1/newsletters/$newsletterId")
.delete()
.header("Authorization", "Bearer $accessToken")
.build()
client.newCall(request).execute().use { response ->
if (!response.isSuccessful) {
val error = response.body?.string()?.fromJson<ErrorResponse>()
throw Exception(error?.reason ?: "Failed to delete newsletter")
}
}
}
}
// Usage
try {
newsletterService.deleteNewsletter(
"eyJhbGciOiJIUzI1NiIs...",
"123e4567-e89b-12d3-a456-426614174000"
)
println("Newsletter deleted successfully")
} catch (e: Exception) {
println("Failed to delete newsletter: ${e.message}")
}
import axios from 'axios';
const deleteNewsletter = async (
accessToken: string,
newsletterId: string
): Promise<void> => {
try {
await axios.delete(
`https://api.tktchurch.com/v1/newsletters/${newsletterId}`,
{
headers: {
'Authorization': `Bearer ${accessToken}`
},
}
);
} catch (error) {
if (axios.isAxiosError(error)) {
throw new Error(error.response?.data?.error?.reason || 'Failed to delete newsletter');
}
throw error;
}
};
// Usage
try {
await deleteNewsletter(
'eyJhbGciOiJIUzI1NiIs...',
'123e4567-e89b-12d3-a456-426614174000'
);
console.log('Newsletter deleted successfully');
} catch (error) {
console.error('Failed to delete newsletter:', error.message);
}
{
"error": {
"status": 400,
"reason": "Invalid newsletter ID format"
}
}
{
"error": {
"status": 401,
"reason": "Invalid or expired access token"
}
}
{
"error": {
"status": 403,
"reason": "Missing required permission: deleteNewsletter"
}
}
{
"error": {
"status": 404,
"reason": "Newsletter not found"
}
}
This endpoint requires authentication and the
deleteNewsletter permission.Path Parameters
string
required
The UUID of the newsletter to delete
Response
Returns HTTP 204 No Content on successful deletion.Error Responses
object
Common error cases:
- 400 Bad Request: Invalid newsletter ID format
- 401 Unauthorized: Missing or invalid access token
- 403 Forbidden: Missing required permission
- 404 Not Found: Newsletter not found
curl -X DELETE "https://api.tktchurch.com/v1/newsletters/123e4567-e89b-12d3-a456-426614174000" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
const deleteNewsletter = async (accessToken, newsletterId) => {
const response = await fetch(
`https://api.tktchurch.com/v1/newsletters/${newsletterId}`,
{
method: 'DELETE',
headers: {
'Authorization': `Bearer ${accessToken}`
}
}
);
if (!response.ok) {
const error = await response.json();
throw new Error(error.error.reason);
}
};
// Usage
try {
await deleteNewsletter(
'eyJhbGciOiJIUzI1NiIs...',
'123e4567-e89b-12d3-a456-426614174000'
);
console.log('Newsletter deleted successfully');
} catch (error) {
console.error('Failed to delete newsletter:', error.message);
}
func deleteNewsletter(accessToken: String, newsletterId: UUID) async throws {
var urlRequest = URLRequest(url: URL(string: "https://api.tktchurch.com/v1/newsletters/\(newsletterId)")!)
urlRequest.httpMethod = "DELETE"
urlRequest.setValue("Bearer \(accessToken)", forHTTPHeaderField: "Authorization")
let (_, response) = try await URLSession.shared.data(for: urlRequest)
guard let httpResponse = response as? HTTPURLResponse else {
throw URLError(.badServerResponse)
}
if httpResponse.statusCode != 204 {
throw URLError(.badServerResponse)
}
}
// Usage
do {
try await deleteNewsletter(
accessToken: "eyJhbGciOiJIUzI1NiIs...",
newsletterId: UUID(uuidString: "123e4567-e89b-12d3-a456-426614174000")!
)
print("Newsletter deleted successfully")
} catch {
print("Failed to delete newsletter:", error.localizedDescription)
}
class NewsletterService(private val client: OkHttpClient) {
suspend fun deleteNewsletter(accessToken: String, newsletterId: String) {
val request = Request.Builder()
.url("https://api.tktchurch.com/v1/newsletters/$newsletterId")
.delete()
.header("Authorization", "Bearer $accessToken")
.build()
client.newCall(request).execute().use { response ->
if (!response.isSuccessful) {
val error = response.body?.string()?.fromJson<ErrorResponse>()
throw Exception(error?.reason ?: "Failed to delete newsletter")
}
}
}
}
// Usage
try {
newsletterService.deleteNewsletter(
"eyJhbGciOiJIUzI1NiIs...",
"123e4567-e89b-12d3-a456-426614174000"
)
println("Newsletter deleted successfully")
} catch (e: Exception) {
println("Failed to delete newsletter: ${e.message}")
}
import axios from 'axios';
const deleteNewsletter = async (
accessToken: string,
newsletterId: string
): Promise<void> => {
try {
await axios.delete(
`https://api.tktchurch.com/v1/newsletters/${newsletterId}`,
{
headers: {
'Authorization': `Bearer ${accessToken}`
},
}
);
} catch (error) {
if (axios.isAxiosError(error)) {
throw new Error(error.response?.data?.error?.reason || 'Failed to delete newsletter');
}
throw error;
}
};
// Usage
try {
await deleteNewsletter(
'eyJhbGciOiJIUzI1NiIs...',
'123e4567-e89b-12d3-a456-426614174000'
);
console.log('Newsletter deleted successfully');
} catch (error) {
console.error('Failed to delete newsletter:', error.message);
}
{
"error": {
"status": 400,
"reason": "Invalid newsletter ID format"
}
}
{
"error": {
"status": 401,
"reason": "Invalid or expired access token"
}
}
{
"error": {
"status": 403,
"reason": "Missing required permission: deleteNewsletter"
}
}
{
"error": {
"status": 404,
"reason": "Newsletter not found"
}
}
