-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathCampaignInfoMapper.php
More file actions
82 lines (72 loc) · 3.48 KB
/
CampaignInfoMapper.php
File metadata and controls
82 lines (72 loc) · 3.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
namespace Hypeit\TradeTracker\Mapper;
use Hypeit\TradeTracker\Model\CampaignInfo;
use Hypeit\TradeTracker\Normalizer\IntervalNormalizer;
class CampaignInfoMapper implements MapperInterface
{
/**
* {@inheritdoc}
*
* @return CampaignInfo
* @throws \Exception
*/
public function hydrate($value)
{
$intervalNormalizer = new IntervalNormalizer();
$campaignInfo = new CampaignInfo();
$campaignInfo->setCategory((new CampaignCategoryMapper())->hydrate($value->category));
if (null !== $value->subCategories) {
$data = [];
$campaignSubCategoryMapper = new CampaignSubCategoryMapper();
foreach ($value->subCategories as $subCategory) {
$data[] = $campaignSubCategoryMapper->hydrate($subCategory);
}
$campaignInfo->setSubCategories($data);
}
$campaignInfo->setCampaignDescription($value->campaignDescription);
$campaignInfo->setShopDescription($value->shopDescription);
$campaignInfo->setTargetGroup($value->targetGroup);
$campaignInfo->setCharacteristics($value->characteristics);
$campaignInfo->setImageUrl($value->imageURL);
$campaignInfo->setTrackingUrl($value->trackingURL);
$campaignInfo->setCommission((new CampaignCommissionMapper())->hydrate($value->commission));
$campaignInfo->setAssignmentStatus((new CampaignAssignmentStatusMapper())->hydrate($value->assignmentStatus));
$campaignInfo->setStartDate(new \DateTime($value->startDate));
$campaignInfo->setStopDate(new \DateTime($value->stopDate));
$campaignInfo->setClickToConversion($intervalNormalizer->normalize($value->clickToConversion));
$campaignInfo->setPolicySearchEngineMarketingStatus(
(new CampaignAffiliatePolicyStatusMapper())->hydrate($value->policySearchEngineMarketingStatus)
);
$campaignInfo->setPolicyEmailMarketingStatus(
(new CampaignAffiliatePolicyStatusMapper())->hydrate($value->policyEmailMarketingStatus)
);
$campaignInfo->setPolicyCashbackStatus(
(new CampaignAffiliatePolicyStatusMapper())->hydrate($value->policyCashbackStatus)
);
$campaignInfo->setPolicyDiscountCodeStatus(
(new CampaignAffiliatePolicyStatusMapper())->hydrate($value->policyDiscountCodeStatus)
);
$campaignInfo->setDeeplinkingSupported($value->deeplinkingSupported);
$campaignInfo->setReferencesSupported($value->referencesSupported);
$campaignInfo->setLeadMaximumAssessmentInterval(
$intervalNormalizer->normalize($value->leadMaximumAssessmentInterval)
);
$campaignInfo->setLeadAverageAssessmentInterval(
$intervalNormalizer->normalize($value->leadAverageAssessmentInterval)
);
$campaignInfo->setSaleMaximumAssessmentInterval(
$intervalNormalizer->normalize($value->saleMaximumAssessmentInterval)
);
$campaignInfo->setSaleAverageAssessmentInterval(
$intervalNormalizer->normalize($value->saleAverageAssessmentInterval)
);
$campaignInfo->setAttributionModelLead(
(new CampaignAttributionModelMapper())->hydrate($value->attributionModelLead)
);
$campaignInfo->setAttributionModelSales(
(new CampaignAttributionModelMapper())->hydrate($value->attributionModelSales)
);
$campaignInfo->setTimezone($value->timeZone);
return $campaignInfo;
}
}