#pragma once

#include "ehs/EHS.h"
#include "ehs/Str.h"
#include "ehs/io/socket/SSL.h"

namespace ehs
{
	class EHS_LIB_IO Twitch
	{
	private:
		SSL client;
		Str_8 clientId;
		Str_8 secret;
		Str_8 redURI;
		Array<Str_8> scopes;
		bool forceVerify;
		Str_8 token;

	public:
		virtual ~Twitch();

		Twitch();

		Twitch(const Str_8& clientId, const Str_8& secret, const Str_8& redURI, const Array<Str_8>& scopes, const bool forceVerify);

		bool Authorize();

		Str_8 GetClientId() const;

		Str_8 GetSecret() const;

		Str_8 GetRedURI() const;

		bool IsVerificationForced() const;

		Str_8 GetToken() const;
	};
}