<?php
declare(strict_types = 1);
namespace Automattic\WooCommerce\GoogleListingsAndAds\Google;
use Automattic\WooCommerce\GoogleListingsAndAds\Infrastructure\Service;
use Automattic\WooCommerce\GoogleListingsAndAds\Options\OptionsAwareInterface;
use Automattic\WooCommerce\GoogleListingsAndAds\Options\OptionsAwareTrait;
use Google\Exception as GoogleException;
use Google\Service\ShoppingContent;
use Google\Service\ShoppingContent\Promotion as GooglePromotion;
defined( 'ABSPATH' ) || exit();
/**
* Class GooglePromotionService
*
* @package Automattic\WooCommerce\GoogleListingsAndAds\Google
*/
class GooglePromotionService implements OptionsAwareInterface, Service {
use OptionsAwareTrait;
public const INTERNAL_ERROR_CODE = 500;
public const INTERNAL_ERROR_MSG = 'Internal error';
/**
*
* @var ShoppingContent
*/
protected $shopping_service;
/**
* GooglePromotionService constructor.
*
* @param ShoppingContent $shopping_service
*/
public function __construct( ShoppingContent $shopping_service ) {
$this->shopping_service = $shopping_service;
}
/**
*
* @param GooglePromotion $promotion
*
* @return GooglePromotion
*
* @throws GoogleException If there are any Google API errors.
*/
public function create( GooglePromotion $promotion ): GooglePromotion {
$merchant_id = $this->options->get_merchant_id();
return $this->shopping_service->promotions->create(
$merchant_id,
$promotion
);
}
}