resq/src/Controller/CustomerAppAPI/PrivacyController.php

67 lines
1.9 KiB
PHP

<?php
namespace App\Controller\CustomerAppAPI;
use Symfony\Component\HttpFoundation\Request;
use Catalyst\ApiBundle\Component\Response as ApiResponse;
use App\Entity\PrivacyPolicy;
class PrivacyController extends ApiController
{
public function privacySettings(Request $req)
{
// validate params
$validity = $this->validateRequest($req, [
'priv_third_party',
// 'priv_promo',
]);
if (!$validity['is_valid']) {
return new ApiResponse(false, $validity['error']);
}
// get customer
$cust = $this->session->getCustomer();
if ($cust == null) {
return new ApiResponse(false, 'No customer information found.');
}
// set privacy settings
$priv_promo = $req->request->get('priv_promo', false);
$priv_third_party = $req->request->get('priv_third_party');
$cust->setPrivacyThirdParty($priv_third_party)
->setPrivacyPromo($priv_promo);
// get the policy ids from .env
$policy_promo_id = $_ENV['POLICY_PROMO'];
$policy_third_party_id = $_ENV['POLICY_THIRD_PARTY'];
// check if privacy settings are true
// if true, set the private policy for the customer
if ($priv_promo) {
// find the promo policy
$policy = $this->em->getRepository(PrivacyPolicy::class)->find($policy_promo_id);
// set policy id
if ($policy != null) {
$cust->setPrivacyPolicyPromo($policy);
}
}
if ($priv_third_party) {
// find the third party policy
$policy = $this->em->getRepository(PrivacyPolicy::class)->find($policy_third_party_id);
// set policy id
if ($policy != null) {
$cust->setPrivacyPolicyThirdParty($policy);
}
}
$this->em->flush();
// response
return new ApiResponse();
}
}