Commit b952a862 by Vladislav

fix write log

1 parent 0a8bf962
Showing with 1446 additions and 1633 deletions
......@@ -43,7 +43,7 @@ class ProcessCallLimitedAPI implements ShouldQueue//, ShouldBeUnique
$objects = $limits->countObjectsLimit($this->api);
if (!$objects) {
//нет свободных баллов, замораживаем до следующего часа
Log::debug('Нет баллов? ' . $objects . ' ' . $this->api->getService() . ' ' . $this->api->getMethod());
Log::debug("Нет свободных баллов, замораживаем до следующего часа. token_id {$this->api->getToken()->getKey()}, объектов {$this->api->getObjectsCount()} {$this->api->getService()} {$this->api->getMethod()}");
$this->reRunHour();
return;
}
......@@ -51,13 +51,13 @@ class ProcessCallLimitedAPI implements ShouldQueue//, ShouldBeUnique
try{
//резервируем на это количетсво
$limit = $limits->getSpent($objects, $this->api);
Log::debug('Резервируем баллы ' . $limit . ' на объекты ' . $objects . ' ' . $this->api->getService() . ' ' . $this->api->getMethod());
Log::debug("Резервируем баллы {$limit}, token_id {$this->api->getToken()->getKey()}, на объекты {$objects} {$this->api->getService()} {$this->api->getMethod()}");
$limitId = $limits->doRezerv($this->api, $objects);
}catch(\Exception $e){
//нет свободных баллов, замораживаем до следующего часа
Log::debug('');
Log::debug('Нет свободных баллов, замораживаем до следующего часа');
Log::debug('Нет свободных баллов Exception, замораживаем до следующего часа');
Log::debug($e->getMessage());
Log::debug('');
$this->reRunHour();
......
......@@ -179,6 +179,11 @@ class GoalKeyword extends Pivot
return $this->belongsTo(Keyword::class, 'keyword_id');
}
public function goalAdGroup()
{
return $this->belongsTo(GoalAdGroup::class, 'goal_ad_group_id');
}
public function dictionaryCampaign()
{
return $this->belongsTo(DictionaryCampaign::class, 'dictionary_campaign_id');
......
......@@ -50,41 +50,36 @@ class AddAdExtensions extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['AddResults'])) {
return;
}
foreach ($response['result']['AddResults'] as $key => $add_result) {
$goalAdExtension = $this->goalAdExtensions->get($key);
if (!isset($response['result']['AddResults'])) {
return;
}
if (!isset($add_result['Id'])) {
Log::debug("AddAdExtension, empty Id");
Log::debug($add_result);
Log::debug($this->getParams()['AdExtensions'][$key]);
foreach ($response['result']['AddResults'] as $key => $add_result) {
GoalAdExtension::where('id', $goalAdExtension->getKey())
->update([
'reserve_create_at' => null,
]);
$goalAdExtension = $this->goalAdExtensions->get($key);
continue;
}
$external_id = (string)$add_result['Id'];
if (!isset($add_result['Id'])) {
Log::debug("AddAdExtension, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($add_result);
Log::debug($this->getParams()['AdExtensions'][$key]);
GoalAdExtension::where('id', $goalAdExtension->getKey())
->update([
'external_id' => $external_id,
'external_upload_at' => Carbon::now(),
'reserve_create_at' => null,
]);
continue;
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
$external_id = (string)$add_result['Id'];
GoalAdExtension::where('id', $goalAdExtension->getKey())
->update([
'external_id' => $external_id,
'external_upload_at' => Carbon::now(),
'reserve_create_at' => null,
]);
}
}
......
......@@ -49,57 +49,52 @@ class AddAdGroups extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['AddResults'])) {
return;
}
foreach ($response['result']['AddResults'] as $key => $add_result) {
$goalAdGroup = $this->goalAdGroups->get($key);
if (!isset($response['result']['AddResults'])) {
return;
}
if (!isset($add_result['Id'])) {
Log::debug("AddAdGroup, empty Id");
Log::debug($add_result);
Log::debug($this->getParams()['AdGroups'][$key]);
foreach ($response['result']['AddResults'] as $key => $add_result) {
GoalAdGroup::where('id', $goalAdGroup->getKey())
->update([
'reserve_create_at' => null,
]);
$goalAdGroup = $this->goalAdGroups->get($key);
continue;
}
$external_id = (string)$add_result['Id'];
if (!isset($add_result['Id'])) {
Log::debug("AddAdGroup, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($add_result);
Log::debug($this->getParams()['AdGroups'][$key]);
GoalAdGroup::where('id', $goalAdGroup->getKey())
->update([
'external_id' => $external_id,
'external_upload_at' => Carbon::now(),
'reserve_create_at' => null,
]);
$goalAdGroup->goalKeywords()->update([
'goal_ad_group_external_id' => $external_id,
]);
continue;
}
$goalAdGroup->goalAdvertisements()->update([
'goal_ad_group_external_id' => $external_id,
]);
$external_id = (string)$add_result['Id'];
$goalAdGroup->goalBidModifiers()->update([
'goal_ad_group_external_id' => $external_id,
GoalAdGroup::where('id', $goalAdGroup->getKey())
->update([
'external_id' => $external_id,
'external_upload_at' => Carbon::now(),
'reserve_create_at' => null,
]);
$goalAdGroup->goalAudienceTargets()->update([
'goal_ad_group_external_id' => $external_id,
]);
$goalAdGroup->goalKeywords()->update([
'goal_ad_group_external_id' => $external_id,
]);
$goalAdGroup->goalAdvertisements()->update([
'goal_ad_group_external_id' => $external_id,
]);
$goalAdGroup->goalBidModifiers()->update([
'goal_ad_group_external_id' => $external_id,
]);
$goalAdGroup->goalAudienceTargets()->update([
'goal_ad_group_external_id' => $external_id,
]);
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
}
}
......
......@@ -47,41 +47,36 @@ class AddAdImages extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['AddResults'])) {
return;
}
foreach ($response['result']['AddResults'] as $key => $add_result) {
$goalAdImage = $this->goalAdImages->get($key);
if (!isset($add_result['AdImageHash'])) {
Log::debug("AddAdImage, empty AdImageHash");
Log::debug($add_result);
Log::debug($this->getParams()['AdImages'][$key]['Name']);
if (!isset($response['result']['AddResults'])) {
return;
}
$goalAdImage->where('id', $goalAdImage->getKey())
->update([
'reserve_create_at' => null,
]);
foreach ($response['result']['AddResults'] as $key => $add_result) {
continue;
}
$goalAdImage = $this->goalAdImages->get($key);
$hash = (string)$add_result['AdImageHash'];
if (!isset($add_result['AdImageHash'])) {
Log::debug("AddAdImage, empty AdImageHash, token_id {$this->getToken()->getKey()}");
Log::debug($add_result);
Log::debug($this->getParams()['AdImages'][$key]['Name']);
$goalAdImage->where('id', $goalAdImage->getKey())
->update([
'hash' => $hash,
'external_upload_at' => Carbon::now(),
'reserve_create_at' => null,
]);
continue;
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
$hash = (string)$add_result['AdImageHash'];
$goalAdImage->where('id', $goalAdImage->getKey())
->update([
'hash' => $hash,
'external_upload_at' => Carbon::now(),
'reserve_create_at' => null,
]);
}
}
......
......@@ -50,71 +50,66 @@ class AddAds extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['AddResults'])) {
return;
}
if (!isset($response['result']['AddResults'])) {
return;
}
foreach ($response['result']['AddResults'] as $key => $add_result) {
/* @var $goalAd GoalAdvertisement|Advertisement|\stdClass */
$goalAd = $this->goalAds->get($key);
if (!isset($add_result['Id'])) {
if (
isset($add_result['Errors'][0]['Code'])
&&
$add_result['Errors'][0]['Code'] == 8800
&&
isset($add_result['Errors'][0]['Details'])
&&
$add_result['Errors'][0]['Details'] === 'Ad group not found'
) {
if ($this->getToken()->isMain()) {
Advertisement::where('id', $goalAd->id)
->forceDelete();
} else {
$model = GoalAdvertisement::with('goalAdGroup')->firstWhere('id', $goalAd->id);
if ($model) {
if ($model->goalAdGroup) {
$model->goalAdGroup->delete();
}
$model->forceDelete();
}
}
foreach ($response['result']['AddResults'] as $key => $add_result) {
continue;
/* @var $goalAd GoalAdvertisement|Advertisement|\stdClass */
$goalAd = $this->goalAds->get($key);
}
if (!isset($add_result['Id'])) {
Log::debug("AddAds, empty Id");
Log::debug($add_result);
Log::debug($this->getParams()['Ads'][$key]);
if (
isset($add_result['Errors'][0]['Code'])
&&
$add_result['Errors'][0]['Code'] == 8800
&&
isset($add_result['Errors'][0]['Details'])
&&
$add_result['Errors'][0]['Details'] === 'Ad group not found'
) {
GoalAdvertisement::whereId($goalAd->id)
->update([
'reserve_create_at' => null,
]);
if ($this->getToken()->isMain()) {
Advertisement::where('id', $goalAd->id)
->forceDelete();
} else {
$model = GoalAdvertisement::with('goalAdGroup')->firstWhere('id', $goalAd->id);
if ($model) {
if ($model->goalAdGroup) {
$model->goalAdGroup->delete();
}
$model->forceDelete();
}
}
continue;
}
$external_id = (string)$add_result['Id'];
Log::debug("AddAds, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($add_result);
Log::debug($this->getParams()['Ads'][$key]);
GoalAdvertisement::whereId($goalAd->id)
->update([
'external_id' => $external_id,
'external_upload_at' => Carbon::now(),
'reserve_create_at' => null,
]);
continue;
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
$external_id = (string)$add_result['Id'];
GoalAdvertisement::whereId($goalAd->id)
->update([
'external_id' => $external_id,
'external_upload_at' => Carbon::now(),
'reserve_create_at' => null,
]);
}
}
......
......@@ -48,42 +48,37 @@ class AddAudienceTargets extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['AddResults'])) {
return;
}
foreach ($response['result']['AddResults'] as $key => $add_result) {
$goalAudienceTarget = $this->goalAudienceTargets->get($key);
if (!isset($response['result']['AddResults'])) {
return;
}
if (!isset($add_result['Id'])) {
Log::debug("AddAudienceTarget, empty Id");
Log::debug($add_result);
Log::debug($this->getParams()['AudienceTargets'][$key]);
foreach ($response['result']['AddResults'] as $key => $add_result) {
$goalAudienceTarget = $this->goalAudienceTargets->get($key);
GoalAudienceTarget::where('id', $goalAudienceTarget->getKey())
->update([
'reserve_create_at' => null,
]);
if (!isset($add_result['Id'])) {
Log::debug("AddAudienceTarget, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($add_result);
Log::debug($this->getParams()['AudienceTargets'][$key]);
continue;
}
$external_id = (string)$add_result['Id'];
GoalAudienceTarget::where('id', $goalAudienceTarget->getKey())
->update([
'external_id' => $external_id,
'external_upload_at' => Carbon::now(),
'reserve_create_at' => null,
]);
continue;
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
$external_id = (string)$add_result['Id'];
GoalAudienceTarget::where('id', $goalAudienceTarget->getKey())
->update([
'external_id' => $external_id,
'external_upload_at' => Carbon::now(),
'reserve_create_at' => null,
]);
}
}
......
......@@ -47,47 +47,42 @@ class AddBidModifiers extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['AddResults'])) {
return;
}
foreach ($response['result']['AddResults'] as $key => $add_result) {
if (!isset($response['result']['AddResults'])) {
return;
}
/* @var $goalBidModifier \stdClass */
$goalBidModifier = $this->goalBidModifiers->get($key);
foreach ($response['result']['AddResults'] as $key => $add_result) {
$ids = json_decode($goalBidModifier->ids);
/* @var $goalBidModifier \stdClass */
$goalBidModifier = $this->goalBidModifiers->get($key);
if (!isset($add_result['Ids'])) {
Log::debug("AddBidModifiers, empty Ids");
Log::debug($add_result);
Log::debug($this->getParams()['BidModifiers'][$key]);
$ids = json_decode($goalBidModifier->ids);
GoalBidModifier::whereIn('id', $ids)
->update([
'reserve_create_at' => null,
]);
if (!isset($add_result['Ids'])) {
Log::debug("AddBidModifiers, empty Ids, token_id {$this->getToken()->getKey()}");
Log::debug($add_result);
Log::debug($this->getParams()['BidModifiers'][$key]);
continue;
}
GoalBidModifier::whereIn('id', $ids)
->update([
'reserve_create_at' => null,
]);
foreach ($add_result['Ids'] as $id_key => $external_id) {
$external_id = (string)$external_id;
$id = $ids[$id_key];
continue;
}
GoalBidModifier::where('id', $id)
->update([
'external_id' => $external_id,
'external_upload_at' => Carbon::now(),
'reserve_create_at' => null,
]);
}
foreach ($add_result['Ids'] as $id_key => $external_id) {
$external_id = (string)$external_id;
$id = $ids[$id_key];
GoalBidModifier::where('id', $id)
->update([
'external_id' => $external_id,
'external_upload_at' => Carbon::now(),
'reserve_create_at' => null,
]);
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
}
}
......
......@@ -51,66 +51,61 @@ class AddCampaigns extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['AddResults'])) {
return;
}
if (!isset($response['result']['AddResults'])) {
return;
}
foreach ($response['result']['AddResults'] as $key => $add_result) {
foreach ($response['result']['AddResults'] as $key => $add_result) {
$dictionaryCampaign = $this->dictionaryCampaigns->get($key);
$dictionaryCampaign = $this->dictionaryCampaigns->get($key);
if (!isset($add_result['Id'])) {
Log::debug("AddCampaigns, empty Id");
Log::debug($add_result);
Log::debug($this->getParams()['Campaigns'][$key]);
if (!isset($add_result['Id'])) {
Log::debug("AddCampaigns, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($add_result);
Log::debug($this->getParams()['Campaigns'][$key]);
DictionaryCampaign::whereExternalId($dictionaryCampaign->external_id)->update([
'reserve_create_at' => null,
]);
$dictionaryCampaign->update([
'reserve_create_at' => null,
]);
DictionaryCampaign::whereExternalId($dictionaryCampaign->external_id)->update([
'reserve_create_at' => null,
]);
$dictionaryCampaign->update([
'reserve_create_at' => null,
]);
continue;
}
continue;
}
$external_id = (string)$add_result['Id'];
$external_id = (string)$add_result['Id'];
DictionaryCampaign::whereExternalId($external_id)->update([
'external_upload_at' => Carbon::now(),
'reserve_create_at' => null,
]);
DictionaryCampaign::whereExternalId($external_id)->update([
'external_upload_at' => Carbon::now(),
'reserve_create_at' => null,
]);
$dictionaryCampaign->groups()->update([
'dictionary_campaign_external_id' => $external_id,
]);
$dictionaryCampaign->groups()->update([
'dictionary_campaign_external_id' => $external_id,
]);
$dictionaryCampaign->goalKeywords()->update([
'dictionary_campaign_external_id' => $external_id,
]);
$dictionaryCampaign->goalKeywords()->update([
'dictionary_campaign_external_id' => $external_id,
]);
$dictionaryCampaign->goalAdvertisements()->update([
'dictionary_campaign_external_id' => $external_id,
]);
$dictionaryCampaign->goalAdvertisements()->update([
'dictionary_campaign_external_id' => $external_id,
]);
$dictionaryCampaign->goalBidModifiers()->update([
'dictionary_campaign_external_id' => $external_id,
]);
$dictionaryCampaign->goalBidModifiers()->update([
'dictionary_campaign_external_id' => $external_id,
]);
$dictionaryCampaign->goalVCards()->update([
'dictionary_campaign_external_id' => $external_id,
]);
$dictionaryCampaign->goalVCards()->update([
'dictionary_campaign_external_id' => $external_id,
]);
$dictionaryCampaign->goalAudienceTargets()->update([
'dictionary_campaign_external_id' => $external_id,
]);
$dictionaryCampaign->goalAudienceTargets()->update([
'dictionary_campaign_external_id' => $external_id,
]);
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
}
}
......
......@@ -60,6 +60,28 @@ class AddKeywords extends DirectRequest
$goalKeyword = $this->goalKeywords[$key];
if (!isset($add_result['Id'])) {
if (
isset($add_result['Errors'][0]['Code'])
&&
$add_result['Errors'][0]['Code'] == 8800
&&
isset($add_result['Errors'][0]['Details'])
&&
$add_result['Errors'][0]['Details'] === 'Ad group not found'
) {
$model = GoalKeyword::with('goalAdGroup')->firstWhere('id', $goalKeyword->id);
if ($model) {
if ($model->goalAdGroup) {
$model->goalAdGroup->delete();
}
$model->delete();
}
continue;
}
Log::debug("AddKeywords, empty Id");
Log::debug($add_result);
Log::debug($this->getParams()['Keywords'][$key]);
......
......@@ -50,41 +50,36 @@ class AddNegativeKeywordSharedSets extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['AddResults'])) {
return;
}
foreach ($response['result']['AddResults'] as $key => $add_result) {
$goalNegativeKeywordSharedSet = $this->goalNegativeKeywordSharedSets->get($key);
if (!isset($response['result']['AddResults'])) {
return;
}
if (!isset($add_result['Id'])) {
Log::debug("AddNegativeKeywordSharedSet, empty Id");
Log::debug($add_result);
Log::debug($this->getParams()['NegativeKeywordSharedSets'][$key]);
foreach ($response['result']['AddResults'] as $key => $add_result) {
GoalNegativeKeywordSharedSet::where('id', $goalNegativeKeywordSharedSet->id)
->update([
'reserve_create_at' => null,
]);
$goalNegativeKeywordSharedSet = $this->goalNegativeKeywordSharedSets->get($key);
continue;
}
if (!isset($add_result['Id'])) {
Log::debug("AddNegativeKeywordSharedSet, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($add_result);
Log::debug($this->getParams()['NegativeKeywordSharedSets'][$key]);
$external_id = (string)$add_result['Id'];
GoalNegativeKeywordSharedSet::where('id', $goalNegativeKeywordSharedSet->getKey())
GoalNegativeKeywordSharedSet::where('id', $goalNegativeKeywordSharedSet->id)
->update([
'external_id' => $external_id,
'external_upload_at' => Carbon::now(),
'reserve_create_at' => null,
]);
continue;
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
$external_id = (string)$add_result['Id'];
GoalNegativeKeywordSharedSet::where('id', $goalNegativeKeywordSharedSet->getKey())
->update([
'external_id' => $external_id,
'external_upload_at' => Carbon::now(),
'reserve_create_at' => null,
]);
}
}
......
......@@ -49,45 +49,40 @@ class AddRetargetinglists extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['AddResults'])) {
return;
}
foreach ($response['result']['AddResults'] as $key => $add_result) {
$goalRetargetinglist = $this->goalRetargetinglists->get($key);
if (!isset($add_result['Id'])) {
Log::debug("AddRetargetinglist, empty Id");
Log::debug($add_result);
Log::debug($this->getParams()['RetargetingLists'][$key]);
if (!isset($response['result']['AddResults'])) {
return;
}
GoalRetargetinglist::where('id', $goalRetargetinglist->getKey())
->update([
'reserve_create_at' => null,
]);
foreach ($response['result']['AddResults'] as $key => $add_result) {
continue;
}
$goalRetargetinglist = $this->goalRetargetinglists->get($key);
$external_id = (string)$add_result['Id'];
if (!isset($add_result['Id'])) {
Log::debug("AddRetargetinglist, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($add_result);
Log::debug($this->getParams()['RetargetingLists'][$key]);
GoalRetargetinglist::where('id', $goalRetargetinglist->getKey())
->update([
'external_id' => $external_id,
'external_upload_at' => Carbon::now(),
'reserve_create_at' => null,
]);
$goalRetargetinglist->goalAudienceTargets()->update([
'goal_retargetinglist_external_id' => $external_id,
continue;
}
$external_id = (string)$add_result['Id'];
GoalRetargetinglist::where('id', $goalRetargetinglist->getKey())
->update([
'external_id' => $external_id,
'external_upload_at' => Carbon::now(),
'reserve_create_at' => null,
]);
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
$goalRetargetinglist->goalAudienceTargets()->update([
'goal_retargetinglist_external_id' => $external_id,
]);
}
}
......
......@@ -49,43 +49,38 @@ class AddSitelinks extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['AddResults'])) {
return;
}
foreach ($response['result']['AddResults'] as $key => $add_result) {
$goalSitelink = $this->goalSitelinks->get($key);
if (!isset($add_result['Id'])) {
Log::debug("AddSitelink, empty Id");
Log::debug($add_result);
Log::debug($this->getParams()['SitelinksSets'][$key]);
if (!isset($response['result']['AddResults'])) {
return;
}
$goalSitelink->update([
'reserve_create_at' => null,
]);
foreach ($response['result']['AddResults'] as $key => $add_result) {
continue;
}
$goalSitelink = $this->goalSitelinks->get($key);
$external_id = (string)$add_result['Id'];
if (!isset($add_result['Id'])) {
Log::debug("AddSitelink, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($add_result);
Log::debug($this->getParams()['SitelinksSets'][$key]);
$goalSitelink->update([
'external_id' => $external_id,
'external_upload_at' => Carbon::now(),
'reserve_create_at' => null,
]);
$goalSitelink->goalAdvertisements()->update([
'goal_sitelink_external_id' => $external_id,
]);
continue;
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
$external_id = (string)$add_result['Id'];
$goalSitelink->update([
'external_id' => $external_id,
'external_upload_at' => Carbon::now(),
'reserve_create_at' => null,
]);
$goalSitelink->goalAdvertisements()->update([
'goal_sitelink_external_id' => $external_id,
]);
}
}
......
......@@ -51,43 +51,38 @@ class AddVCards extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['AddResults'])) {
return;
}
foreach ($response['result']['AddResults'] as $key => $add_result) {
$goalVCard = $this->goalVCards->get($key);
if (!isset($add_result['Id'])) {
Log::debug("AddNegativeKeywordSharedSet, empty Id");
Log::debug($add_result);
Log::debug($this->getParams()['VCards'][$key]);
if (!isset($response['result']['AddResults'])) {
return;
}
$goalVCard->update([
'reserve_create_at' => null,
]);
foreach ($response['result']['AddResults'] as $key => $add_result) {
continue;
}
$goalVCard = $this->goalVCards->get($key);
$external_id = (string)$add_result['Id'];
if (!isset($add_result['Id'])) {
Log::debug("AddNegativeKeywordSharedSet, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($add_result);
Log::debug($this->getParams()['VCards'][$key]);
$goalVCard->update([
'external_id' => $external_id,
'external_upload_at' => Carbon::now(),
'reserve_create_at' => null,
]);
$goalVCard->goalAdvertisements()->update([
'goal_v_card_external_id' => $external_id,
]);
continue;
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
$external_id = (string)$add_result['Id'];
$goalVCard->update([
'external_id' => $external_id,
'external_upload_at' => Carbon::now(),
'reserve_create_at' => null,
]);
$goalVCard->goalAdvertisements()->update([
'goal_v_card_external_id' => $external_id,
]);
}
}
......
......@@ -35,92 +35,86 @@ class ArchiveAds extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['ArchiveResults'])) {
return;
}
foreach ($response['result']['ArchiveResults'] as $key => $archive_result) {
if (!isset($archive_result['Id'])) {
$external_id = $this->getParams()['SelectionCriteria']['Ids'][$key];
/*
* array (
* 0 =>
* array (
* 'Code' => 8300,
* 'Message' => 'Invalid object status',
* 'Details' => 'Ad is a draft and cannot be archived',
* ),
* )
*/
if (isset($archive_result['Errors'][0]['Code']) == 8300) {
if ($this->getToken()->isMain()) {
Advertisement::whereExternalId($external_id)
->update([
'deleted_need' => Carbon::now(),
'archived_need' => null,
'reserve_archive_at' => null,
]);
} else {
GoalAdvertisement::whereExternalId($external_id)
->update([
'deleted_need' => Carbon::now(),
'archived_need' => null,
'reserve_archive_at' => null,
]);
}
continue;
} else {
Log::debug("ArchiveAds, empty Id");
Log::debug($archive_result);
Log::debug($external_id);
}
if (!isset($response['result']['ArchiveResults'])) {
return;
}
foreach ($response['result']['ArchiveResults'] as $key => $archive_result) {
if (!isset($archive_result['Id'])) {
$external_id = $this->getParams()['SelectionCriteria']['Ids'][$key];
/*
* array (
* 0 =>
* array (
* 'Code' => 8300,
* 'Message' => 'Invalid object status',
* 'Details' => 'Ad is a draft and cannot be archived',
* ),
* )
*/
if (isset($archive_result['Errors'][0]['Code']) == 8300) {
if ($this->getToken()->isMain()) {
Advertisement::whereExternalId($external_id)
->update([
'deleted_need' => Carbon::now(),
'archived_need' => null,
'reserve_archive_at' => null,
]);
} else {
GoalAdvertisement::whereExternalId($external_id)
->update([
'deleted_need' => Carbon::now(),
'archived_need' => null,
'reserve_archive_at' => null,
]);
}
continue;
}
} else {
$external_id = (string)$archive_result['Id'];
Log::debug("ArchiveAds, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($archive_result);
Log::debug($external_id);
}
if ($this->getToken()->isMain()) {
Advertisement::needArchived()
->where('external_id', $external_id)
Advertisement::whereExternalId($external_id)
->update([
'state' => Advertisement::STATE_ARCHIVED,
'status_clarification' => 'Archived.',
'archived_need' => null,
'reserve_archive_at' => null,
]);
} else {
GoalAdvertisement::forExternal()->needArchived()
->where('external_id', $external_id)
GoalAdvertisement::whereExternalId($external_id)
->update([
'archive_at' => Carbon::now(),
'archived_need' => null,
'reserve_archive_at' => null,
]);
}
continue;
}
$external_id = (string)$archive_result['Id'];
if ($this->getToken()->isMain()) {
Advertisement::needArchived()
->where('external_id', $external_id)
->update([
'state' => Advertisement::STATE_ARCHIVED,
'status_clarification' => 'Archived.',
'archived_need' => null,
'reserve_archive_at' => null,
]);
} else {
GoalAdvertisement::forExternal()->needArchived()
->where('external_id', $external_id)
->update([
'archive_at' => Carbon::now(),
'archived_need' => null,
'reserve_archive_at' => null,
]);
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
}
}
......
......@@ -39,7 +39,7 @@ class DeleteAdGroups extends DirectRequest
foreach ($response['result']['DeleteResults'] as $key => $delete_result) {
if (!isset($delete_result['Id'])) {
Log::debug("DeleteAdGroups, empty Id");
Log::debug("DeleteAdGroups, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($delete_result);
Log::debug($this->getParams()['SelectionCriteria']['Ids'][$key]);
......
......@@ -34,76 +34,70 @@ class DeleteAds extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['DeleteResults'])) {
return;
}
foreach ($response['result']['DeleteResults'] as $key => $delete_result) {
if (!isset($delete_result['Id'])) {
if (!isset($response['result']['DeleteResults'])) {
return;
}
if (
isset($delete_result['Errors'][0]['Code'])
&&
$delete_result['Errors'][0]['Code'] == 8800
) {
foreach ($response['result']['DeleteResults'] as $key => $delete_result) {
if ($external_id = $this->getParams()['SelectionCriteria']['Ids'][$key]){
if (!isset($delete_result['Id'])) {
if ($this->getToken()->isMain()) {
Advertisement::needDeleted()
->where('external_id', $external_id)
->delete();
} else {
GoalAdvertisement::forExternal()->needDeleted()
->where('external_id', $external_id)
->delete();
}
if (
isset($delete_result['Errors'][0]['Code'])
&&
$delete_result['Errors'][0]['Code'] == 8800
) {
continue;
if ($external_id = $this->getParams()['SelectionCriteria']['Ids'][$key]){
if ($this->getToken()->isMain()) {
Advertisement::needDeleted()
->where('external_id', $external_id)
->delete();
} else {
GoalAdvertisement::forExternal()->needDeleted()
->where('external_id', $external_id)
->delete();
}
}
Log::debug("DeleteAds, empty Id");
Log::debug($delete_result);
$external_id = $this->getParams()['SelectionCriteria']['Ids'][$key];
Log::debug($external_id);
if ($this->getToken()->isMain()) {
Advertisement::whereExternalId($external_id)
->update([
'reserve_delete_at' => null,
]);
} else {
GoalAdvertisement::whereExternalId($external_id)
->update([
'reserve_delete_at' => null,
]);
}
continue;
continue;
}
}
$external_id = (string)$delete_result['Id'];
Log::debug("DeleteAds, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($delete_result);
$external_id = $this->getParams()['SelectionCriteria']['Ids'][$key];
Log::debug($external_id);
if ($this->getToken()->isMain()) {
Advertisement::needDeleted()
->where('external_id', $external_id)
->delete();
Advertisement::whereExternalId($external_id)
->update([
'reserve_delete_at' => null,
]);
} else {
GoalAdvertisement::forExternal()->needDeleted()
->where('external_id', $external_id)
->delete();
GoalAdvertisement::whereExternalId($external_id)
->update([
'reserve_delete_at' => null,
]);
}
continue;
}
$external_id = (string)$delete_result['Id'];
if ($this->getToken()->isMain()) {
Advertisement::needDeleted()
->where('external_id', $external_id)
->delete();
} else {
GoalAdvertisement::forExternal()->needDeleted()
->where('external_id', $external_id)
->delete();
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
}
}
......
......@@ -34,51 +34,45 @@ class DeleteAudienceTarget extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['DeleteResults'])) {
return;
}
foreach ($response['result']['DeleteResults'] as $key => $delete_result) {
if (!isset($delete_result['Id'])) {
Log::debug("DeleteAudienceTargets, empty Id");
Log::debug($delete_result);
$external_id = $this->getParams()['SelectionCriteria']['Ids'][$key];
Log::debug($external_id);
if (!isset($response['result']['DeleteResults'])) {
return;
}
if ($this->getToken()->isMain()) {
AudienceTarget::whereExternalId($external_id)
->update([
'reserve_delete_at' => null,
]);
} else {
GoalAudienceTarget::whereExternalId($external_id)
->update([
'reserve_delete_at' => null,
]);
}
foreach ($response['result']['DeleteResults'] as $key => $delete_result) {
continue;
if (!isset($delete_result['Id'])) {
}
$external_id = (string)$delete_result['Id'];
Log::debug("DeleteAudienceTargets, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($delete_result);
$external_id = $this->getParams()['SelectionCriteria']['Ids'][$key];
Log::debug($external_id);
if ($this->getToken()->isMain()) {
AudienceTarget::whereExternalId($external_id)
->delete();
->update([
'reserve_delete_at' => null,
]);
} else {
GoalAudienceTarget::whereExternalId($external_id)
->delete();
->update([
'reserve_delete_at' => null,
]);
}
continue;
}
$external_id = (string)$delete_result['Id'];
if ($this->getToken()->isMain()) {
AudienceTarget::whereExternalId($external_id)
->delete();
} else {
GoalAudienceTarget::whereExternalId($external_id)
->delete();
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
}
}
......
......@@ -33,33 +33,28 @@ class DeleteBidModifiers extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['DeleteResults'])) {
return;
}
foreach ($response['result']['DeleteResults'] as $key => $delete_result) {
if (!isset($delete_result['Id'])) {
if (!isset($response['result']['DeleteResults'])) {
return;
}
if (isset($delete_result['Errors'][0]['Message']) && $delete_result['Errors'][0]['Message'] === 'Object not found') {
GoalBidModifier::where('external_id', $this->getParams()['SelectionCriteria']['Ids'][$key])->delete();
continue;
}
foreach ($response['result']['DeleteResults'] as $key => $delete_result) {
if (!isset($delete_result['Id'])) {
Log::debug("DeleteBidModifier, empty Id");
Log::debug($delete_result);
Log::debug($this->getParams()['SelectionCriteria']['Ids'][$key]);
if (isset($delete_result['Errors'][0]['Message']) && $delete_result['Errors'][0]['Message'] === 'Object not found') {
GoalBidModifier::where('external_id', $this->getParams()['SelectionCriteria']['Ids'][$key])->delete();
continue;
}
$external_id = (string)$delete_result['Id'];
Log::debug("DeleteBidModifier, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($delete_result);
Log::debug($this->getParams()['SelectionCriteria']['Ids'][$key]);
continue;
}
GoalBidModifier::where('external_id', $external_id)->delete();
$external_id = (string)$delete_result['Id'];
GoalBidModifier::where('external_id', $external_id)->delete();
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
}
}
......
......@@ -41,33 +41,28 @@ class DeleteKeywords extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['DeleteResults'])) {
return;
}
if (!isset($response['result']['DeleteResults'])) {
return;
}
foreach ($response['result']['DeleteResults'] as $key => $delete_result) {
if (!isset($delete_result['Id'])) {
Log::debug("DeleteKeywords, empty Id");
Log::debug($delete_result);
Log::debug($this->getParams()['SelectionCriteria']['Ids'][$key]);
if ($delete_result['Errors'][0]['Code']==8800){
//объекта по какой то причине нет
if ($external_id = $this->getParams()['SelectionCriteria']['Ids'][$key]){
GoalKeyword::where('external_id', $external_id)->delete();
}
foreach ($response['result']['DeleteResults'] as $key => $delete_result) {
if (!isset($delete_result['Id'])) {
Log::debug("DeleteKeywords, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($delete_result);
Log::debug($this->getParams()['SelectionCriteria']['Ids'][$key]);
if ($delete_result['Errors'][0]['Code']==8800){
//объекта по какой то причине нет
if ($external_id = $this->getParams()['SelectionCriteria']['Ids'][$key]){
GoalKeyword::where('external_id', $external_id)->delete();
}
continue;
}
continue;
}
$external_id = (string)$delete_result['Id'];
$external_id = (string)$delete_result['Id'];
GoalKeyword::where('external_id', $external_id)->delete();
GoalKeyword::where('external_id', $external_id)->delete();
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
}
}
......
......@@ -34,72 +34,66 @@ class DeleteVCards extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['DeleteResults'])) {
return;
}
foreach ($response['result']['DeleteResults'] as $key => $delete_result) {
if (!isset($delete_result['Id'])) {
if (!isset($response['result']['DeleteResults'])) {
return;
}
if (
isset($delete_result['Errors'][0]['Code'])
&&
$delete_result['Errors'][0]['Code'] == 8800
) {
foreach ($response['result']['DeleteResults'] as $key => $delete_result) {
if ($external_id = $this->getParams()['SelectionCriteria']['Ids'][$key]){
if (!isset($delete_result['Id'])) {
if ($this->getToken()->isMain()) {
VCard::whereExternalId($external_id)
->delete();
} else {
GoalVCard::whereExternalId($external_id)
->delete();
}
if (
isset($delete_result['Errors'][0]['Code'])
&&
$delete_result['Errors'][0]['Code'] == 8800
) {
continue;
if ($external_id = $this->getParams()['SelectionCriteria']['Ids'][$key]){
if ($this->getToken()->isMain()) {
VCard::whereExternalId($external_id)
->delete();
} else {
GoalVCard::whereExternalId($external_id)
->delete();
}
}
Log::debug("DeleteVCards, empty Id");
Log::debug($delete_result);
$external_id = $this->getParams()['SelectionCriteria']['Ids'][$key];
Log::debug($external_id);
if ($this->getToken()->isMain()) {
VCard::whereExternalId($external_id)
->update([
'reserve_delete_at' => null,
]);
} else {
GoalVCard::whereExternalId($external_id)
->update([
'reserve_delete_at' => null,
]);
}
continue;
continue;
}
}
$external_id = (string)$delete_result['Id'];
Log::debug("DeleteVCards, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($delete_result);
$external_id = $this->getParams()['SelectionCriteria']['Ids'][$key];
Log::debug($external_id);
if ($this->getToken()->isMain()) {
VCard::whereExternalId($external_id)
->delete();
->update([
'reserve_delete_at' => null,
]);
} else {
GoalVCard::whereExternalId($external_id)
->delete();
->update([
'reserve_delete_at' => null,
]);
}
continue;
}
$external_id = (string)$delete_result['Id'];
if ($this->getToken()->isMain()) {
VCard::whereExternalId($external_id)
->delete();
} else {
GoalVCard::whereExternalId($external_id)
->delete();
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
}
}
......
......@@ -45,42 +45,36 @@ class GetAdExtensions extends DirectRequest
function handle($response)
{
try {
if (isset($response['result']['AdExtensions'])) {
foreach ($response['result']['AdExtensions'] as $ad_extension) {
$external_id = (string)$ad_extension['Id'];
if ($this->getToken()->isMain()) {
$data = [
'external_id' => $external_id,
'callout_text' => $ad_extension['Callout']['CalloutText'],
'associated' => $ad_extension['Associated'] === 'YES',
'status' => $ad_extension['Status'],
'status_clarification' => $ad_extension['StatusClarification'],
];
$adExtension = AdExtension::updateOrCreate([
'external_id' => $external_id
], $data);
if ($adExtension->wasChanged($adExtension::getPropertiesWatch()->toArray())) {
$adExtension->goalAdExtensions()->forExternal()->update([
'updated_need' => Carbon::now(),
]);
}
} else {
//
if (isset($response['result']['AdExtensions'])) {
foreach ($response['result']['AdExtensions'] as $ad_extension) {
$external_id = (string)$ad_extension['Id'];
if ($this->getToken()->isMain()) {
$data = [
'external_id' => $external_id,
'callout_text' => $ad_extension['Callout']['CalloutText'],
'associated' => $ad_extension['Associated'] === 'YES',
'status' => $ad_extension['Status'],
'status_clarification' => $ad_extension['StatusClarification'],
];
$adExtension = AdExtension::updateOrCreate([
'external_id' => $external_id
], $data);
if ($adExtension->wasChanged($adExtension::getPropertiesWatch()->toArray())) {
$adExtension->goalAdExtensions()->forExternal()->update([
'updated_need' => Carbon::now(),
]);
}
} else {
//
}
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
}
}
}
......
......@@ -49,165 +49,159 @@ class GetAdGroups extends DirectRequest
function handle($response)
{
try {
$external_ids = [];
$external_ids = [];
if (!isset($response['result']['AdGroups'])) {
return;
}
foreach ($response['result']['AdGroups'] as $ad_group) {
$external_id = (string)$ad_group['CampaignId'];
if (isset($external_ids[$external_id])) {
continue;
}
$external_ids[$external_id] = true;
}
if (!isset($response['result']['AdGroups'])) {
return;
}
if (!count($external_ids)) {
return;
}
foreach ($response['result']['AdGroups'] as $ad_group) {
$external_id = (string)$ad_group['CampaignId'];
if ($this->getToken()->isMain()) {
$campaigns = Campaigns::whereIn('external_id', array_keys($external_ids))
->get()
->keyBy('external_id');
} else {
$campaigns = DictionaryCampaign::whereIn('external_id', array_keys($external_ids))
->get()
->keyBy('external_id');
if (isset($external_ids[$external_id])) {
continue;
}
$external_ids[$external_id] = true;
}
$campaign_ids_synced_need = [];
foreach ($response['result']['AdGroups'] as $ad_group) {
$external_id = (string)$ad_group['CampaignId'];
if (!$campaign = $campaigns[$external_id] ?? false) {
continue;
}
if (!count($external_ids)) {
return;
}
$external_id = (string)$ad_group['Id'];
if ($this->getToken()->isMain()) {
$campaigns = Campaigns::whereIn('external_id', array_keys($external_ids))
->get()
->keyBy('external_id');
} else {
$campaigns = DictionaryCampaign::whereIn('external_id', array_keys($external_ids))
->get()
->keyBy('external_id');
}
if ($this->getToken()->isMain()) {
$campaign_ids_synced_need = [];
$negative_keyword_shared_sets = collect();
foreach ($response['result']['AdGroups'] as $ad_group) {
$data = [
'campaign_id' => $campaign->getKey(),
'external_id' => $external_id,
'campaign_external_id' => $campaign->external_id,
'name' => $ad_group['Name'],
'region_ids' => $ad_group['RegionIds'],
'negative_keywords' => $ad_group['NegativeKeywords'],
'tracking_params' => $ad_group['TrackingParams'],
'mobile_app_ad_group' => $ad_group['MobileAppAdGroup'] ?? null,
'dynamic_text_ad_group' => $ad_group['DynamicTextAdGroup'] ?? null,
'dynamic_text_feed_ad_group' => $ad_group['DynamicTextFeedAdGroup'] ?? null,
'cpm_banner_user_profile_ad_group' => $ad_group['CpmBannerUserProfileAdGroup'] ?? null,
'cpm_video_ad_group' => $ad_group['CpmVideoAdGroup'] ?? null,
'smart_ad_group' => $ad_group['SmartAdGroup'] ?? null,
$external_id = (string)$ad_group['CampaignId'];
'status' => $ad_group['Status'],
'type' => $ad_group['Type'],
'sub_type' => $ad_group['Subtype'],
'serving_status' => $ad_group['ServingStatus'],
'restricted_region_ids' => $ad_group['RestrictedRegionIds'],
'updated_self' => null,
'updated_at' => Carbon::now(),
'deleted_at' => null,
];
if (!$campaign = $campaigns[$external_id] ?? false) {
continue;
}
$negative_keyword_shared_set_external_ids_array = [];
foreach ($ad_group['NegativeKeywordSharedSetIds']['Items'] ?? [] as $negative_keyword_shared_set_external_id) {
$external_id = (string)$ad_group['Id'];
$negative_keyword_shared_set_external_id = (string)$negative_keyword_shared_set_external_id;
if ($this->getToken()->isMain()) {
$negativeKeywordSharedSet = NegativeKeywordSharedSet::firstWhere('external_id', $negative_keyword_shared_set_external_id);
$negative_keyword_shared_sets = collect();
$data = [
'campaign_id' => $campaign->getKey(),
'external_id' => $external_id,
'campaign_external_id' => $campaign->external_id,
'name' => $ad_group['Name'],
'region_ids' => $ad_group['RegionIds'],
'negative_keywords' => $ad_group['NegativeKeywords'],
'tracking_params' => $ad_group['TrackingParams'],
'mobile_app_ad_group' => $ad_group['MobileAppAdGroup'] ?? null,
'dynamic_text_ad_group' => $ad_group['DynamicTextAdGroup'] ?? null,
'dynamic_text_feed_ad_group' => $ad_group['DynamicTextFeedAdGroup'] ?? null,
'cpm_banner_user_profile_ad_group' => $ad_group['CpmBannerUserProfileAdGroup'] ?? null,
'cpm_video_ad_group' => $ad_group['CpmVideoAdGroup'] ?? null,
'smart_ad_group' => $ad_group['SmartAdGroup'] ?? null,
'status' => $ad_group['Status'],
'type' => $ad_group['Type'],
'sub_type' => $ad_group['Subtype'],
'serving_status' => $ad_group['ServingStatus'],
'restricted_region_ids' => $ad_group['RestrictedRegionIds'],
'updated_self' => null,
'updated_at' => Carbon::now(),
'deleted_at' => null,
];
$negative_keyword_shared_set_external_ids_array = [];
foreach ($ad_group['NegativeKeywordSharedSetIds']['Items'] ?? [] as $negative_keyword_shared_set_external_id) {
$negative_keyword_shared_set_external_id = (string)$negative_keyword_shared_set_external_id;
$negativeKeywordSharedSet = NegativeKeywordSharedSet::firstWhere('external_id', $negative_keyword_shared_set_external_id);
if (!$negativeKeywordSharedSet) {
$negative_keyword_shared_set_external_ids_array[] = $negative_keyword_shared_set_external_id;
continue;
}
if (!$negativeKeywordSharedSet) {
$negative_keyword_shared_set_external_ids_array[] = $negative_keyword_shared_set_external_id;
continue;
}
$negative_keyword_shared_sets->push($negativeKeywordSharedSet);
$negative_keyword_shared_sets->push($negativeKeywordSharedSet);
}
}
$data['negative_keyword_shared_set_external_ids'] = $negative_keyword_shared_set_external_ids_array;
$data['negative_keyword_shared_set_external_ids'] = $negative_keyword_shared_set_external_ids_array;
$ad_group = AdGroup::where('external_id', $external_id)->withTrashed()->first();
$ad_group = AdGroup::where('external_id', $external_id)->withTrashed()->first();
if ($ad_group) {
$ad_group->update($data);
$campaign_ids_synced_need[$ad_group->campaign_id] = true;
} else {
$ad_group = AdGroup::create($data);
if ($ad_group) {
$ad_group->update($data);
if ($ad_group->wasChanged(['campaign_id'])) {
$campaign_ids_synced_need[$ad_group->campaign_id] = true;
} else {
$ad_group = AdGroup::create($data);
if ($ad_group->wasChanged(['campaign_id'])) {
$campaign_ids_synced_need[$ad_group->campaign_id] = true;
} elseif (
$ad_group->wasChanged($ad_group::getPropertiesWatch()->toArray())
||
!empty($negativeKeywordSharedSets_sync['attached'])
||
!empty($negativeKeywordSharedSets_sync['detached'])
||
!empty($negativeKeywordSharedSets_sync['updated'])
) {
$ad_group->goalGroups()->has('dictionaryCampaign')->forExternal()->update([
'updated_need' => Carbon::now(),
]);
}
} elseif (
$ad_group->wasChanged($ad_group::getPropertiesWatch()->toArray())
||
!empty($negativeKeywordSharedSets_sync['attached'])
||
!empty($negativeKeywordSharedSets_sync['detached'])
||
!empty($negativeKeywordSharedSets_sync['updated'])
) {
$ad_group->goalGroups()->has('dictionaryCampaign')->forExternal()->update([
'updated_need' => Carbon::now(),
]);
}
$negativeKeywordSharedSets_sync = $ad_group->negativeKeywordSharedSets()->sync($negative_keyword_shared_sets->pluck('id'));
}
}
$negativeKeywordSharedSets_sync = $ad_group->negativeKeywordSharedSets()->sync($negative_keyword_shared_sets->pluck('id'));
if ($this->getToken()->isMain()) {
}
if (
!empty($this->getParams()['SelectionCriteria']['CampaignIds'])
&&
!isset($response['result']['LimitedBy'])
) {
$campaign_ids = $this->getParams()['SelectionCriteria']['CampaignIds'];
DB::update("UPDATE ad_groups ag
INNER JOIN campaigns ca ON ag.campaign_id = ca.id
SET ag.deleted_at = now()
WHERE ca.groups_loaded_at IS NOT NULL
AND ag.updated_at <= ca.groups_loaded_at
AND ag.deleted_at is null
AND ca.external_id in (" . implode(", ", $campaign_ids) . ")");
Campaigns::whereIn('external_id', $campaign_ids)
->update([
'groups_loaded_at' => Carbon::now(),
]);
}
}
if (count($campaign_ids_synced_need)) {
Campaigns::findMany(array_keys($campaign_ids_synced_need))->each(function (Campaigns $campaign) {
$campaign->dictionaryCampaigns()->update([
'synced_need' => Carbon::now(),
]);
});
}
if ($this->getToken()->isMain()) {
if (
!empty($this->getParams()['SelectionCriteria']['CampaignIds'])
&&
!isset($response['result']['LimitedBy'])
) {
$campaign_ids = $this->getParams()['SelectionCriteria']['CampaignIds'];
DB::update("UPDATE ad_groups ag
INNER JOIN campaigns ca ON ag.campaign_id = ca.id
SET ag.deleted_at = now()
WHERE ca.groups_loaded_at IS NOT NULL
AND ag.updated_at <= ca.groups_loaded_at
AND ag.deleted_at is null
AND ca.external_id in (" . implode(", ", $campaign_ids) . ")");
Campaigns::whereIn('external_id', $campaign_ids)
->update([
'groups_loaded_at' => Carbon::now(),
]);
}
if (count($campaign_ids_synced_need)) {
Campaigns::findMany(array_keys($campaign_ids_synced_need))->each(function (Campaigns $campaign) {
$campaign->dictionaryCampaigns()->update([
'synced_need' => Carbon::now(),
]);
});
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
}
}
......
......@@ -42,44 +42,38 @@ class GetAdImages extends DirectRequest
function handle($response)
{
try {
if (isset($response['result']['AdImages'])) {
foreach ($response['result']['AdImages'] as $ad_image) {
$hash = (string)$ad_image['AdImageHash'];
$original_url = $ad_image['OriginalUrl'];
if ($this->getToken()->isMain()) {
if (!$original_url) {
Log::debug("GetAdImage, empty OriginalUrl");
Log::debug($ad_image);
continue;
}
$data = [
'hash' => $hash,
'name' => $ad_image['Name'],
'type' => $ad_image['Type'],
'subtype' => $ad_image['Subtype'],
'original_url' => $original_url,
'preview_url' => $ad_image['PreviewUrl'],
];
$adImage = AdImage::updateOrCreate([
'hash' => $hash
], $data);
} else {
//
if (isset($response['result']['AdImages'])) {
foreach ($response['result']['AdImages'] as $ad_image) {
$hash = (string)$ad_image['AdImageHash'];
$original_url = $ad_image['OriginalUrl'];
if ($this->getToken()->isMain()) {
if (!$original_url) {
Log::debug("GetAdImage, empty OriginalUrl, token_id {$this->getToken()->getKey()}");
Log::debug($ad_image);
continue;
}
$data = [
'hash' => $hash,
'name' => $ad_image['Name'],
'type' => $ad_image['Type'],
'subtype' => $ad_image['Subtype'],
'original_url' => $original_url,
'preview_url' => $ad_image['PreviewUrl'],
];
$adImage = AdImage::updateOrCreate([
'hash' => $hash
], $data);
} else {
//
}
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
}
}
}
......
......@@ -53,152 +53,146 @@ class GetAds extends DirectRequest
function handle($response)
{
try {
$external_ids = [];
$external_ids = [];
if (!isset($response['result']['Ads'])) {
return;
}
foreach ($response['result']['Ads'] as $ad) {
$adGroupId = (string)$ad['AdGroupId'];
if (!isset($response['result']['Ads'])) {
return;
}
if (isset($external_ids[$adGroupId])) {
continue;
}
$external_ids[$adGroupId] = true;
}
foreach ($response['result']['Ads'] as $ad) {
$adGroupId = (string)$ad['AdGroupId'];
if (!count($external_ids)) {
return;
if (isset($external_ids[$adGroupId])) {
continue;
}
$external_ids[$adGroupId] = true;
}
if ($this->getToken()->isMain()) {
$ad_groups = AdGroup::whereIn('external_id', array_keys($external_ids))
->get()
->keyBy('external_id');
} else {
//
}
if (!count($external_ids)) {
return;
}
foreach ($response['result']['Ads'] as $ad) {
$ad_group = $ad_groups->get((string)$ad['AdGroupId']);
if (!$ad_group || !$ad_group->campaign)
continue;
$external_id = (string)$ad['Id'];
if ($this->getToken()->isMain()) {
$ad_extensions = collect();
$data = [
'external_id' => $external_id,
'campaign_external_id' => $ad_group->campaign->external_id,
'ad_group_external_id' => $ad_group->external_id,
'ad_group_id' => $ad_group->getKey(),
'campaign_id' => $ad_group->campaign->getKey(),
'status' => $ad['Status'],
'state' => $ad['State'],
'status_clarification' => $ad['StatusClarification'],
'ad_categories' => $ad['AdCategories']['Items'] ?? [],
'age_label' => $ad['AgeLabel'],
'type' => $ad['Type'],
'sub_type' => $ad['Subtype'],
'updated_self' => null,
];
if (isset($ad['TextAd'])) {
$data = array_merge($data, [
'title' => $ad['TextAd']['Title'],
'title2' => $ad['TextAd']['Title2'],
'text' => $ad['TextAd']['Text'],
'href' => $ad['TextAd']['Href'],
'mobile' => $ad['TextAd']['Mobile'] === 'YES',
'display_domain' => $ad['TextAd']['DisplayDomain'],
'display_url_path' => $ad['TextAd']['DisplayUrlPath'],
'v_card_external_id' => $ad['TextAd']['VCardId'],
'ad_image_hash' => $ad['TextAd']['AdImageHash'],
'sitelink_external_id' => $ad['TextAd']['SitelinkSetId'],
'display_url_path_moderation' => $ad['TextAd']['DisplayUrlPathModeration'],
'v_card_moderation' => $ad['TextAd']['VCardModeration'],
'site_links_moderation' => $ad['TextAd']['SitelinksModeration'],
'ad_image_moderation' => $ad['TextAd']['AdImageModeration'],
'video_extension' => $ad['TextAd']['VideoExtension'],
'price_extension' => $ad['TextAd']['PriceExtension'],
'turbo_page_id' => $ad['TextAd']['TurboPageId'],
'turbo_page_moderation' => $ad['TextAd']['TurboPageModeration'],
'business_id' => $ad['TextAd']['BusinessId'],
'prefer_v_card_over_business' => isset($ad['TextAd']['PreferVCardOverBusiness']) ? $ad['TextAd']['PreferVCardOverBusiness'] === 'YES' : null,
]);
if ($this->getToken()->isMain()) {
$ad_groups = AdGroup::whereIn('external_id', array_keys($external_ids))
->get()
->keyBy('external_id');
} else {
//
}
$ad_extensions_array = [];
foreach ($response['result']['Ads'] as $ad) {
foreach ($ad['TextAd']['AdExtensions'] as $ad_extensions_data) {
$ad_group = $ad_groups->get((string)$ad['AdGroupId']);
$ad_extension_external_id = (string)$ad_extensions_data['AdExtensionId'];
if (!$ad_group || !$ad_group->campaign)
continue;
$ad_extension = AdExtension::firstWhere('external_id', $ad_extension_external_id);
if (!$ad_extension) {
$ad_extensions_array[] = $ad_extensions_data;
continue;
}
$external_id = (string)$ad['Id'];
$ad_extensions->push($ad_extension);
if ($this->getToken()->isMain()) {
$ad_extensions = collect();
$data = [
'external_id' => $external_id,
'campaign_external_id' => $ad_group->campaign->external_id,
'ad_group_external_id' => $ad_group->external_id,
'ad_group_id' => $ad_group->getKey(),
'campaign_id' => $ad_group->campaign->getKey(),
'status' => $ad['Status'],
'state' => $ad['State'],
'status_clarification' => $ad['StatusClarification'],
'ad_categories' => $ad['AdCategories']['Items'] ?? [],
'age_label' => $ad['AgeLabel'],
'type' => $ad['Type'],
'sub_type' => $ad['Subtype'],
'updated_self' => null,
];
if (isset($ad['TextAd'])) {
$data = array_merge($data, [
'title' => $ad['TextAd']['Title'],
'title2' => $ad['TextAd']['Title2'],
'text' => $ad['TextAd']['Text'],
'href' => $ad['TextAd']['Href'],
'mobile' => $ad['TextAd']['Mobile'] === 'YES',
'display_domain' => $ad['TextAd']['DisplayDomain'],
'display_url_path' => $ad['TextAd']['DisplayUrlPath'],
'v_card_external_id' => $ad['TextAd']['VCardId'],
'ad_image_hash' => $ad['TextAd']['AdImageHash'],
'sitelink_external_id' => $ad['TextAd']['SitelinkSetId'],
'display_url_path_moderation' => $ad['TextAd']['DisplayUrlPathModeration'],
'v_card_moderation' => $ad['TextAd']['VCardModeration'],
'site_links_moderation' => $ad['TextAd']['SitelinksModeration'],
'ad_image_moderation' => $ad['TextAd']['AdImageModeration'],
'video_extension' => $ad['TextAd']['VideoExtension'],
'price_extension' => $ad['TextAd']['PriceExtension'],
'turbo_page_id' => $ad['TextAd']['TurboPageId'],
'turbo_page_moderation' => $ad['TextAd']['TurboPageModeration'],
'business_id' => $ad['TextAd']['BusinessId'],
'prefer_v_card_over_business' => isset($ad['TextAd']['PreferVCardOverBusiness']) ? $ad['TextAd']['PreferVCardOverBusiness'] === 'YES' : null,
]);
$ad_extensions_array = [];
foreach ($ad['TextAd']['AdExtensions'] as $ad_extensions_data) {
$ad_extension_external_id = (string)$ad_extensions_data['AdExtensionId'];
$ad_extension = AdExtension::firstWhere('external_id', $ad_extension_external_id);
if (!$ad_extension) {
$ad_extensions_array[] = $ad_extensions_data;
continue;
}
$data['ad_extensions'] = $ad_extensions_array;
$ad_extensions->push($ad_extension);
}
$advertisement = Advertisement::updateOrCreate([
'external_id' => $external_id
], $data);
$data['ad_extensions'] = $ad_extensions_array;
}
if ($advertisement->state === Advertisement::STATE_ARCHIVED) {
$advertisement->goalAdvertisements()
->notNeedArchived()
->update([
'archived_need' => Carbon::now(),
]);
}
$advertisement = Advertisement::updateOrCreate([
'external_id' => $external_id
], $data);
$adExtensions_sync = $advertisement->adExtensions()->sync($ad_extensions->pluck('id'));
if ($advertisement->wasRecentlyCreated) {
$campaign_ids_synced_need[$advertisement->campaign_id] = true;
} elseif ($advertisement->wasChanged(['campaign_id'])) {
$campaign_ids_synced_need[$advertisement->campaign_id] = true;
} elseif (
$advertisement->wasChanged($advertisement::getPropertiesWatch()->toArray())
||
!empty($adExtensions_sync['attached'])
||
!empty($adExtensions_sync['detached'])
||
!empty($adExtensions_sync['updated'])
) {
$advertisement->goalAdvertisements()->has('dictionaryCampaign')->forExternal()->update([
'updated_need' => Carbon::now(),
if ($advertisement->state === Advertisement::STATE_ARCHIVED) {
$advertisement->goalAdvertisements()
->notNeedArchived()
->update([
'archived_need' => Carbon::now(),
]);
}
}
} else {
//
$adExtensions_sync = $advertisement->adExtensions()->sync($ad_extensions->pluck('id'));
if ($advertisement->wasRecentlyCreated) {
$campaign_ids_synced_need[$advertisement->campaign_id] = true;
} elseif ($advertisement->wasChanged(['campaign_id'])) {
$campaign_ids_synced_need[$advertisement->campaign_id] = true;
} elseif (
$advertisement->wasChanged($advertisement::getPropertiesWatch()->toArray())
||
!empty($adExtensions_sync['attached'])
||
!empty($adExtensions_sync['detached'])
||
!empty($adExtensions_sync['updated'])
) {
$advertisement->goalAdvertisements()->has('dictionaryCampaign')->forExternal()->update([
'updated_need' => Carbon::now(),
]);
}
} else {
//
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
}
}
......
......@@ -66,70 +66,69 @@ class GetAudienceTargets extends DirectRequest
function handle($response)
{
try {
if (!isset($response['result']['AudienceTargets'])) {
return;
}
if (!isset($response['result']['AudienceTargets'])) {
return;
}
$ad_group_external_ids = [];
$campaign_external_ids = [];
$retargetinglist_external_ids = [];
$ad_group_external_ids = [];
$campaign_external_ids = [];
$retargetinglist_external_ids = [];
foreach ($response['result']['AudienceTargets'] as $audience_target) {
$ad_group_external_id = (string)$audience_target['AdGroupId'];
$campaign_external_id = (string)$audience_target['CampaignId'];
$retargetinglist_external_id = (string)$audience_target['RetargetingListId'];
foreach ($response['result']['AudienceTargets'] as $audience_target) {
$ad_group_external_id = (string)$audience_target['AdGroupId'];
$campaign_external_id = (string)$audience_target['CampaignId'];
$retargetinglist_external_id = (string)$audience_target['RetargetingListId'];
if (!isset($ad_group_external_ids[$ad_group_external_id])) {
$ad_group_external_ids[$ad_group_external_id] = true;
}
if (!isset($ad_group_external_ids[$ad_group_external_id])) {
$ad_group_external_ids[$ad_group_external_id] = true;
}
if (!isset($campaign_external_ids[$campaign_external_id])) {
$campaign_external_ids[$campaign_external_id] = true;
}
if (!isset($campaign_external_ids[$campaign_external_id])) {
$campaign_external_ids[$campaign_external_id] = true;
}
if (!isset($retargetinglist_external_ids[$retargetinglist_external_id])) {
$retargetinglist_external_ids[$retargetinglist_external_id] = true;
}
if (!isset($retargetinglist_external_ids[$retargetinglist_external_id])) {
$retargetinglist_external_ids[$retargetinglist_external_id] = true;
}
}
if ($this->getToken()->isMain()) {
$adGroups = AdGroup::whereIn('external_id', array_keys($ad_group_external_ids))
->get()
->keyBy('external_id');
if ($this->getToken()->isMain()) {
$adGroups = AdGroup::whereIn('external_id', array_keys($ad_group_external_ids))
->get()
->keyBy('external_id');
$campaigns = Campaigns::whereIn('external_id', array_keys($campaign_external_ids))
->get()
->keyBy('external_id');
$campaigns = Campaigns::whereIn('external_id', array_keys($campaign_external_ids))
->get()
->keyBy('external_id');
$retargetinglists = Retargetinglist::whereIn('external_id', array_keys($retargetinglist_external_ids))
->get()
->keyBy('external_id');
}
$retargetinglists = Retargetinglist::whereIn('external_id', array_keys($retargetinglist_external_ids))
->get()
->keyBy('external_id');
}
foreach ($response['result']['AudienceTargets'] as $audience_target) {
foreach ($response['result']['AudienceTargets'] as $audience_target) {
$external_id = (string)$audience_target['Id'];
$ad_group_external_id = (string)$audience_target['AdGroupId'];
$campaign_external_id = (string)$audience_target['CampaignId'];
$retargetinglist_external_id = (string)$audience_target['RetargetingListId'];
$external_id = (string)$audience_target['Id'];
$ad_group_external_id = (string)$audience_target['AdGroupId'];
$campaign_external_id = (string)$audience_target['CampaignId'];
$retargetinglist_external_id = (string)$audience_target['RetargetingListId'];
if ($this->getToken()->isMain()) {
if ($this->getToken()->isMain()) {
/* @var $adGroup AdGroup|null */
$adGroup = $adGroups->get($ad_group_external_id);
/* @var $adGroup AdGroup|null */
$adGroup = $adGroups->get($ad_group_external_id);
if (!$adGroup) {
continue;
}
if (!$adGroup) {
continue;
}
/* @var $campaign Campaigns|null */
$campaign = $campaigns->get($campaign_external_id);
/* @var $campaign Campaigns|null */
$campaign = $campaigns->get($campaign_external_id);
if (!$campaign) {
continue;
}
if (!$campaign) {
continue;
}
// if ($retargetinglist_external_id) {
// /* @var $retargetinglist Retargetinglist|null */
......@@ -140,40 +139,35 @@ class GetAudienceTargets extends DirectRequest
// }
// }
$interest_external_id = (string)$audience_target['InterestId'];
$interest_external_id = (string)$audience_target['InterestId'];
$data = [
'external_id' => $external_id,
'ad_group_external_id' => $adGroup->external_id,
'ad_group_id' => $adGroup->getKey(),
'campaign_external_id' => $campaign->external_id,
'campaign_id' => $campaign->getKey(),
'retargetinglist_external_id' => $retargetinglist_external_id ?? null,
$data = [
'external_id' => $external_id,
'ad_group_external_id' => $adGroup->external_id,
'ad_group_id' => $adGroup->getKey(),
'campaign_external_id' => $campaign->external_id,
'campaign_id' => $campaign->getKey(),
'retargetinglist_external_id' => $retargetinglist_external_id ?? null,
// 'retargetinglist_id' => $retargetinglist_external_id ? $retargetinglist->getKey() : null,
'interest_external_id' => $interest_external_id ?? null,
'context_bid' => (string)$audience_target['ContextBid'],
'strategy_priority' => $audience_target['StrategyPriority'],
];
$audienceTarget = AudienceTarget::updateOrCreate([
'external_id' => $external_id
], $data);
if (!$audienceTarget->wasRecentlyCreated && $audienceTarget->wasChanged($audienceTarget::getPropertiesWatch()->toArray())) {
$audienceTarget->goalAudienceTargets()->forExternal()->update([
'updated_need' => Carbon::now(),
]);
}
} else {
//
'interest_external_id' => $interest_external_id ?? null,
'context_bid' => (string)$audience_target['ContextBid'],
'strategy_priority' => $audience_target['StrategyPriority'],
];
$audienceTarget = AudienceTarget::updateOrCreate([
'external_id' => $external_id
], $data);
if (!$audienceTarget->wasRecentlyCreated && $audienceTarget->wasChanged($audienceTarget::getPropertiesWatch()->toArray())) {
$audienceTarget->goalAudienceTargets()->forExternal()->update([
'updated_need' => Carbon::now(),
]);
}
} else {
//
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
}
}
......
......@@ -55,140 +55,134 @@ class GetBidModifiers extends DirectRequest
function handle($response)
{
try {
if (!isset($response['result']['BidModifiers'])) {
return;
}
$campaigns_external_ids = [];
$ad_groups_external_ids = [];
if (!isset($response['result']['BidModifiers'])) {
return;
}
$campaigns_external_ids = [];
$ad_groups_external_ids = [];
foreach ($response['result']['BidModifiers'] as $ad) {
$campaignId = (string)$ad['CampaignId'];
$adGroupId = (string)$ad['AdGroupId'];
foreach ($response['result']['BidModifiers'] as $ad) {
$campaignId = (string)$ad['CampaignId'];
$adGroupId = (string)$ad['AdGroupId'];
if (!isset($campaigns_external_ids[$campaignId])) {
$campaigns_external_ids[$campaignId] = true;
}
if (!isset($ad_groups_external_ids[$adGroupId])) {
$ad_groups_external_ids[$adGroupId] = true;
}
if (!isset($campaigns_external_ids[$campaignId])) {
$campaigns_external_ids[$campaignId] = true;
}
if (!count($campaigns_external_ids)) {
return;
if (!isset($ad_groups_external_ids[$adGroupId])) {
$ad_groups_external_ids[$adGroupId] = true;
}
}
if (!count($campaigns_external_ids)) {
return;
}
if ($this->getToken()->isMain()) {
$campaigns = Campaigns::whereIn('external_id', array_keys($campaigns_external_ids))
->get()
->keyBy('external_id');
$adGroups = AdGroup::whereIn('external_id', array_keys($ad_groups_external_ids))
->get()
->keyBy('external_id');
} else {
//
}
if ($this->getToken()->isMain()) {
$campaigns = Campaigns::whereIn('external_id', array_keys($campaigns_external_ids))
->get()
->keyBy('external_id');
foreach ($response['result']['BidModifiers'] as $bid_modifier) {
$adGroups = AdGroup::whereIn('external_id', array_keys($ad_groups_external_ids))
->get()
->keyBy('external_id');
} else {
//
}
/* @var $campaign Campaigns|null */
$campaign = $campaigns->get((string)$bid_modifier['CampaignId']);
foreach ($response['result']['BidModifiers'] as $bid_modifier) {
if (!$campaign)
continue;
/* @var $campaign Campaigns|null */
$campaign = $campaigns->get((string)$bid_modifier['CampaignId']);
/* @var $adGroup AdGroup|null */
$adGroup = null;
if (!$campaign)
continue;
$ad_group_external_id = (string)$bid_modifier['AdGroupId'];
/* @var $adGroup AdGroup|null */
$adGroup = null;
if ($ad_group_external_id) {
$adGroup = $adGroups->get($ad_group_external_id);
}
$ad_group_external_id = (string)$bid_modifier['AdGroupId'];
$external_id = (string)$bid_modifier['Id'];
if ($ad_group_external_id) {
$adGroup = $adGroups->get($ad_group_external_id);
}
if ($this->getToken()->isMain()) {
$external_id = (string)$bid_modifier['Id'];
$data = [
'external_id' => $external_id,
'campaign_external_id' => $campaign->external_id,
'ad_group_external_id' => $adGroup ? $adGroup->external_id : null,
'campaign_id' => $campaign->getKey(),
'ad_group_id' => $adGroup ? $adGroup->getKey() : null,
if ($this->getToken()->isMain()) {
'level' => $bid_modifier['Level'],
'type' => $bid_modifier['Type'],
'mobile_adjustment' => $bid_modifier['MobileAdjustment'] ?? null,
'desktop_adjustment' => $bid_modifier['DesktopAdjustment'] ?? null,
'demographics_adjustment' => $bid_modifier['DemographicsAdjustment'] ?? null,
'retargeting_adjustment' => $bid_modifier['RetargetingAdjustment'] ?? null,
'video_adjustment' => $bid_modifier['VideoAdjustment'] ?? null,
$data = [
'external_id' => $external_id,
'campaign_external_id' => $campaign->external_id,
'ad_group_external_id' => $adGroup ? $adGroup->external_id : null,
'campaign_id' => $campaign->getKey(),
'ad_group_id' => $adGroup ? $adGroup->getKey() : null,
'updated_self' => null,
'level' => $bid_modifier['Level'],
'type' => $bid_modifier['Type'],
'mobile_adjustment' => $bid_modifier['MobileAdjustment'] ?? null,
'desktop_adjustment' => $bid_modifier['DesktopAdjustment'] ?? null,
'demographics_adjustment' => $bid_modifier['DemographicsAdjustment'] ?? null,
'retargeting_adjustment' => $bid_modifier['RetargetingAdjustment'] ?? null,
'video_adjustment' => $bid_modifier['VideoAdjustment'] ?? null,
'updated_at' => Carbon::now(),
'deleted_at' => null,
];
'updated_self' => null,
$bidModifierOld = BidModifier::firstWhere('external_id', $external_id);
'updated_at' => Carbon::now(),
'deleted_at' => null,
];
$bidModifier = BidModifier::updateOrCreate([
'external_id' => $external_id
], $data);
$bidModifierOld = BidModifier::firstWhere('external_id', $external_id);
if ($bidModifierOld && $bidModifier->bidModifierValue !== $bidModifierOld->bidModifierValue) {
$bidModifier->goalBidModifiers()->has('dictionaryCampaign')->forExternal()->update([
'updated_need' => Carbon::now(),
]);
}
$bidModifier = BidModifier::updateOrCreate([
'external_id' => $external_id
], $data);
} else {
//
if ($bidModifierOld && $bidModifier->bidModifierValue !== $bidModifierOld->bidModifierValue) {
$bidModifier->goalBidModifiers()->has('dictionaryCampaign')->forExternal()->update([
'updated_need' => Carbon::now(),
]);
}
} else {
//
}
if (!isset($response['result']['LimitedBy'])) {
if (!empty($this->getParams()['SelectionCriteria']['AdGroupIds'])) {
}
$ag_group_external_ids = $this->getParams()['SelectionCriteria']['AdGroupIds'];
if (!isset($response['result']['LimitedBy'])) {
if (!empty($this->getParams()['SelectionCriteria']['AdGroupIds'])) {
$sql = "UPDATE bid_modifiers bm
INNER JOIN ad_groups ag ON bm.ad_group_id = ag.id
SET bm.deleted_at = now()
WHERE bm.updated_at <= ag.bid_modifiers_loaded_at
AND bm.deleted_at is null
AND ag.external_id in (" . implode(", ", $ag_group_external_ids) . ")";
$ag_group_external_ids = $this->getParams()['SelectionCriteria']['AdGroupIds'];
DB::update($sql);
AdGroup::whereIn('external_id', $ag_group_external_ids)->update([
'bid_modifiers_loaded_at' => Carbon::now()
]);
} elseif (!empty($this->getParams()['SelectionCriteria']['CampaignIds'])) {
$sql = "UPDATE bid_modifiers bm
INNER JOIN ad_groups ag ON bm.ad_group_id = ag.id
SET bm.deleted_at = now()
WHERE bm.updated_at <= ag.bid_modifiers_loaded_at
AND bm.deleted_at is null
AND ag.external_id in (" . implode(", ", $ag_group_external_ids) . ")";
$campaign_external_ids = $this->getParams()['SelectionCriteria']['CampaignIds'];
DB::update($sql);
AdGroup::whereIn('external_id', $ag_group_external_ids)->update([
'bid_modifiers_loaded_at' => Carbon::now()
]);
} elseif (!empty($this->getParams()['SelectionCriteria']['CampaignIds'])) {
$sql = "UPDATE bid_modifiers bm
INNER JOIN campaigns ca ON bm.campaign_id = ca.id
SET bm.deleted_at = now()
WHERE bm.updated_at <= ca.bid_modifiers_loaded_at
AND bm.deleted_at is null
AND ca.external_id in (" . implode(", ", $campaign_external_ids) . ")";
$campaign_external_ids = $this->getParams()['SelectionCriteria']['CampaignIds'];
DB::update($sql);
Campaigns::whereIn('external_id', $campaign_external_ids)->update([
'bid_modifiers_loaded_at' => Carbon::now()
]);
$sql = "UPDATE bid_modifiers bm
INNER JOIN campaigns ca ON bm.campaign_id = ca.id
SET bm.deleted_at = now()
WHERE bm.updated_at <= ca.bid_modifiers_loaded_at
AND bm.deleted_at is null
AND ca.external_id in (" . implode(", ", $campaign_external_ids) . ")";
}
}
DB::update($sql);
Campaigns::whereIn('external_id', $campaign_external_ids)->update([
'bid_modifiers_loaded_at' => Carbon::now()
]);
} catch (\Exception $e) {
Log::debug($e);
throw $e;
}
}
}
......
......@@ -45,55 +45,50 @@ class GetCampaigns extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['Campaigns'])) {
return;
}
foreach ($response['result']['Campaigns'] as $campaign_data) {
$external_id = (string)$campaign_data['Id'];
$data = [
'external_id' => $external_id,
'token' => $this->getToken()->id,
'name' => $campaign_data['Name'],
'time_targeting' => $campaign_data['TimeTargeting'],
'negative_keywords' => $campaign_data['NegativeKeywords']['Items'] ?? [],
'blocked_ips' => $campaign_data['BlockedIps']['Items'] ?? [],
'excluded_sites' => $campaign_data['ExcludedSites']['Items'] ?? [],
'daily_budget' => $campaign_data['DailyBudget'],
'bidding_strategy' => $campaign_data['TextCampaign']['BiddingStrategy'],
'settings' => $campaign_data['TextCampaign']['Settings'],
'counter_ids' => $campaign_data['TextCampaign']['CounterIds']['Items'] ?? [],
'relevant_keywords' => $campaign_data['TextCampaign']['RelevantKeywords'],
'attribution_model' => $campaign_data['TextCampaign']['AttributionModel'],
'priority_goals' => $campaign_data['TextCampaign']['PriorityGoals'],
'updated_self' => null,
];
if ($this->getToken()->isMain()) {
Campaigns::updateOrCreate([
'external_id' => $external_id
], $data);
} else {
$dictionaryCampaign = DictionaryCampaign::synchronized()
->find($external_id);
if (!$dictionaryCampaign)
continue;
$dictionaryCampaign->update(
array_merge([
'updated_self' => null,
], $dictionaryCampaign::copyPropertyFromMain($campaign_data))
);
}
if (!isset($response['result']['Campaigns'])) {
return;
}
foreach ($response['result']['Campaigns'] as $campaign_data) {
$external_id = (string)$campaign_data['Id'];
$data = [
'external_id' => $external_id,
'token' => $this->getToken()->id,
'name' => $campaign_data['Name'],
'time_targeting' => $campaign_data['TimeTargeting'],
'negative_keywords' => $campaign_data['NegativeKeywords']['Items'] ?? [],
'blocked_ips' => $campaign_data['BlockedIps']['Items'] ?? [],
'excluded_sites' => $campaign_data['ExcludedSites']['Items'] ?? [],
'daily_budget' => $campaign_data['DailyBudget'],
'bidding_strategy' => $campaign_data['TextCampaign']['BiddingStrategy'],
'settings' => $campaign_data['TextCampaign']['Settings'],
'counter_ids' => $campaign_data['TextCampaign']['CounterIds']['Items'] ?? [],
'relevant_keywords' => $campaign_data['TextCampaign']['RelevantKeywords'],
'attribution_model' => $campaign_data['TextCampaign']['AttributionModel'],
'priority_goals' => $campaign_data['TextCampaign']['PriorityGoals'],
'updated_self' => null,
];
if ($this->getToken()->isMain()) {
Campaigns::updateOrCreate([
'external_id' => $external_id
], $data);
} else {
$dictionaryCampaign = DictionaryCampaign::synchronized()
->find($external_id);
if (!$dictionaryCampaign)
continue;
$dictionaryCampaign->update(
array_merge([
'updated_self' => null,
], $dictionaryCampaign::copyPropertyFromMain($campaign_data))
);
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
}
}
......
......@@ -20,30 +20,25 @@ class GetDictionaries extends DirectRequest
function handle($response)
{
try {
$data = collect();
foreach ($response['result']['GeoRegions'] as $region) {
$data->push([
'region_id' => $region['GeoRegionId'],
'parent_id' => $region['ParentId'],
'name' => $region['GeoRegionName'],
'type' => $region['GeoRegionType'],
]);
}
foreach ($data->chunk(100) as $list) {
Dictionary::upsert($list->toArray(), [
'region_id'
], [
'parent_id',
'name',
'type',
]);
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
$data = collect();
foreach ($response['result']['GeoRegions'] as $region) {
$data->push([
'region_id' => $region['GeoRegionId'],
'parent_id' => $region['ParentId'],
'name' => $region['GeoRegionName'],
'type' => $region['GeoRegionType'],
]);
}
foreach ($data->chunk(100) as $list) {
Dictionary::upsert($list->toArray(), [
'region_id'
], [
'parent_id',
'name',
'type',
]);
}
}
......
......@@ -59,136 +59,131 @@ class GetKeywords extends DirectRequest
$connection = config('database.default');
try {
$external_ids = [];
$external_ids = [];
if (!$this->getToken()->isMain()) {
return;//добавлять фразы будем только по основному. По цеелвым будем наоборот выгружать.
}
if (!$this->getToken()->isMain()) {
return;//добавлять фразы будем только по основному. По цеелвым будем наоборот выгружать.
}
if (!isset($response['result']['Keywords'])) {
return;
}
if (!isset($response['result']['Keywords'])) {
return;
}
foreach ($response['result']['Keywords'] as $keyword) {
$adGroupId = (string)$keyword['AdGroupId'];
foreach ($response['result']['Keywords'] as $keyword) {
$adGroupId = (string)$keyword['AdGroupId'];
if (isset($external_ids[$adGroupId])) {
continue;
}
$external_ids[$adGroupId] = true;
if (isset($external_ids[$adGroupId])) {
continue;
}
$external_ids[$adGroupId] = true;
}
if (!count($external_ids)) {
return;
}
if (!count($external_ids)) {
return;
}
if ($this->getToken()->isMain()) {
$ad_groups = AdGroup::whereIn('external_id', array_keys($external_ids))
->get()
->keyBy('external_id');
}
if ($this->getToken()->isMain()) {
$ad_groups = AdGroup::whereIn('external_id', array_keys($external_ids))
->get()
->keyBy('external_id');
}
// $ids = [];
// $campaign_ids_synced_need = [];
$insertData = [];
$insertData = [];
$now = Carbon::now();
$cnt = 0;
$items = [];
foreach ($response['result']['Keywords'] as $keyword) {
$now = Carbon::now();
$cnt = 0;
$items = [];
foreach ($response['result']['Keywords'] as $keyword) {
$ad_group = $ad_groups->get((string)$keyword['AdGroupId']);
$ad_group = $ad_groups->get((string)$keyword['AdGroupId']);
if (!$ad_group) {
continue;
}
if (!$ad_group) {
continue;
}
$external_id = (string)$keyword['Id'];
$data = [
'external_id' => $external_id,
'campaign_external_id' => $ad_group->campaign_external_id,
'ad_group_external_id' => $ad_group->external_id,
'ad_group_id' => $ad_group->getKey(),
'campaign_id' => $ad_group->campaign_id,
'keyword' => $keyword['Keyword'],
'user_param_1' => $keyword['UserParam1'] ?? null,
'user_param_2' => $keyword['UserParam2'] ?? null,
'bid' => $keyword['Bid'],
'context_bid' => $keyword['ContextBid'],
'strategy_priority' => $keyword['StrategyPriority'] ?? null,
'state' => $keyword['State'],
'status' => $keyword['Status'],
'serving_status' => $keyword['ServingStatus'],
'updated_at' => $now,
'deleted_at' => null //не забыть убрать признак удаления, если вдруг опять пришла удаленная ранее фраза
];
$keyword_data = Keyword::where('external_id', $external_id)->withTrashed()->first();
if ($keyword_data){
if (!$keyword_data->equals($data)){
unset($data['external_id']);
//если данные изменились, то надо обновить и в кеше и пометить на то что надо их выгрузить
$keyword_data->update($data);
$keyword_data->goalKeywords()->update(['updated_need' => $now]);
}else{
$items[] = $external_id;
}
} else{
//новый фразы
$insertData[$external_id] = $data;
}
$external_id = (string)$keyword['Id'];
$data = [
'external_id' => $external_id,
'campaign_external_id' => $ad_group->campaign_external_id,
'ad_group_external_id' => $ad_group->external_id,
'ad_group_id' => $ad_group->getKey(),
'campaign_id' => $ad_group->campaign_id,
'keyword' => $keyword['Keyword'],
'user_param_1' => $keyword['UserParam1'] ?? null,
'user_param_2' => $keyword['UserParam2'] ?? null,
'bid' => $keyword['Bid'],
'context_bid' => $keyword['ContextBid'],
'strategy_priority' => $keyword['StrategyPriority'] ?? null,
'state' => $keyword['State'],
'status' => $keyword['Status'],
'serving_status' => $keyword['ServingStatus'],
'updated_at' => $now,
'deleted_at' => null //не забыть убрать признак удаления, если вдруг опять пришла удаленная ранее фраза
];
$keyword_data = Keyword::where('external_id', $external_id)->withTrashed()->first();
if ($keyword_data){
if (!$keyword_data->equals($data)){
unset($data['external_id']);
//если данные изменились, то надо обновить и в кеше и пометить на то что надо их выгрузить
$keyword_data->update($data);
$keyword_data->goalKeywords()->update(['updated_need' => $now]);
}else{
$items[] = $external_id;
}
} else{
//новый фразы
$insertData[$external_id] = $data;
}
}
Keyword::whereIn('external_id', $items)->update([
'updated_at' => $now
]);
foreach (array_chunk($insertData, 1000) as $data) {
$items = [];
foreach ($data as $item){
$items[] = $item['external_id'];
}
Keyword::insertOrIgnore($data);
Keyword::whereIn('external_id', $items)->update([
'updated_at' => $now
'updated_at' => $now
]);
}
foreach (array_chunk($insertData, 1000) as $data) {
$items = [];
foreach ($data as $item){
$items[] = $item['external_id'];
}
Keyword::insertOrIgnore($data);
Keyword::whereIn('external_id', $items)->update([
'updated_at' => $now
]);
$now = $connection=='sqlite'? DB::raw("strftime('%Y-%m-%d %H:%M:%S', datetime('now'))") : DB::raw('now()');
//удаление будет толко когда получаем изменения по группам, иначе это либо загрузка все фраз либо как то избранных
if ( !empty($this->getParams()['SelectionCriteria']['AdGroupIds']) &&
!isset($response['result']['LimitedBy']) ){
$ag_groups = $this->getParams()['SelectionCriteria']['AdGroupIds'];
//последний блок с данными, можно удалять те, что так и не получили
//Выбираем все те фразы, которые обновлены позже чем группа.
//это означает что этой фразы не было в результатах и в БД она по этой причине не обновилась
//надо такие пометить на удаление
//при удалении для всех таких надо будет удалить фразы из целевых и потом удалить их сами
if ($connection=='sqlite'){
$sql = "UPDATE keywords
SET deleted_at = {$now->getValue()}
WHERE updated_at<=(SELECT ag.keywords_loaded_at FROM ad_groups ag WHERE keywords.ad_group_id=ag.id)
AND deleted_at is null
AND ad_group_external_id in (" . implode(", ", $ag_groups) . ")";
} else{
$sql = "UPDATE keywords k
INNER JOIN ad_groups ag ON k.ad_group_id=ag.id
SET k.deleted_at = {$now->getValue()}
WHERE ag.keywords_loaded_at IS NOT NULL
AND k.updated_at<=ag.keywords_loaded_at
AND k.deleted_at is null
AND ag.external_id in (" . implode(", ", $ag_groups) . ")";
}
$now = $connection=='sqlite'? DB::raw("strftime('%Y-%m-%d %H:%M:%S', datetime('now'))") : DB::raw('now()');
//удаление будет толко когда получаем изменения по группам, иначе это либо загрузка все фраз либо как то избранных
if ( !empty($this->getParams()['SelectionCriteria']['AdGroupIds']) &&
!isset($response['result']['LimitedBy']) ){
$ag_groups = $this->getParams()['SelectionCriteria']['AdGroupIds'];
//последний блок с данными, можно удалять те, что так и не получили
//Выбираем все те фразы, которые обновлены позже чем группа.
//это означает что этой фразы не было в результатах и в БД она по этой причине не обновилась
//надо такие пометить на удаление
//при удалении для всех таких надо будет удалить фразы из целевых и потом удалить их сами
if ($connection=='sqlite'){
$sql = "UPDATE keywords
SET deleted_at = {$now->getValue()}
WHERE updated_at<=(SELECT ag.keywords_loaded_at FROM ad_groups ag WHERE keywords.ad_group_id=ag.id)
AND deleted_at is null
AND ad_group_external_id in (" . implode(", ", $ag_groups) . ")";
} else{
$sql = "UPDATE keywords k
INNER JOIN ad_groups ag ON k.ad_group_id=ag.id
SET k.deleted_at = {$now->getValue()}
WHERE ag.keywords_loaded_at IS NOT NULL
AND k.updated_at<=ag.keywords_loaded_at
AND k.deleted_at is null
AND ag.external_id in (" . implode(", ", $ag_groups) . ")";
}
DB::update($sql);
AdGroup::whereIn('external_id', $ag_groups)->update(['keywords_loaded_at' => Carbon::now()]);
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
DB::update($sql);
AdGroup::whereIn('external_id', $ag_groups)->update(['keywords_loaded_at' => Carbon::now()]);
}
}
......
......@@ -46,41 +46,35 @@ class GetNegativeKeywordSharedSets extends DirectRequest
function handle($response)
{
try {
if (isset($response['result']['NegativeKeywordSharedSets'])) {
foreach ($response['result']['NegativeKeywordSharedSets'] as $negative_keyword_shared_sets) {
if (isset($response['result']['NegativeKeywordSharedSets'])) {
foreach ($response['result']['NegativeKeywordSharedSets'] as $negative_keyword_shared_sets) {
$external_id = (string)$negative_keyword_shared_sets['Id'];
$external_id = (string)$negative_keyword_shared_sets['Id'];
if ($this->getToken()->isMain()) {
if ($this->getToken()->isMain()) {
$data = [
'external_id' => $external_id,
'name' => $negative_keyword_shared_sets['Name'],
'negative_keywords' => $negative_keyword_shared_sets['NegativeKeywords'],
'associated' => $negative_keyword_shared_sets['Associated'] === 'YES',
];
$data = [
'external_id' => $external_id,
'name' => $negative_keyword_shared_sets['Name'],
'negative_keywords' => $negative_keyword_shared_sets['NegativeKeywords'],
'associated' => $negative_keyword_shared_sets['Associated'] === 'YES',
];
$negativeKeywordSharedSet = NegativeKeywordSharedSet::updateOrCreate([
'external_id' => $external_id
], $data);
$negativeKeywordSharedSet = NegativeKeywordSharedSet::updateOrCreate([
'external_id' => $external_id
], $data);
if (!$negativeKeywordSharedSet->wasRecentlyCreated && $negativeKeywordSharedSet->wasChanged($negativeKeywordSharedSet::getPropertiesWatch()->toArray())) {
$negativeKeywordSharedSet->goalNegativeKeywordSharedSets()->forExternal()->update([
'updated_need' => Carbon::now(),
]);
}
} else {
//
if (!$negativeKeywordSharedSet->wasRecentlyCreated && $negativeKeywordSharedSet->wasChanged($negativeKeywordSharedSet::getPropertiesWatch()->toArray())) {
$negativeKeywordSharedSet->goalNegativeKeywordSharedSets()->forExternal()->update([
'updated_need' => Carbon::now(),
]);
}
} else {
//
}
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
}
}
}
......
......@@ -43,42 +43,36 @@ class GetRetargetinglists extends DirectRequest
function handle($response)
{
try {
if (isset($response['result']['RetargetingLists'])) {
foreach ($response['result']['RetargetingLists'] as $retargeting_list) {
$external_id = (string)$retargeting_list['Id'];
if ($this->getToken()->isMain()) {
$data = [
'external_id' => $external_id,
'type' => $retargeting_list['Type'],
'name' => $retargeting_list['Name'],
'description' => $retargeting_list['Description'],
'rules' => $retargeting_list['Rules'],
];
$retargetinglist = Retargetinglist::updateOrCreate([
'external_id' => $external_id
], $data);
if (!$retargetinglist->wasRecentlyCreated && $retargetinglist->wasChanged($retargetinglist::getPropertiesWatch()->toArray())) {
$retargetinglist->goalRetargetinglists()->forExternal()->update([
'updated_need' => Carbon::now(),
]);
}
} else {
//
if (isset($response['result']['RetargetingLists'])) {
foreach ($response['result']['RetargetingLists'] as $retargeting_list) {
$external_id = (string)$retargeting_list['Id'];
if ($this->getToken()->isMain()) {
$data = [
'external_id' => $external_id,
'type' => $retargeting_list['Type'],
'name' => $retargeting_list['Name'],
'description' => $retargeting_list['Description'],
'rules' => $retargeting_list['Rules'],
];
$retargetinglist = Retargetinglist::updateOrCreate([
'external_id' => $external_id
], $data);
if (!$retargetinglist->wasRecentlyCreated && $retargetinglist->wasChanged($retargetinglist::getPropertiesWatch()->toArray())) {
$retargetinglist->goalRetargetinglists()->forExternal()->update([
'updated_need' => Carbon::now(),
]);
}
} else {
//
}
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
}
}
}
......
......@@ -46,39 +46,33 @@ class GetSitelinks extends DirectRequest
function handle($response)
{
try {
if (isset($response['result']['SitelinksSets'])) {
foreach ($response['result']['SitelinksSets'] as $sitelinks_sets) {
if (isset($response['result']['SitelinksSets'])) {
foreach ($response['result']['SitelinksSets'] as $sitelinks_sets) {
$external_id = (string)$sitelinks_sets['Id'];
$external_id = (string)$sitelinks_sets['Id'];
if ($this->getToken()->isMain()) {
if ($this->getToken()->isMain()) {
$data = [
'external_id' => $external_id,
'links' => $sitelinks_sets['Sitelinks'],
];
$data = [
'external_id' => $external_id,
'links' => $sitelinks_sets['Sitelinks'],
];
$sitelink = Sitelink::updateOrCreate([
'external_id' => $external_id
], $data);
$sitelink = Sitelink::updateOrCreate([
'external_id' => $external_id
], $data);
if (!$sitelink->wasRecentlyCreated && $sitelink->wasChanged($sitelink::getPropertiesWatch()->toArray())) {
$sitelink->goalSitelinks()->forExternal()->update([
'updated_need' => Carbon::now(),
]);
}
} else {
//
if (!$sitelink->wasRecentlyCreated && $sitelink->wasChanged($sitelink::getPropertiesWatch()->toArray())) {
$sitelink->goalSitelinks()->forExternal()->update([
'updated_need' => Carbon::now(),
]);
}
} else {
//
}
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
}
}
}
......
......@@ -48,64 +48,57 @@ class GetVCards extends DirectRequest
function handle($response)
{
try {
\Log::debug($response);
if (isset($response['result']['VCards'])) {
foreach ($response['result']['VCards'] as $v_card) {
if (isset($response['result']['VCards'])) {
foreach ($response['result']['VCards'] as $v_card) {
$external_id = (string)$v_card['Id'];
$campaign_id_external_id = (string)$v_card['CampaignId'];
$external_id = (string)$v_card['Id'];
$campaign_id_external_id = (string)$v_card['CampaignId'];
$campaign = Campaigns::firstWhere('external_id', $campaign_id_external_id);
$campaign = Campaigns::firstWhere('external_id', $campaign_id_external_id);
if (!$campaign) {
continue;
}
if (!$campaign) {
continue;
}
if ($this->getToken()->isMain()) {
$data = [
'external_id' => $external_id,
'campaign_external_id' => $campaign->external_id,
'campaign_id' => $campaign->getKey(),
'country' => $v_card['Country'],
'city' => $v_card['City'],
'work_time' => $v_card['WorkTime'],
'phone' => $v_card['Phone'],
'street' => $v_card['Street'],
'house' => $v_card['House'],
'building' => $v_card['Building'],
'apartment' => $v_card['Apartment'],
'instant_messenger' => $v_card['InstantMessenger'],
'company_name' => $v_card['CompanyName'],
'extra_message' => $v_card['ExtraMessage'],
'contact_email' => $v_card['ContactEmail'],
'ogrn' => $v_card['Ogrn'],
'metro_station_id' => $v_card['MetroStationId'],
'point_on_map' => $v_card['PointOnMap'],
'contact_person' => $v_card['ContactPerson'],
];
$adExtension = VCard::updateOrCreate([
'external_id' => $external_id
], $data);
if (!$adExtension->wasRecentlyCreated && $adExtension->wasChanged($adExtension::getPropertiesWatch()->toArray())) {
$adExtension->goalVCards()->forExternal()->update([
'updated_need' => Carbon::now(),
]);
}
} else {
//
if ($this->getToken()->isMain()) {
$data = [
'external_id' => $external_id,
'campaign_external_id' => $campaign->external_id,
'campaign_id' => $campaign->getKey(),
'country' => $v_card['Country'],
'city' => $v_card['City'],
'work_time' => $v_card['WorkTime'],
'phone' => $v_card['Phone'],
'street' => $v_card['Street'],
'house' => $v_card['House'],
'building' => $v_card['Building'],
'apartment' => $v_card['Apartment'],
'instant_messenger' => $v_card['InstantMessenger'],
'company_name' => $v_card['CompanyName'],
'extra_message' => $v_card['ExtraMessage'],
'contact_email' => $v_card['ContactEmail'],
'ogrn' => $v_card['Ogrn'],
'metro_station_id' => $v_card['MetroStationId'],
'point_on_map' => $v_card['PointOnMap'],
'contact_person' => $v_card['ContactPerson'],
];
$adExtension = VCard::updateOrCreate([
'external_id' => $external_id
], $data);
if (!$adExtension->wasRecentlyCreated && $adExtension->wasChanged($adExtension::getPropertiesWatch()->toArray())) {
$adExtension->goalVCards()->forExternal()->update([
'updated_need' => Carbon::now(),
]);
}
} else {
//
}
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
}
}
}
......
......@@ -32,26 +32,21 @@ class ResumeCampaigns extends DirectRequest
public function handle($response)
{
try {
foreach ($response['result']['ResumeResults'] as $key => $resume_result) {
if (!isset($resume_result['Id'])) {
Log::debug("ResumeCampaigns, empty Id");
Log::debug($resume_result);
Log::debug($this->getParams()['SelectionCriteria']['Ids'][$key]);
continue;
}
foreach ($response['result']['ResumeResults'] as $key => $resume_result) {
if (!isset($resume_result['Id'])) {
Log::debug("ResumeCampaigns, empty Id");
Log::debug($resume_result);
Log::debug($this->getParams()['SelectionCriteria']['Ids'][$key]);
continue;
}
$external_id = (string)$resume_result['Id'];
$external_id = (string)$resume_result['Id'];
DictionaryCampaign::where('external_id', $external_id)
->update([
'disabled_at' => null,
'reserve_resume_at' => null,
]);
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
DictionaryCampaign::where('external_id', $external_id)
->update([
'disabled_at' => null,
'reserve_resume_at' => null,
]);
}
}
......
......@@ -37,38 +37,32 @@ class SetBidModifiers extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['SetResults'])) {
return;
}
foreach ($response['result']['SetResults'] as $key => $set_result) {
if (!isset($set_result['Id'])) {
Log::debug("UpdateBidModifier, empty Id");
Log::debug($set_result);
Log::debug($this->getParams()['BidModifiers'][$key]);
GoalBidModifier::whereExternalId($this->getParams()['BidModifiers'][$key]['Id'])
->update([
'reserve_update_at' => null,
]);
continue;
}
if (!isset($response['result']['SetResults'])) {
return;
}
$external_id = (string)$set_result['Id'];
foreach ($response['result']['SetResults'] as $key => $set_result) {
if (!isset($set_result['Id'])) {
Log::debug("UpdateBidModifier, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($set_result);
Log::debug($this->getParams()['BidModifiers'][$key]);
GoalBidModifier::forExternal()->needUpdated()
->where('external_id', $external_id)
GoalBidModifier::whereExternalId($this->getParams()['BidModifiers'][$key]['Id'])
->update([
'updated_need' => null,
'reserve_update_at' => null,
]);
continue;
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
$external_id = (string)$set_result['Id'];
GoalBidModifier::forExternal()->needUpdated()
->where('external_id', $external_id)
->update([
'updated_need' => null,
'reserve_update_at' => null,
]);
}
}
......
......@@ -33,26 +33,21 @@ class SuspendCampaigns extends DirectRequest
public function handle($response)
{
try {
foreach ($response['result']['SuspendResults'] as $key => $suspend_result) {
if (!isset($suspend_result['Id'])) {
Log::debug("SuspendCampaigns, empty Id");
Log::debug($suspend_result);
Log::debug($this->getParams()['SelectionCriteria']['Ids'][$key]);
continue;
}
foreach ($response['result']['SuspendResults'] as $key => $suspend_result) {
if (!isset($suspend_result['Id'])) {
Log::debug("SuspendCampaigns, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($suspend_result);
Log::debug($this->getParams()['SelectionCriteria']['Ids'][$key]);
continue;
}
$external_id = (string)$suspend_result['Id'];
$external_id = (string)$suspend_result['Id'];
DictionaryCampaign::where('external_id', $external_id)
->update([
'disabled_at' => Carbon::now(),
'reserve_suspend_at' => null,
]);
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
DictionaryCampaign::where('external_id', $external_id)
->update([
'disabled_at' => Carbon::now(),
'reserve_suspend_at' => null,
]);
}
}
......
......@@ -36,55 +36,49 @@ class UpdateAdGroups extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['UpdateResults'])) {
return;
}
if (!isset($response['result']['UpdateResults'])) {
return;
}
foreach ($response['result']['UpdateResults'] as $key => $update_result) {
if (!isset($update_result['Id'])) {
if (isset($update_result['Message']) && $update_result['Message'] === 'Object not found') {
$goalAdGroup = GoalAdGroup::whereExternalId($this->getParams()['AdGroups'][$key]['Id'])
->first();
$goalAdGroup->goalKeywords()->delete();
$goalAdGroup->goalAdvertisements()->delete();
$goalAdGroup->goalBidModifiers()->delete();
$goalAdGroup->goalAudienceTargets()->delete();
$goalAdGroup->forceDelete();
} else {
Log::debug("UpdateAdGroup, empty Id");
Log::debug($update_result);
Log::debug($this->getParams()['AdGroups'][$key]);
GoalAdGroup::whereExternalId($this->getParams()['AdGroups'][$key]['Id'])
->update([
'reserve_update_at' => null,
]);
}
continue;
foreach ($response['result']['UpdateResults'] as $key => $update_result) {
if (!isset($update_result['Id'])) {
if (isset($update_result['Message']) && $update_result['Message'] === 'Object not found') {
$goalAdGroup = GoalAdGroup::whereExternalId($this->getParams()['AdGroups'][$key]['Id'])
->first();
$goalAdGroup->goalKeywords()->delete();
$goalAdGroup->goalAdvertisements()->delete();
$goalAdGroup->goalBidModifiers()->delete();
$goalAdGroup->goalAudienceTargets()->delete();
$goalAdGroup->forceDelete();
} else {
Log::debug("UpdateAdGroup, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($update_result);
Log::debug($this->getParams()['AdGroups'][$key]);
GoalAdGroup::whereExternalId($this->getParams()['AdGroups'][$key]['Id'])
->update([
'reserve_update_at' => null,
]);
}
$external_id = (string)$update_result['Id'];
GoalAdGroup::forExternal()->needUpdated()
->where('external_id', $external_id)
->update([
'updated_need' => null,
'reserve_update_at' => null,
]);
continue;
}
$this->getToken()->update([
'check_changes_ad_group' => Carbon::now()->addSeconds(5),
]);
$external_id = (string)$update_result['Id'];
GoalAdGroup::forExternal()->needUpdated()
->where('external_id', $external_id)
->update([
'updated_need' => null,
'reserve_update_at' => null,
]);
} catch (\Exception $e) {
Log::debug($e);
throw $e;
}
$this->getToken()->update([
'check_changes_ad_group' => Carbon::now()->addSeconds(5),
]);
}
public function failed()
......
......@@ -37,64 +37,58 @@ class UpdateAds extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['UpdateResults'])) {
return;
}
foreach ($response['result']['UpdateResults'] as $key => $update_result) {
if (!isset($update_result['Id'])) {
if (isset($update_result['Errors'][0]['Details']) && $update_result['Errors'][0]['Details'] === 'You cannot update an archived ad') {
GoalAdvertisement::whereExternalId($this->getParams()['Ads'][$key]['Id'])
->update([
'deleted_need' => Carbon::now(),
'archived_need' => null,
'reserve_archive_at' => null,
'reserve_update_at' => null,
]);
continue;
} elseif (isset($update_result['Errors'][0]['Details']) && $update_result['Errors'][0]['Details'] === 'Ad not found') {
GoalAdvertisement::whereExternalId($this->getParams()['Ads'][$key]['Id'])
->update([
'reserve_update_at' => null,
]);
GoalAdvertisement::whereExternalId($this->getParams()['Ads'][$key]['Id'])
->delete();
continue;
}
if (!isset($response['result']['UpdateResults'])) {
return;
}
Log::debug("UpdateAds, empty Id");
Log::debug($update_result);
Log::debug($this->getParams()['Ads'][$key]);
foreach ($response['result']['UpdateResults'] as $key => $update_result) {
if (!isset($update_result['Id'])) {
if (isset($update_result['Errors'][0]['Details']) && $update_result['Errors'][0]['Details'] === 'You cannot update an archived ad') {
GoalAdvertisement::whereExternalId($this->getParams()['Ads'][$key]['Id'])
->update([
'deleted_need' => Carbon::now(),
'archived_need' => null,
'reserve_archive_at' => null,
'reserve_update_at' => null,
]);
continue;
} elseif (isset($update_result['Errors'][0]['Details']) && $update_result['Errors'][0]['Details'] === 'Ad not found') {
GoalAdvertisement::whereExternalId($this->getParams()['Ads'][$key]['Id'])
->update([
'reserve_update_at' => null,
]);
GoalAdvertisement::whereExternalId($this->getParams()['Ads'][$key]['Id'])
->delete();
continue;
}
$external_id = (string)$update_result['Id'];
Log::debug("UpdateAds, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($update_result);
Log::debug($this->getParams()['Ads'][$key]);
GoalAdvertisement::forExternal()->needUpdated()
->where('external_id', $external_id)
GoalAdvertisement::whereExternalId($this->getParams()['Ads'][$key]['Id'])
->update([
'updated_need' => null,
'reserve_update_at' => null,
]);
continue;
}
$this->getToken()->update([
'check_changes_ad_group' => Carbon::now()->addSeconds(5),
]);
$external_id = (string)$update_result['Id'];
GoalAdvertisement::forExternal()->needUpdated()
->where('external_id', $external_id)
->update([
'updated_need' => null,
'reserve_update_at' => null,
]);
} catch (\Exception $e) {
Log::debug($e);
throw $e;
}
$this->getToken()->update([
'check_changes_ad_group' => Carbon::now()->addSeconds(5),
]);
}
public function failed()
......
......@@ -38,50 +38,44 @@ class UpdateCampaigns extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['UpdateResults'])) {
return;
}
foreach ($response['result']['UpdateResults'] as $key => $add_result) {
if (!isset($add_result['Id'])) {
if (isset($add_result['Errors'][0]['Details']) && $add_result['Errors'][0]['Details'] === 'It is forbidden to change an archived campaign') {
DictionaryCampaign::whereExternalId($this->getParams()['Campaigns'][$key]['Id'])
->forceDelete();
continue;
}
if (!isset($response['result']['UpdateResults'])) {
return;
}
Log::debug("UpdateCampaigns, empty Id");
Log::debug($add_result);
Log::debug($this->getParams()['Campaigns'][$key]);
foreach ($response['result']['UpdateResults'] as $key => $add_result) {
if (!isset($add_result['Id'])) {
if (isset($add_result['Errors'][0]['Details']) && $add_result['Errors'][0]['Details'] === 'It is forbidden to change an archived campaign') {
DictionaryCampaign::whereExternalId($this->getParams()['Campaigns'][$key]['Id'])
->update([
'reserve_update_at' => null,
]);
->forceDelete();
continue;
}
$external_id = (string)$add_result['Id'];
Log::debug("UpdateCampaigns, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($add_result);
Log::debug($this->getParams()['Campaigns'][$key]);
DictionaryCampaign::forExternal()->needUpdated()
->where('external_id', $external_id)
DictionaryCampaign::whereExternalId($this->getParams()['Campaigns'][$key]['Id'])
->update([
'updated_need' => null,
'reserve_update_at' => null,
]);
continue;
}
$this->getToken()->update([
'check_changes_campaign' => Carbon::now()->addSeconds(5),
]);
$external_id = (string)$add_result['Id'];
} catch (\Exception $e) {
Log::debug($e);
throw $e;
DictionaryCampaign::forExternal()->needUpdated()
->where('external_id', $external_id)
->update([
'updated_need' => null,
'reserve_update_at' => null,
]);
}
$this->getToken()->update([
'check_changes_campaign' => Carbon::now()->addSeconds(5),
]);
}
public function failed()
......
......@@ -37,38 +37,33 @@ class UpdateKeywords extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['UpdateResults'])) {
return;
}
foreach ($response['result']['UpdateResults'] as $key => $update_result) {
if (!isset($update_result['Id'])) {
Log::debug("UpdateKeywords, empty Id");
Log::debug($update_result);
Log::debug($this->getParams()['Keywords'][$key]);
GoalKeyword::whereExternalId($this->getParams()['Keywords'][$key]['Id'])
->update([
'reserve_update_at' => null,
]);
continue;
}
if (!isset($response['result']['UpdateResults'])) {
return;
}
$external_id =(string) $update_result['Id'];
foreach ($response['result']['UpdateResults'] as $key => $update_result) {
if (!isset($update_result['Id'])) {
Log::debug("UpdateKeywords, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($update_result);
Log::debug($this->getParams()['Keywords'][$key]);
GoalKeyword::forExternal()->needUpdated()
->where('external_id', $external_id)
GoalKeyword::whereExternalId($this->getParams()['Keywords'][$key]['Id'])
->update([
'updated_need' => null,
'reserve_update_at' => null,
]);
continue;
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
$external_id =(string) $update_result['Id'];
GoalKeyword::forExternal()->needUpdated()
->where('external_id', $external_id)
->update([
'updated_need' => null,
'reserve_update_at' => null,
]);
}
}
......
......@@ -50,40 +50,35 @@ class UpdateNegativeKeywordSharedSets extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['UpdateResults'])) {
return;
}
foreach ($response['result']['UpdateResults'] as $key => $update_result) {
$goalNegativeKeywordSharedSet = $this->goalNegativeKeywordSharedSets->get($key);
if (!isset($response['result']['UpdateResults'])) {
return;
}
if (!isset($update_result['Id'])) {
Log::debug("UpdateNegativeKeywordSharedSet, empty Id");
Log::debug($update_result);
Log::debug($this->getParams()['NegativeKeywordSharedSets'][$key]);
foreach ($response['result']['UpdateResults'] as $key => $update_result) {
GoalNegativeKeywordSharedSet::where('external_id', $goalNegativeKeywordSharedSet->external_id)
->update([
'reserve_update_at' => null,
]);
$goalNegativeKeywordSharedSet = $this->goalNegativeKeywordSharedSets->get($key);
continue;
}
if (!isset($update_result['Id'])) {
Log::debug("UpdateNegativeKeywordSharedSet, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($update_result);
Log::debug($this->getParams()['NegativeKeywordSharedSets'][$key]);
$external_id = (string)$update_result['Id'];
GoalNegativeKeywordSharedSet::where('external_id', $external_id)
GoalNegativeKeywordSharedSet::where('external_id', $goalNegativeKeywordSharedSet->external_id)
->update([
'updated_need' => null,
'reserve_update_at' => null,
]);
continue;
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
$external_id = (string)$update_result['Id'];
GoalNegativeKeywordSharedSet::where('external_id', $external_id)
->update([
'updated_need' => null,
'reserve_update_at' => null,
]);
}
}
......
......@@ -37,38 +37,33 @@ class UpdateRetargetinglists extends DirectRequest
public function handle($response)
{
try {
if (!isset($response['result']['UpdateResults'])) {
return;
}
foreach ($response['result']['UpdateResults'] as $key => $update_result) {
if (!isset($update_result['Id'])) {
Log::debug("AddRetargetinglist, empty Id");
Log::debug($update_result);
Log::debug($this->getParams()['RetargetingLists'][$key]);
if (!isset($response['result']['UpdateResults'])) {
return;
}
GoalRetargetinglist::where('external_id', $this->getParams()['RetargetingLists'][$key]['Id'])
->update([
'reserve_update_at' => null,
]);
foreach ($response['result']['UpdateResults'] as $key => $update_result) {
continue;
}
if (!isset($update_result['Id'])) {
Log::debug("AddRetargetinglist, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($update_result);
Log::debug($this->getParams()['RetargetingLists'][$key]);
$external_id = (string)$update_result['Id'];
GoalRetargetinglist::where('external_id', $external_id)
GoalRetargetinglist::where('external_id', $this->getParams()['RetargetingLists'][$key]['Id'])
->update([
'updated_need' => null,
'reserve_update_at' => null,
]);
continue;
}
} catch (\Exception $e) {
Log::debug($e);
throw $e;
$external_id = (string)$update_result['Id'];
GoalRetargetinglist::where('external_id', $external_id)
->update([
'updated_need' => null,
'reserve_update_at' => null,
]);
}
}
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!