const { Command } = require('discord-akairo');
const fetch = require('node-fetch');

class SayCommand extends Command {
	constructor() {
		super('strawpoll', {
			aliases: ['strawpoll', 'poll'],
			category: 'general',
			clientPermissions: ['SEND_MESSAGES', 'EMBED_LINKS'],
			args: [
				{
					id: 'title',
					type: 'string',
					prompt: {
						start: 'What should the title of the poll be?',
					},
				},
				{
					id: 'options',
					type: 'string',
					prompt: {
						start: 'What the options should be?',
					},
					match: 'rest'
				},
				{
					id: 'multi',
					match: 'flag',
					flag:  '--multi'
				}
			],
			description: {
				content: 'Simply create strawpoll ( use | to separate the options )',
				usage: '[title] [options]',
				examples: ['"am i cool?" hell yea | nah | you suck!']
			}
		});
	}

	async exec(message, args) {
		let options = args.options.trim().split('|');


		let request = {
			'title': args.title,
			'options': options,
			'multi': args.multi
		};

		console.log(JSON.stringify(request));

		fetch('https://www.strawpoll.me/api/v2/polls', {
			method: 'POST',
			headers: { 'Content-Type': 'application/json' },
			body: JSON.stringify(request),
		}).then((response) => {
			return response.json();
		}).then((response) => {
			return message.channel.send(` Your strawpoll is ready! https://www.strawpoll.me/${response.id}`);
		});
	}
}

module.exports = SayCommand;