<?php namespace App\Libs\Support;

use DrewM\MailChimp\MailChimp as MailC;

/**
 * Transforms values based on array on transformation rules
 */
class Mailchimp
{
    protected $mailchimp;

    public function __construct($apiKey)
    {
        $this->mailchimp = new MailC($apiKey);
    }

    public function subscribeToList($listId, $data, $isComplete = true)
    {
        $dataToSend = [
            'email_address' => $data['email'],
            'status' => 'pending'
        ];

        if ($isComplete) {
            $dataToSend['merge_fields'] = [
                'FNAME' => empty($data['firstName']) ? $data['first_name'] : $data['firstName'],
                'LNAME' => empty($data['lastName']) ? $data['last_name'] : $data['lastName'],
                'COMPANY' => $data['organisation'],
                'COUNTRY' => $data['country']
            ];
        }

        $result = $this->mailchimp->post("lists/$listId/members", $dataToSend);

        if ($result['status'] == 400 && $result['title'] != 'Member Exists') {
            return false;
        } else {
            return true;
        }
    }
}
