-
Notifications
You must be signed in to change notification settings - Fork 1
MagicInput
francis-agarwal edited this page Apr 5, 2018
·
3 revisions
Request from client/front-end
Type: POST
content-type: application/json
{
"icno":"7801263",
"kp":"2.23",
"emel":"ilham.fuead@gmail.com",
"jantina":"a",
"tkhlahir":"1979-01-29 21:59:59",
"hackedInput":"6469aaa898%$#"
}
API/Back-end process script
Retrieving input in JSON. Using JSON as input for DB operation
$inputObj = new MagicInput();
/**
* Use INPUT DEFINITION - to establish acceptable input trait
* Definition is in Array format - [inputName(string),inputType(string),requiredStatus(boolean),inputAlias(string)]
* Notes:
*
* i. inputType(string) to denote input datatype/format as:
* [i] Integer
* [f] Float
* [n] Numeric(integer/float)
* [d] Date(yyyy-mm-dd)
* [dt] Datetime(yyyy-mm-dd HH:mm:ss)
* [s] String
* [e] E-mail
* [u] Unknown
*
* ii. requiredStatus is use to denote input is mandatory
*
* iii. inputAlias(string) is use for input mapping in other component/object/array
* If no alias given, inputName will be used for mapping
*
*/
$inputObj->setInputsDefinition([
['icno', 'i', true, 'nric'],
['kp', 'f', true, 'socialNo'],
['gaji', 'f', false, 'salary'],
['emel', 'e', true, 'email'],
['jantina', 's', true, 'gender'],
['tkhlahir', 'dt', true, 'dob'],
['nick', 's', true, ''],
['gred', 'i', true, '']
]);
/* Set input inline/hardcode/default value */
$inputObj->nick = "mr coder";
$inputObj->gred = 56;
/* Retrieved inputs from front-end JSON request */
$inputObj->copy_RAW_JSON_properties();
/** TODO: Check if inputs supplied complied with definition(satisfy specified each input conditions to be valid) */
if ($inputObj->isInputsComplied()) {
/** TODO: Display valid inputs in JSON */
//echo $inputObj->getJsonString();
/** TODO: Use valid inputs in DB operation */
$DBCmd = new DBCommand($DBQueryObj);
$DBCmd->setUPDATEtoTable('tblUser');
$DBCmd->importInputColumns($inputObj);
$DBCmd->addConditionStatement('icno', $inputObj->icno, IFieldType::STRING_TYPE);
echo $DBCmd->getSQLstring();
} else {
/** TODO: Display Non complied inputs with error message */
echo json_encode($inputObj->getNonCompliedInputList());
}
RESPONSE
Sent back output to client from API
UPDATE tblUser SET nric=7801263,socialNo=2.23,email='ilham.fuead@gmail.com',gender='a',dob='1979-01-29 21:59:59',nick='mr coder',gred=56 WHERE icno='7801263'
Mandryn Team 2018