<?php

/**
 * Thrive Themes - https://thrivethemes.com
 *
 * @package thrive-dashboard
 */
if ( ! defined( 'ABSPATH' ) ) {
	exit; // Silence is golden!
}

class Thrive_Dash_Api_Mailchimp_Folders {
	public function __construct( Thrive_Dash_Api_Mailchimp $master ) {
		$this->master = $master;
	}

	/**
	 * Add a new folder to file campaigns, autoresponders, or templates in
	 *
	 * @param string $name
	 * @param string $type
	 *
	 * @return associative_array with a single value:
	 *     - folder_id int the folder_id of the newly created folder.
	 */
	public function add( $name, $type ) {
		$_params = array( "name" => $name, "type" => $type );

		return $this->master->call( 'folders/add', $_params );
	}

	/**
	 * Delete a campaign, autoresponder, or template folder. Note that this will simply make whatever was in the folder appear unfiled, no other data is removed
	 *
	 * @param int $fid
	 * @param string $type
	 *
	 * @return associative_array with a single entry:
	 *     - complete bool whether the call worked. reallistically this will always be true as errors will be thrown otherwise.
	 */
	public function del( $fid, $type ) {
		$_params = array( "fid" => $fid, "type" => $type );

		return $this->master->call( 'folders/del', $_params );
	}

	/**
	 * List all the folders of a certain type
	 *
	 * @param string $type
	 *
	 * @return array structs for each folder, including:
	 *     - folder_id int Folder Id for the given folder, this can be used in the campaigns/list() function to filter on.
	 *     - name string Name of the given folder
	 *     - date_created string The date/time the folder was created
	 *     - type string The type of the folders being returned, just to make sure you know.
	 *     - cnt int number of items in the folder.
	 */
	public function getList( $type ) {
		$_params = array( "type" => $type );

		return $this->master->call( 'folders/list', $_params );
	}

	/**
	 * Update the name of a folder for campaigns, autoresponders, or templates
	 *
	 * @param int $fid
	 * @param string $name
	 * @param string $type
	 *
	 * @return associative_array with a single entry:
	 *     - complete bool whether the call worked. reallistically this will always be true as errors will be thrown otherwise.
	 */
	public function update( $fid, $name, $type ) {
		$_params = array( "fid" => $fid, "name" => $name, "type" => $type );

		return $this->master->call( 'folders/update', $_params );
	}

}


