public function action($request) { $location = $this->getLocation($request); if (empty($location['mi'])) { return true; } $db = JFactory::getDBO(); $mi = new microIntegration(); if (!$mi->mi_exists($location['mi'])) { return true; } $mi->load($location['mi']); if (!$mi->callIntegration()) { return null; } global $aecConfig; $action = 'action'; $exchange = null; if ($mi->relayAction($request->metaUser, $exchange, $request->invoice, null, $action, $request->add) === false) { if ($aecConfig->cfg['breakon_mi_error']) { return false; } } return true; }
/** * @param metaUser $metaUser * @param SubscriptionPlan $subscription_plan */ public function userPlanExpireActions($metaUser, $subscription_plan, $special = null) { $mi_autointegrations = $this->getAutoIntegrations(); if (empty($mi_autointegrations) && empty($subscription_plan)) { return null; } $mis = $subscription_plan->getMicroIntegrations(); if (is_array($mis)) { $user_auto_integrations = array_intersect($mis, $mi_autointegrations); } if (empty($user_auto_integrations)) { return null; } foreach ($user_auto_integrations as $mi_id) { $mi = new microIntegration(); $mi->load($mi_id); if ($mi->callIntegration()) { $invoice = null; if (!empty($metaUser->focusSubscription->id)) { $invoice = new Invoice(); $invoice->loadbySubscriptionId($metaUser->focusSubscription->id); if (empty($invoice->id)) { $invoice = null; } } $mi->expiration_action($metaUser, $subscription_plan, $invoice); if (!empty($special)) { $mi->relayAction($metaUser, null, $invoice, $subscription_plan, $special); } } } }
/** * @param string $action */ public function triggerMIs($action, &$metaUser, &$exchange, &$invoice, &$add, &$silent) { global $aecConfig; $micro_integrations = $this->getMicroIntegrations(); if (!is_array($micro_integrations)) { return null; } foreach ($micro_integrations as $mi_id) { $mi = new microIntegration(); if (!$mi->mi_exists($mi_id)) { continue; } $mi->load($mi_id); if (!$mi->callIntegration()) { continue; } // TODO: Only trigger if this is not email or made not silent if (method_exists($metaUser, $action)) { if ($mi->{$action}($metaUser, $exchange, $invoice, $this) === false) { if ($aecConfig->cfg['breakon_mi_error']) { return false; } } } else { $params = array(); if (isset($invoice->params['userMIParams'])) { if (is_array($invoice->params['userMIParams'])) { if (isset($invoice->params['userMIParams'][$this->id][$mi->id])) { $params = $invoice->params['userMIParams'][$this->id][$mi->id]; } } } if ($mi->relayAction($metaUser, $exchange, $invoice, $this, $action, $add, $params) === false) { if ($aecConfig->cfg['breakon_mi_error']) { return false; } } } } return true; }
public function cmdApply($metaUser, $params) { global $aecConfig; $db = JFactory::getDBO(); switch (strtolower($params[0])) { case 'plan': $plans = explode(',', $params[1]); foreach ($plans as $planid) { $plan = new SubscriptionPlan(); $plan->load($planid); $metaUser->establishFocus($plan); $metaUser->focusSubscription->applyUsage($planid, 'none', 1); } break; case 'mi': $micro_integrations = explode(',', $params[1]); if (is_array($micro_integrations)) { foreach ($micro_integrations as $mi_id) { $mi = new microIntegration(); if (!$mi->mi_exists($mi_id)) { continue; } $mi->load($mi_id); if (!$mi->callIntegration()) { continue; } if (isset($params[2])) { $action = $params[2]; } else { $action = 'action'; } $invoice = $exchange = $add = null; if ($mi->relayAction($metaUser, $exchange, $invoice, null, $action, $add) === false) { if ($aecConfig->cfg['breakon_mi_error']) { return false; } } unset($mi); } } break; } }
/** * @param Invoice $invoice */ public function triggerMIs($metaUser, $invoice, $new_plan) { global $aecConfig; // See whether this coupon has micro integrations if (empty($this->coupon->micro_integrations)) { return null; } foreach ($this->coupon->micro_integrations as $mi_id) { $mi = new microIntegration(); // Only call if it exists if (!$mi->mi_exists($mi_id)) { continue; } $mi->load($mi_id); // Check whether we can really call if (!$mi->callIntegration()) { continue; } $add = $params = false; if (is_object($metaUser)) { if ($mi->action($metaUser, null, $invoice, $new_plan) === false) { if ($aecConfig->cfg['breakon_mi_error']) { return false; } } if ($mi->relayAction($metaUser, null, $invoice, $this, 'afteraction', $add, $params) === false) { if ($aecConfig->cfg['breakon_mi_error']) { return false; } } } else { $metaUser = false; if ($mi->action($metaUser, null, $invoice, $new_plan) === false) { if ($aecConfig->cfg['breakon_mi_error']) { return false; } } if ($mi->relayAction($metaUser, null, $invoice, $this, 'afteraction', $add, $params) === false) { if ($aecConfig->cfg['breakon_mi_error']) { return false; } } } } }
public function relayAction($request) { if (!($request->area == 'afteraction')) { return null; } $options = $this->getOption($request); foreach ($options as $option) { if (empty($option['mi'])) { continue; } $mi = new microIntegration(); if (!$mi->mi_exists($option['mi'])) { return true; } $mi->load($option['mi']); if ($mi->callIntegration()) { $exchange = $params = null; if ($mi->relayAction($request->metaUser, $exchange, $request->invoice, null, 'action', $request->add, $params) === false) { global $aecConfig; if ($aecConfig->cfg['breakon_mi_error']) { return false; } } if ($mi->relayAction($request->metaUser, $exchange, $request->invoice, null, 'afteraction', $request->add, $params) === false) { global $aecConfig; if ($aecConfig->cfg['breakon_mi_error']) { return false; } } } } return true; }