35 lines
1015 B
TypeScript
35 lines
1015 B
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(mediumPublicationArg: MediumPublication, dataArg: IPostData) {
|
||
|
const response = await mediumPublicationArg.mediumAccountRef.request(`/publications/${mediumPublicationArg.id}/posts`, 'POST', dataArg);
|
||
|
const post = new MediumPost(mediumPublicationArg, response.body.data);
|
||
|
return post;
|
||
|
}
|
||
|
|
||
|
// INSTANCE
|
||
|
mediumPublicationRef: MediumPublication;
|
||
|
|
||
|
title: string;
|
||
|
contentFormat: 'html' | 'markdown';
|
||
|
content: string;
|
||
|
canonicalUrl: string;
|
||
|
tags: string[];
|
||
|
publishStatus: 'public' | 'draft' | 'unlisted';
|
||
|
|
||
|
constructor(mediumPublication: MediumPublication, dataArg: IPostData) {
|
||
|
|
||
|
}
|
||
|
}
|