<?php

namespace App\Helpers\SocialHelper;

use GuzzleHttp\Client;
use Exception;

class FacebookLogin implements SocialLoginInterface
{
    private $accessToken = '';

    public function __construct($accessToken)
    {
        $this->accessToken = $accessToken;
    }

    public function getUser()
    {
        $guzzleClient = new Client();
        try {
            return json_decode($guzzleClient->get("https://graph.facebook.com/me?fields=first_name,last_name,email,picture.type(large)&access_token={$this->accessToken}")->getBody());
        } catch (Exception $e) {
            return null;
        }
    }

    public static function mapUserData($userInfoResponse)
    {
        return [
            'first_name' => @$userInfoResponse->first_name,
            'last_name' => @$userInfoResponse->last_name,
            'email' => @$userInfoResponse->email,
            'photo' => @$userInfoResponse->picture->data->url,
            'social_id' => $userInfoResponse->id,
            'social_platform' => 'facebook'
        ];
    }
}
