import { requireRecord, requireStringField, submitPost } from './client.ts'
import type { SubmitPostInput } from './client.ts'
/**
* Create or dry-run a Reddit self or link post. Publishing requires confirm: true.
* @example
* import submitPost from 'kody:@kody/reddit/submit-post'
* const preview = await submitPost({
* subreddit: 'test',
* title: 'Hello from Kody',
* text: 'Draft body',
* dryRun: true,
* })
* // => { dryRun: true, method: 'POST', url: 'https://oauth.reddit.com/api/submit', requiresConfirm: true }
*/
export default async function submitPostEntrypoint(
params: Partial<SubmitPostInput> & Record<string, unknown> = {},
) {
const input = requireRecord(params, 'submit-post')
requireStringField(input, 'subreddit', 'submit-post')
requireStringField(input, 'title', 'submit-post')
return submitPost(input as SubmitPostInput)
}