<?php

namespace App\Http\Controllers\Network\Classes;

use Exception;
use GuzzleHttp\Client;
use Yajny\Member\Models\Network;


class OptimiseMediaApi implements SalesGetterApi
{

    public $api_key;
    public $affiliate_id;
    public $website_id;
    public $client;
    public $sales;

    public function __construct($api_key, $affiliate_id, $website_id = null)
    {
        $this->api_key = $api_key;
        $this->affiliate_id = $affiliate_id;
        $this->website_id = $website_id;
        $this->client = new Client();
        $this->sales = [];
    }

    public function getSales($start_days, $end_days)
    {
        $query = [
            'agencyId' => $this->website_id,
            'contactId' => $this->affiliate_id,
            'dateField' => 'conversion',
            'fromDate' => date('Y-m-d', strtotime("today - {$start_days} days ")),
            'toDate' => date('Y-m-d', strtotime("tomorrow - {$end_days} days "))
        ];

        try {
            $salesResponse = $this->client->request(
                'GET',
                'https://public.api.optimisemedia.com/v1/conversions/',
                [
                    'query' => $query,
                    'headers' => ['apikey' => $this->api_key]
                ]
            );

            $sales = json_decode($salesResponse->getBody());
            if (!$sales) return [];

            return $this->sales = $sales;

        } catch (Exception $e) {

        }

        return [];
    }
}
