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 { 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); } }