36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
import { MediumPublication } from './medium.classes.publication.js';
|
|
import * as plugins from './medium.plugins.js';
|
|
|
|
export interface IPostData {
|
|
title: string;
|
|
contentFormat: 'html' | 'markdown';
|
|
content: string;
|
|
canonicalUrl: string;
|
|
tags: string[];
|
|
publishStatus: 'public' | 'draft' | 'unlisted';
|
|
}
|
|
|
|
export class MediumPost implements IPostData {
|
|
// STATIC
|
|
public static async createPost(mediumPublication: MediumPublication, data: IPostData): Promise<MediumPost> {
|
|
const response = await mediumPublication.mediumAccountRef.request(`/publications/${mediumPublication.id}/posts`, 'POST', data);
|
|
const post = new MediumPost(mediumPublication, response.data);
|
|
return post;
|
|
}
|
|
|
|
// INSTANCE
|
|
mediumPublicationRef: MediumPublication;
|
|
|
|
title: string;
|
|
contentFormat: 'html' | 'markdown';
|
|
content: string;
|
|
canonicalUrl: string;
|
|
tags: string[];
|
|
publishStatus: 'public' | 'draft' | 'unlisted';
|
|
|
|
constructor(mediumPublication: MediumPublication, data: IPostData) {
|
|
this.mediumPublicationRef = mediumPublication;
|
|
Object.assign(this, data);
|
|
}
|
|
}
|