/** * 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);