/**
  * Checks whether there are any business like the one being saved
  *
  *	Rules for finding if two business are duplicates. If any one of the below
  *	mentioned rules are satisfied, then the business data passed in as $data
  *	param is a duplicate business.
  *
  *	 1) Any business already saved should not have atleast one mobile number 
  *			same as the business being uploaded and status of business is
  * 			BUSINESS_VERIFIED_COMPLETE.
  *	 2) Any business already saved should not have atleast one landline number
  *			same as the business being uploaded and status of business is
  *			BUSINESS_VERIFIED_COMPLETE.
  */
 public static function exists($data)
 {
     $mobile_number = $data["mobile_number"];
     $domain_name = Environment::getCoreAttirbutesDomain();
     $mobile_number = CoreAttributesUtils::implode($mobile_number);
     $query = "SELECT status FROM {$domain_name} WHERE mobile_number " . "IN ({$mobile_number}) ";
     $result = SimpleDbPersister::select($query);
     $items = $result["Items"];
     if (isset($items) === TRUE && $items[0]["Attributes"][0]["Value"] == "BUSINESS_VERIFIED_COMPLETE") {
         return TRUE;
     }
     //Landline number not set, so no need to check
     if (isset($data["landline_number"]) === FALSE) {
         return FALSE;
     }
     $landline_number = $data["landline_number"];
     $landline_number = CoreAttributesUtils::implode($landline_number);
     $query = "SELECT status FROM {$domain_name} WHERE landline_number " . "IN ({$landline_number}) ";
     $result = SimpleDbPersister::select($query);
     $items = $result["Items"];
     if (isset($items) === TRUE && $items[0]["Attributes"]["Value"] == "BUSINESS_VERIFIED_COMPLETE") {
         return TRUE;
     }
     return FALSE;
 }
 public static function delete($domain_name, $item_name)
 {
     SimpleDbPersister::init();
     $client = SimpleDbClient::factory(array('key' => SimpleDbPersister::$AWS_KEY, 'secret' => SimpleDbPersister::$AWS_SECRET_KEY, 'region' => SimpleDbPersister::REGION));
     $result = $client->deleteAttributes(array('DomainName' => $domain_name, 'ItemName' => $item_name));
     return $result;
 }
 public function getAllCategories()
 {
     $domain_name = $this->_domain_name;
     $query = "SELECT category FROM {$domain_name}";
     $next_token = "";
     $categories = array();
     do {
         $response = SimpleDbPersister::select($query, $next_token);
         $next_token = $response['NextToken'];
         $fetched_records = $response['Items'];
         foreach ($fetched_records as $index => $record) {
             array_push($categories, $record["Attributes"][0]["Value"]);
         }
     } while (empty($next_token) === FALSE);
     return $categories;
 }
 /**
  *	Query the simple DB
  *
  *	@param $query The simple db query to execute
  *
  *	@return $output Array of associative array. The keys in the
  *					associative array are the columns that are extracted
  *					from the query
  */
 private function query($query)
 {
     $output = array();
     $next_token = "";
     do {
         $result = SimpleDbPersister::select($query, $next_token);
         $items = $result["Items"];
         $next_token = $result["NextToken"];
         foreach ($items as $item) {
             $business_id = $item["Name"];
             $attributes = $item["Attributes"];
             $business_item = BusinessUtils::toArray($attributes);
             if (is_null($business_item) === TRUE) {
                 continue;
             }
             $output[$business_id] = $business_item;
         }
     } while (isset($next_token) === TRUE);
     return $output;
 }
 /**
  * Get the details of the list of business passed in the construtor
  *
  */
 public function get()
 {
     $business_id_array = $this->_business_id_array;
     $domain_name = $this->_domain_name;
     $result = array();
     foreach ($business_id_array as $business_id) {
         $attributes = SimpleDbPersister::getAttributes($domain_name, $business_id, array("business_name", "business_id"));
         if (empty($attributes) === TRUE) {
             continue;
         }
         $record = array();
         foreach ($attributes as $attribute) {
             $attribute_name = $attribute["Name"];
             $attribute_value = $attribute["Value"];
             $record[$attribute_name] = $attribute_value;
         }
         array_push($result, $record);
     }
     return $result;
 }
    return;
}
//If a new business entry, check whether it exists already
if ($is_update_operation === FALSE && CoreAttributesUtils::exists($data) === TRUE) {
    $error_json = array("status" => "error", "error" => "Business already exists");
    echo json_encode($error_json);
    return;
}
//If an update operation, don't re-generate business_id and set $replace to true
if ($is_update_operation === TRUE) {
    $attributes = SimpleDbUtils::genSimpleDbAttributesArray($data, true);
} else {
    $is_busines_id_already_taken = false;
    /* Check whether the unique business id that is generated is already not
     * taken.
     */
    do {
        $business_id = BusinessIdGenerator::generate($data["pincode"]);
        $data["business_id"] = $business_id;
        $result = SimpleDbPersister::getAttributes($domain_name, $business_id, array("business_id"));
        $is_business_id_already_taken = empty($result) ? false : true;
    } while ($is_business_id_already_taken === TRUE);
    $attributes = SimpleDbUtils::genSimpleDbAttributesArray($data);
}
$message = CoreAttributesUtils::generateSMSMessage($data);
SMS::send($sms_number, $message);
$business_id = $data["business_id"];
SimpleDbPersister::save($domain_name, $business_id, $attributes);
$success_json = array("status" => "success", "business_id" => $business_id, "created_by_user" => $data["created_by_user"], "created_time" => $data["created_time"]);
echo json_encode($success_json);
return;
<?php

require_once "config.php";
use citibytes\ChainList;
use citibytes\Environment;
use citibytes\utils\SimpleDbUtils;
use citibytes\persister\SimpleDbPersister;
$chain_name = $_REQUEST["chain_name"];
$domain_name = Environment::getChainListDomain();
if (empty($chain_name) === TRUE) {
    $error_json = array("status" => "error", "error" => "chain_name parameter cannot be empty");
    echo json_encode($error_json);
    return;
}
$chain_list = new ChainList();
$item_name = $chain_name;
$result = SimpleDbPersister::getAttributes($domain_name, $item_name);
if (empty($result) === TRUE) {
    $chain_list->save($chain_name);
    $success_json = array("status" => "success");
    echo json_encode($success_json);
} else {
    $error_json = array("status" => "error", "error" => "Chain name already exists");
    echo json_encode($error_json);
}
 private function getBusinessDetails($business_id)
 {
     $domain_name = $this->_domain_name;
     $attributes = SimpleDbPersister::getAttributes($domain_name, $business_id);
     return $attributes;
 }
<?php

require_once "config.php";
use citibytes\persister\SimpleDbPersister;
$business_id = $_REQUEST["business_id"];
SimpleDbPersister::delete("core_attributes", $business_id);
$success_json = array("status" => "success");
echo json_encode($success_json);