0

webapi.xml:

 <route url="/V1/orders/" method="GET">
        <service class="SimplifiedMagento\Custom2\Api\OrderedRepositoryInterface" method="getOrderDetails"/>
        <resources>
            <resource ref="anonymous" />
        </resources>
    </route>

service class of API:

<?php

namespace SimplifiedMagento\Custom2\Model;

use SimplifiedMagento\Custom2\Api\OrderedRepositoryInterface;
use SimplifiedMagento\Custom2\Model\AddDataFactory;
use Magento\Sales\Model\OrderFactory;
use SimplifiedMagento\Custom2\Api\Data\OrderedInterfaceFactory;

class OrderedRepository implements OrderedRepositoryInterface
{
    public $addDataFactory;
    public $orderFactory;
    public $orderedInterfaceFactory;

    public function __construct(AddDataFactory $addDataFactory,OrderFactory $orderFactory,OrderedInterfaceFactory $orderedInterfaceFactory)
      {
           $this->addDataFactory = $addDataFactory;
           $this->orderFactory = $orderFactory;
           $this->orderedInterfaceFactory = $orderedInterfaceFactory;



     }
     /**
      *
      *@return \SimplifiedMagento\Custom2\Api\Data\OrderedInterface
      */

        public function getOrderDetails()
         {
           /*$employeeId = 2;
            $custom = $this->addDataFactory->create();
           $obj = $custom->getCollection()->addFieldToSelect(['customer_id'])->addFieldToFilter('entity_id',$employeeId);

            foreach($obj as $id)
            {
            $arr = $id->getData();
            break;

             }
               $var = $arr['customer_id']; //customer id

             $object = $this->orderFactory->create();
             $engg = $object->getCollection()->addFieldToSelect(['entity_id'])->addFieldToFilter('customer_id',$var);
              foreach($engg as $item)
              {
            $array = $item->getData();
            break;

            }
             $var = $array['entity_id']; 

                 $into = $this->OrderedInterfaceFactory->create()->setOrderId($var);
                   return $into;
                   */

                  $emp =   $this->addDataFactory->create()->getCollection()->addFieldToSelect(['customer_id'])->addFieldToFilter('entity_id',2);
                  foreach($emp as $hit)
                  {
                      $datas = $hit->getData();
                  }
                  $vard = $datas['customer_id'];
                  //var_dump($vard);
                 // echo "</br>";

                 $obj =  $this->orderFactory->create()->getCollection()->addFieldToSelect(['entity_id'])->addFieldToFilter('customer_id',$vard);
                 foreach($obj as $item)
                 {
                   $arr =  $item->getData();
                     //break;
                 }
                 $var = $arr['entity_id'];
                 //var_dump($var);

                 $into = $this->OrderedInterfaceFactory->create()->setOrderId($var);
                 return $into;



        }









    }









?>

Servie interface:

<?php

namespace SimplifiedMagento\Custom2\Api;

Interface OrderedRepositoryInterface
{



     /** 
    * 
    * @return \SimplifiedMagento\Custom2\Api\Data\OrderedInterface
    */

    public function getOrderDetails();

}



?>

Data class :

 <?php

    namespace SimplifiedMagento\Custom2\Model\Data;
    use Magento\Framework\DataObject;
    use SimplifiedMagento\Custom2\Api\Data\OrderedInterface;

    class Ordered extends DataObject  implements OrderedInterface
    {

       /** 
        * @return string
        *
        */
          public function getOrderId()
          {
              return $this->getData('OrderId');
          }






        /** 
        * @param string $orderId
        * @return $this
        */
         public function setOrderId($orderId)
         {
             return $this->setData('OrderId',$orderId);
         }





    }

    ?>

Data Interface :

<?php

namespace SimplifiedMagento\Custom2\Model\Data;
use Magento\Framework\DataObject;
use SimplifiedMagento\Custom2\Api\Data\OrderedInterface;

class Ordered extends DataObject  implements OrderedInterface
{

   /** 
    * @return string
    *
    */
      public function getOrderId()
      {
          return $this->getData('OrderId');
      }






    /** 
    * @param string $orderId
    * @return $this
    */
     public function setOrderId($orderId)
     {
         return $this->setData('OrderId',$orderId);
     }





}

?>

service Interfce:

<?php

namespace SimplifiedMagento\Custom2\Api;

Interface OrderedRepositoryInterface
{



     /** 
    * 
    * @return \SimplifiedMagento\Custom2\Api\Data\OrderedInterface
    */

    public function getOrderDetails();

}



?>
7
  • please add searchCriteria in api endpoint even there is no searchCriteria you want to pass, add like yourendpint?searchCriteria, this will solve this error Dec 12, 2019 at 5:45
  • <route url="/V1/orders/" method="GET"> <service class="SimplifiedMagento\Custom2\Api\OrderedRepositoryInterface" method="getOrderDetails"/> <resources> <resource ref="anonymous" /> </resources> </route> Dec 12, 2019 at 6:02
  • i did not get you this my webapi.xml file Dec 12, 2019 at 6:03
  • I guess this is your custom API please share rest of the files for proper solutions Dec 12, 2019 at 6:08
  • yes. i have posted my service class Dec 12, 2019 at 6:12

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Browse other questions tagged or ask your own question.