mirror of
https://github.com/sctn4elk/CustomerRewardsRESTAPI.git
synced 2025-01-09 15:34:30 -06:00
Work on update customer
This commit is contained in:
parent
3ba4af82fa
commit
24da83e643
|
@ -130,8 +130,8 @@ class CustomerController extends BaseController{
|
||||||
$this->strErrorHeader = 'HTTP/1.1 422 Unprocessable Request';
|
$this->strErrorHeader = 'HTTP/1.1 422 Unprocessable Request';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$jsonPayload = file_get_contents('php://input');
|
$jsonPayload = file_get_contents('php://input');
|
||||||
$input = json_decode($jsonPayload);
|
$input = json_decode($jsonPayload);
|
||||||
|
|
||||||
if (! $this->validatePerson($input)) {
|
if (! $this->validatePerson($input)) {
|
||||||
return $this->unprocessableEntityResponse();
|
return $this->unprocessableEntityResponse();
|
||||||
|
@ -179,13 +179,19 @@ class CustomerController extends BaseController{
|
||||||
if (strtoupper($this->requestMethod) == $request) {
|
if (strtoupper($this->requestMethod) == $request) {
|
||||||
$response = 'true';
|
$response = 'true';
|
||||||
}
|
}
|
||||||
|
|
||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function validatePerson($input)
|
private function validatePerson($input)
|
||||||
{
|
{
|
||||||
return true;
|
$validtion = false;
|
||||||
|
if($input->customer_name_first != null){
|
||||||
|
$validtion = true;
|
||||||
|
if($input->customer_name_last == null) {
|
||||||
|
$validtion = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $validtion;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function unprocessableEntityResponse()
|
private function unprocessableEntityResponse()
|
||||||
|
@ -194,6 +200,8 @@ class CustomerController extends BaseController{
|
||||||
$response['body'] = json_encode([
|
$response['body'] = json_encode([
|
||||||
'error' => 'Invalid input'
|
'error' => 'Invalid input'
|
||||||
]);
|
]);
|
||||||
|
$this->strErrorDesc = 'Unprocessable Payload';
|
||||||
|
$this->strErrorHeader = 'HTTP/1.1 422 Unprocessable Payload';
|
||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -201,6 +209,8 @@ class CustomerController extends BaseController{
|
||||||
{
|
{
|
||||||
$response['status_code_header'] = 'HTTP/1.1 404 Entity Not Found';
|
$response['status_code_header'] = 'HTTP/1.1 404 Entity Not Found';
|
||||||
$response['body'] = null;
|
$response['body'] = null;
|
||||||
|
$this->strErrorDesc = 'Request Entity Not Found';
|
||||||
|
$this->strErrorHeader = 'HTTP/1.1 422 Entity Not Found';
|
||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,34 +88,13 @@ class CustomerModel extends Database {
|
||||||
|
|
||||||
public function insertCustomer($jsonPayLoad)
|
public function insertCustomer($jsonPayLoad)
|
||||||
{
|
{
|
||||||
$rowCount = $this->processStatement("CALL insert_new_customer_proc(?,?,?,?,?,?,?,?,?,?)",
|
$rowCount = $this->processStatement("CALL insert_new_customer_proc", $jsonPayLoad);
|
||||||
[$jsonPayLoad->customer_name_first,
|
|
||||||
$jsonPayLoad->last,
|
|
||||||
$jsonPayLoad->email,
|
|
||||||
$jsonPayLoad->phone,
|
|
||||||
$jsonPayLoad->birthday,
|
|
||||||
$jsonPayLoad->street,
|
|
||||||
$jsonPayLoad->city,
|
|
||||||
$jsonPayLoad->state,
|
|
||||||
$jsonPayLoad->zip,
|
|
||||||
$jsonPayLoad->loyalty]);
|
|
||||||
return $rowCount;
|
return $rowCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function updateCustomer($jsonPayLoad)
|
public function updateCustomer($jsonPayLoad)
|
||||||
{
|
{
|
||||||
$rowCount = $this->processStatement("CALL update_existing_customer_proc(?,?,?,?,?,?,?,?,?,?,?)",
|
$rowCount = $this->processStatement("CALL update_existing_customer_proc", $jsonPayLoad);
|
||||||
[$jsonPayLoad->customer_id,
|
|
||||||
$jsonPayLoad->customer_name_first,
|
|
||||||
$jsonPayLoad->customer_name_last,
|
|
||||||
$jsonPayLoad->customer_email,
|
|
||||||
$jsonPayLoad->customer_phone,
|
|
||||||
$jsonPayLoad->customer_birthday,
|
|
||||||
$jsonPayLoad->customer_street,
|
|
||||||
$jsonPayLoad->address_city,
|
|
||||||
$jsonPayLoad->address_state,
|
|
||||||
$jsonPayLoad->address_zip,
|
|
||||||
$jsonPayLoad->loyalty_member]);
|
|
||||||
return $rowCount;
|
return $rowCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ class Database {
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
|
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
|
||||||
$this->connection = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_DATABASE_NAME);
|
$this->connection = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_DATABASE_NAME);
|
||||||
|
|
||||||
if ( mysqli_connect_errno()) {
|
if ( mysqli_connect_errno()) {
|
||||||
|
@ -59,6 +59,8 @@ class Database {
|
||||||
public function processStatement($query = "", $params = [])
|
public function processStatement($query = "", $params = [])
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
$parameters = str_repeat('?,', count($params) - 1) . '?';
|
||||||
|
$query += "(".$parameters.")";
|
||||||
$stmt = $this->executeStatement( $query, $params );
|
$stmt = $this->executeStatement( $query, $params );
|
||||||
$result = $this->connection->affected_rows;
|
$result = $this->connection->affected_rows;
|
||||||
$stmt->close();
|
$stmt->close();
|
||||||
|
@ -72,16 +74,17 @@ class Database {
|
||||||
private function executeStatement($query = "", $params = [])
|
private function executeStatement($query = "", $params = [])
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$stmt = $this->connection->prepare( $query );
|
$stmt = $this->connection->prepare($query);
|
||||||
if($stmt === false) {
|
if($stmt === false) {
|
||||||
throw New Exception("Unable to do prepared statement: " . $query);
|
throw New Exception("Unable to do prepared statement: " . $query);
|
||||||
}
|
}
|
||||||
if( $params ) {
|
|
||||||
|
/*if( $params ) {
|
||||||
$stmt->bind_param(str_repeat("s", count($params)), ...$params);
|
$stmt->bind_param(str_repeat("s", count($params)), ...$params);
|
||||||
//$stmt->bind_param("isssssssssi", $params[0],$params[1],$params[2],$params[3],$params[4],$params[5],$params[6],$params[7],$params[8],$params[9],$params[10]);
|
}*/
|
||||||
}
|
|
||||||
|
$stmt->execute($params);
|
||||||
$stmt->execute();
|
//$stmt->execute();
|
||||||
return $stmt;
|
return $stmt;
|
||||||
} catch(Exception $e) {
|
} catch(Exception $e) {
|
||||||
throw New Exception( $e->getMessage() );
|
throw New Exception( $e->getMessage() );
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
],
|
],
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpunit/phpunit": "11",
|
"phpunit/phpunit": "11",
|
||||||
"vitexsoftware/phpunit-skeleton-generator": "*"
|
"vitexsoftware/phpunit-skeleton-generator": "*",
|
||||||
|
"php-webdriver/webdriver": "*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
129
composer.lock
generated
129
composer.lock
generated
|
@ -4,7 +4,7 @@
|
||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "242e5f38e4bcb2865e1a959b6ab2eae0",
|
"content-hash": "cda368583fd799f54642eb879b836eb5",
|
||||||
"packages": [],
|
"packages": [],
|
||||||
"packages-dev": [
|
"packages-dev": [
|
||||||
{
|
{
|
||||||
|
@ -242,6 +242,72 @@
|
||||||
},
|
},
|
||||||
"time": "2022-02-21T01:04:05+00:00"
|
"time": "2022-02-21T01:04:05+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "php-webdriver/webdriver",
|
||||||
|
"version": "1.15.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/php-webdriver/php-webdriver.git",
|
||||||
|
"reference": "cd52d9342c5aa738c2e75a67e47a1b6df97154e8"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/php-webdriver/php-webdriver/zipball/cd52d9342c5aa738c2e75a67e47a1b6df97154e8",
|
||||||
|
"reference": "cd52d9342c5aa738c2e75a67e47a1b6df97154e8",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-curl": "*",
|
||||||
|
"ext-json": "*",
|
||||||
|
"ext-zip": "*",
|
||||||
|
"php": "^7.3 || ^8.0",
|
||||||
|
"symfony/polyfill-mbstring": "^1.12",
|
||||||
|
"symfony/process": "^5.0 || ^6.0 || ^7.0"
|
||||||
|
},
|
||||||
|
"replace": {
|
||||||
|
"facebook/webdriver": "*"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"ergebnis/composer-normalize": "^2.20.0",
|
||||||
|
"ondram/ci-detector": "^4.0",
|
||||||
|
"php-coveralls/php-coveralls": "^2.4",
|
||||||
|
"php-mock/php-mock-phpunit": "^2.0",
|
||||||
|
"php-parallel-lint/php-parallel-lint": "^1.2",
|
||||||
|
"phpunit/phpunit": "^9.3",
|
||||||
|
"squizlabs/php_codesniffer": "^3.5",
|
||||||
|
"symfony/var-dumper": "^5.0 || ^6.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-SimpleXML": "For Firefox profile creation"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"lib/Exception/TimeoutException.php"
|
||||||
|
],
|
||||||
|
"psr-4": {
|
||||||
|
"Facebook\\WebDriver\\": "lib/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"description": "A PHP client for Selenium WebDriver. Previously facebook/webdriver.",
|
||||||
|
"homepage": "https://github.com/php-webdriver/php-webdriver",
|
||||||
|
"keywords": [
|
||||||
|
"Chromedriver",
|
||||||
|
"geckodriver",
|
||||||
|
"php",
|
||||||
|
"selenium",
|
||||||
|
"webdriver"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/php-webdriver/php-webdriver/issues",
|
||||||
|
"source": "https://github.com/php-webdriver/php-webdriver/tree/1.15.1"
|
||||||
|
},
|
||||||
|
"time": "2023-10-20T12:21:20+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/php-code-coverage",
|
"name": "phpunit/php-code-coverage",
|
||||||
"version": "11.0.3",
|
"version": "11.0.3",
|
||||||
|
@ -2052,6 +2118,67 @@
|
||||||
],
|
],
|
||||||
"time": "2024-01-29T20:11:03+00:00"
|
"time": "2024-01-29T20:11:03+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/process",
|
||||||
|
"version": "v7.0.7",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/process.git",
|
||||||
|
"reference": "3839e56b94dd1dbd13235d27504e66baf23faba0"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/process/zipball/3839e56b94dd1dbd13235d27504e66baf23faba0",
|
||||||
|
"reference": "3839e56b94dd1dbd13235d27504e66baf23faba0",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=8.2"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Symfony\\Component\\Process\\": ""
|
||||||
|
},
|
||||||
|
"exclude-from-classmap": [
|
||||||
|
"/Tests/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Executes commands in sub-processes",
|
||||||
|
"homepage": "https://symfony.com",
|
||||||
|
"support": {
|
||||||
|
"source": "https://github.com/symfony/process/tree/v7.0.7"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://symfony.com/sponsor",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/fabpot",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2024-04-18T09:29:19+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/service-contracts",
|
"name": "symfony/service-contracts",
|
||||||
"version": "v3.4.2",
|
"version": "v3.4.2",
|
||||||
|
|
Loading…
Reference in New Issue
Block a user