dependent_country_state-1.0.6/src/Controller/APIController.php

src/Controller/APIController.php
<?php

namespace Drupal\dependent_country_state\Controller;

use Drupal\Core\Controller\ControllerBase;
use Drupal\Core\Database\Connection;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\RequestStack;

/**
 * Country Controller for handing country listing etc.
 */
class APIController extends ControllerBase {

  /**
   * Dbconnectin variable for storing database instance.
   *
   * @var dbConnection
   */
  protected $dbConnection;

  /**
   * This variable store instace of reqequest stack to get value from url.
   *
   * @var getRequest
   */
  protected $getRequest;

  /**
   * Construction to inilized the database object.
   *
   * @param Drupal\Core\Database\Connection $getConnection
   *   The database connection to be used.
   * @param Symfony\Component\HttpFoundation\RequestStack $getRequest
   *   The request param from url to be used.
   */
  public function __construct(Connection $getConnection, RequestStack $getRequest,) {
    $this->dbConnection = $getConnection;
    $this->getRequest = $getRequest;
  }

  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container) {

    // Instantiates GetData class.
    return new static(
      $container->get('database'),
      $container->get('request_stack'),
    );

  }

  /**
   * List all country.
   */
  public function getCountry() {

    $countryId = !empty($this->getRequest->getCurrentRequest()->query->get('id')) ? $this->getRequest->getCurrentRequest()->query->get('id') : 0;
    $countryName = !empty($this->getRequest->getCurrentRequest()->query->get('country_name')) ? $this->getRequest->getCurrentRequest()->query->get('country_name') : '';

    $query = $this->dbConnection->select('dependent_country"', 'c');
    $query = $query->fields('c', ['id', 'country_name', 'country_code', 'logo']);

    if (!empty($countryId) && $countryId > 0) {
      $query = $query->condition('c.id', $countryId, '=');
    }
    if (!empty($countryName)) {
      $query = $query->condition('c.country_name', '%' . $countryName . '%', 'like');
    }
    $query = $query->condition('c.status', 1, '=');

    $result = $query->execute()->fetchAll();
    $totalResult = count($result);
    return new JsonResponse(['total_count' => $totalResult, 'data' => $result], 200, ['Content-Type' => 'application/json']);

  }

  /**
   * List all country.
   */
  public function getState($countryId) {

    $stateName = !empty($this->getRequest->getCurrentRequest()->query->get('state_name')) ? $this->getRequest->getCurrentRequest()->query->get('state_name') : '';

    $query = $this->dbConnection->select('dependent_state"', 's');
    $query = $query->fields('s', ['id', 'state_name']);

    if (!empty($countryId) && $countryId > 0) {
      $query = $query->condition('s.countryId', $countryId, '=');
    }
    if (!empty($stateName)) {
      $query = $query->condition('s.state_name', '%' . $stateName . '%', 'like');
    }
    $query = $query->condition('s.status', 1, '=');

    $result = $query->execute()->fetchAll();
    $totalResult = count($result);
    return new JsonResponse(['total_count' => $totalResult, 'data' => $result], 200, ['Content-Type' => 'application/json']);

  }

  /**
   * List all country.
   */
  public function getCity($stateId) {

    $cityName = !empty($this->getRequest->getCurrentRequest()->query->get('city_name')) ? $this->getRequest->getCurrentRequest()->query->get('city_name') : '';

    $query = $this->dbConnection->select('dependent_city"', 'c');
    $query = $query->fields('c', ['id', 'city_name']);

    if (!empty($stateId) && $stateId > 0) {
      $query = $query->condition('c.stateId', $stateId, '=');
    }
    if (!empty($cityName)) {
      $query = $query->condition('c.city_name', '%' . $cityName . '%', 'like');
    }
    $query = $query->condition('c.status', 1, '=');

    $result = $query->execute()->fetchAll();

    $totalResult = count($result);

    return new JsonResponse(['total_count' => $totalResult, 'data' => $result], 200, ['Content-Type' => 'application/json']);

  }

  /**
   * List all country.
   */
  public function getPincode($cityId) {

    $pincode_area = !empty($this->getRequest->getCurrentRequest()->query->get('pincode_area')) ? $this->getRequest->getCurrentRequest()->query->get('pincode_area') : '';

    $query = $this->dbConnection->select('dependent_pincode"', 'p');
    $query = $query->fields('p', ['id', 'area_name', 'pincode']);

    if (!empty($cityId) && $cityId > 0) {
      $query = $query->condition('p.cityId', $cityId, '=');
    }

    if (!empty($pincode_area)) {

      $orGroup = $query->orConditionGroup()
        ->condition('p.area_name', '%' . $pincode_area . '%', 'LIKE')
        ->condition('p.pincode', '%' . $pincode_area . '%', 'LIKE');
      $query->condition($orGroup);

    }

    $result = $query->execute()->fetchAll();

    $totalResult = count($result);
    return new JsonResponse(['total_count' => $totalResult, 'data' => $result], 200, ['Content-Type' => 'application/json']);

  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc