protected function execute(InputInterface $input, OutputInterface $output) { $wcOrdersSecondPage = $wcOrders = null; try { $client = new RESTAPI(); $wcOrders = $client->getCompletedOrders(); $wcOrdersSecondPage = $client->getCompletedOrdersSecondPage(); } catch (WC_API_Client_HTTP_Exception $exc) { //TODO: do something } $em = $this->getContainer()->get('doctrine')->getManager(); if ($wcOrders) { foreach ($wcOrders['orders'] as $wcOrder) { if (true == $wcOrder['payment_details']['paid']) { $order = $em->getRepository('MeVisaERPBundle:Orders')->findOneBy(array('channel' => 'MeVisa.ru', 'wcId' => $wcOrder['order_number'])); if (!$order) { $order = $this->newOrder($em, $wcOrder); } $em->persist($order); } // $wcOrderNotes = $client->getOrderNotes($wcOrder['order_number']); // $this->updateOrderNotes($em, $order, $wcOrderNotes['order_notes']); } } if ($wcOrdersSecondPage) { foreach ($wcOrdersSecondPage['orders'] as $wcOrder) { if (true == $wcOrder['payment_details']['paid']) { $order = $em->getRepository('MeVisaERPBundle:Orders')->findOneBy(array('wcId' => $wcOrder['order_number'])); if (!$order) { $order = $this->newOrder($em, $wcOrder); } $em->persist($order); } } } $em->flush(); }
public function apiAction() { $client = new RESTAPI(); //TODO: make a function that tests the webhook is active periodically, if not create a new one //TODO: make a function that keeps checking on orders $em = $this->getDoctrine()->getManager(); $wcOrders = $client->getCompletedOrders(); foreach ($wcOrders['orders'] as $wcOrder) { $order = $em->getRepository('MeVisaERPBundle:Orders')->findOneBy(array('wcId' => $wcOrder['order_number'])); if ($order) { if (\is_null($order->getUpdatedAt())) { $order = $this->updateOrder($em, $wcOrder, $order); } } else { $order = $this->newOrder($em, $wcOrder); } $wcOrderNotes = $client->getOrderNotes($wcOrder['order_number']); $this->updateOrderNotes($em, $order, $wcOrderNotes['order_notes']); $em->persist($order); } $em->flush(); // TODO: parse links // $links = explode(',', $order->response->headers['Link']); // foreach ($links as $link) { // $linkPart = explode(';', $link); // if (count($linkPart) < 2) // continue; // $links[] = $linkPart; // } return array('wcOrders' => $wcOrders); }