Programming Standards: Difference between revisions
| Line 55: | Line 55: | ||
Where settings means all other props. | Where settings means all other props. | ||
=== PHP === | |||
Every PHP function: | |||
<pre> | |||
<?php | |||
/** | |||
* example.php | |||
* @author [Developer Name] <developer.name@seedburysquare.com> | |||
* @copyright Seedbury Square, LLC. All Rights Reserved. | |||
* | |||
* @version YYYY-MM-DD Initial Version | |||
*/ | |||
return Closure::fromCallable('example'); | |||
function example($params, $dbDriver = null) | |||
{ | |||
try { | |||
$validation = validateExampleParams($params); | |||
if (!$validation['success']) return $validation; | |||
$commit = !$dbDriver; | |||
$dbDriver = $dbDriver ?? new DatabaseDriver(COA_DATABASE, false); | |||
if ($commit) $dbDriver->commit(); | |||
$response = []; | |||
return uniformReturnObject( | |||
$response['success'], | |||
$response['success'] ? $response['result'] : null, | |||
$response['success'] ? false : $response['errorMsg'], | |||
$response['success'] ? false : $response['errorMsg'] | |||
); | |||
} catch (\Throwable $e) { | |||
error_log($e); | |||
return uniformReturnObject(false, null, $e->getMessage(), $e->getMessage()); | |||
} | |||
}; | |||
function validateExampleParams($params) | |||
{ | |||
$errors = []; | |||
if (!isset($params['sessionDetails'])) $errors[] = '<li>sessionDetails is not set</li>'; | |||
$mandatory = []; | |||
foreach ($mandatory as $prop) { | |||
if (!isset($params[$prop])) { | |||
$errors[] = "<li>Missing: $prop</li>"; | |||
} | |||
} | |||
$success = empty($errors); | |||
$errorMsg = 'example<br>Errors: <br><ol>' . implode('', $errors) . '</ol>'; | |||
return uniformReturnObject( | |||
$success, | |||
null, | |||
$success ? null : $errorMsg, | |||
$success ? null : $errorMsg | |||
); | |||
} | |||
</pre> | |||
Revision as of 18:20, 31 March 2025
Naming Convention
Constants
ROW_VALUE_DESCRIPTION_COLUMN_NAME_TABLE_NAME
COFI
- ObjectType
- - DESCRIPTION_EN_OBJECT_TYPE_CODE
- [Table]Type
- DESCRIPTION_EN_[TABLENAME]_TYPE_CODE
- i.e (FileType - MotionType - Code MOTION_FILE_TYPE_CODE)
Handling Service Response
Standards how to handle service response.
SUMAC
Every main in any app will have algo asi:
async request(params, { transition = false, showMsg = true, setStatus = undefined, fullResponse = false } = {}) {
const serverResponse = await httpRequest(params, setStatus, REQUEST_BRIDGE_SERVICE);
if (!serverResponse?.success) console.error(serverResponse?.errorMsg ?? 'Backend service NULL');
return serverResponse?.success
? Promise.resolve(fullResponse
? serverResponse
: serverResponse.response)
: Promise.reject(serverResponse);
}
Por eso in the services should be handled like this:
[service]
.then((response) => {
// Handle successful service
})
.catch((err) => {
console.log("Error: ", err);
// Handle not successful service
});
Parameters
Javascript
Function, classes and methods...
/**
* @param {AppProps} parentProps
* @param {object} settings
**/
name(parentProps, {} = {}) {
}
Where settings means all other props.
PHP
Every PHP function:
<?php
/**
* example.php
* @author [Developer Name] <developer.name@seedburysquare.com>
* @copyright Seedbury Square, LLC. All Rights Reserved.
*
* @version YYYY-MM-DD Initial Version
*/
return Closure::fromCallable('example');
function example($params, $dbDriver = null)
{
try {
$validation = validateExampleParams($params);
if (!$validation['success']) return $validation;
$commit = !$dbDriver;
$dbDriver = $dbDriver ?? new DatabaseDriver(COA_DATABASE, false);
if ($commit) $dbDriver->commit();
$response = [];
return uniformReturnObject(
$response['success'],
$response['success'] ? $response['result'] : null,
$response['success'] ? false : $response['errorMsg'],
$response['success'] ? false : $response['errorMsg']
);
} catch (\Throwable $e) {
error_log($e);
return uniformReturnObject(false, null, $e->getMessage(), $e->getMessage());
}
};
function validateExampleParams($params)
{
$errors = [];
if (!isset($params['sessionDetails'])) $errors[] = '<li>sessionDetails is not set</li>';
$mandatory = [];
foreach ($mandatory as $prop) {
if (!isset($params[$prop])) {
$errors[] = "<li>Missing: $prop</li>";
}
}
$success = empty($errors);
$errorMsg = 'example<br>Errors: <br><ol>' . implode('', $errors) . '</ol>';
return uniformReturnObject(
$success,
null,
$success ? null : $errorMsg,
$success ? null : $errorMsg
);
}