Programming Standards

From Seedbury Square

Naming Convention

Constants

ROW_VALUE_DESCRIPTION_COLUMN_NAME_TABLE_NAME

CFI

  • 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. 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([DATABASE_CONNECTION_CONSTANT], 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 <a href="https://wiki.seedburysquare.com/index.php/Helpers">uniformReturnObject</a>(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
    );
}