Skip to content

Commit

Permalink
Add option to stringify SecretObject
Browse files Browse the repository at this point in the history
  • Loading branch information
kamshory committed Dec 15, 2024
1 parent e10a0cd commit 7892fd0
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 16 deletions.
4 changes: 1 addition & 3 deletions src/Database/PicoDatabaseStructure.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@ class PicoDatabaseStructure
const KEY_NOT_NULL = "notnull";
const KEY_NULLABLE = "nullable";
const KEY_PRIMARY = "primary";
const DATABASE_TYPE_MYSQL = "mysql";
const DATABASE_TYPE_MARIADB = "mariadb";

/**
* The associated MagicObject instance.
Expand Down Expand Up @@ -86,7 +84,7 @@ private function showCreateTableByType($databaseType, $info)
$createStrArr = array();
$pk = array();

if ($databaseType == self::DATABASE_TYPE_MYSQL) {
if ($databaseType == PicoDatabaseType::DATABASE_TYPE_MYSQL || $databaseType == PicoDatabaseType::DATABASE_TYPE_MARIADB) {
foreach ($info->getColumns() as $column) {
$createStrArr[] = $column[self::KEY_NAME] . " " . $column[self::KEY_TYPE] . " " . $this->nullable($column[self::KEY_NULLABLE]);
}
Expand Down
2 changes: 1 addition & 1 deletion src/Database/PicoTableInfo.php
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ public function __toString()
$stdClass->notNullColumns = $this->notNullColumns;
$stdClass->noCache = $this->noCache;
$stdClass->package = $this->package;
return json_encode($stdClass, JSON_PRETTY_PRINT);
return json_encode($stdClass);
}

/**
Expand Down
6 changes: 3 additions & 3 deletions src/Request/PicoRequestBase.php
Original file line number Diff line number Diff line change
Expand Up @@ -793,11 +793,11 @@ public function isEmpty()
public function __toString()
{
$obj = clone $this;
$json_flag = 0;
$jsonFlag = 0;
if($this->isPretty())
{
$json_flag |= JSON_PRETTY_PRINT;
$jsonFlag |= JSON_PRETTY_PRINT;
}
return json_encode($obj->value($this->isSnake()), $json_flag);
return json_encode($obj->value($this->isSnake()), $jsonFlag);
}
}
46 changes: 37 additions & 9 deletions src/SecretObject.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ class SecretObject extends stdClass // NOSONAR
const JSON = 'JSON';
const YAML = 'Yaml';
const PROPERTY_NAMING_STRATEGY = "property-naming-strategy";
const PROPERTY_NAMING_STRATEGY_CAMEL = "propertyNamingStrategy";
const KEY_NAME = "name";
const KEY_VALUE = "value";
const KEY_PROPERTY_TYPE = "propertyType";
Expand All @@ -53,6 +54,9 @@ class SecretObject extends stdClass // NOSONAR
const ANNOTATION_ENCRYPT_OUT = "EncryptOut";
const ANNOTATION_DECRYPT_OUT = "DecryptOut";

const SNAKE_CASE = 'SNAKE_CASE';
const UPPER_CAMEL_CASE = 'UPPER_CAMEL_CASE';

/**
* List of properties to be encrypted when calling SET.
*
Expand Down Expand Up @@ -1041,9 +1045,12 @@ public function valueArrayUpperCamel()
protected function _snakeJson()
{
return isset($this->_classParams[self::JSON])
&& isset($this->_classParams[self::JSON][self::PROPERTY_NAMING_STRATEGY])
&& strcasecmp($this->_classParams[self::JSON][self::PROPERTY_NAMING_STRATEGY], 'SNAKE_CASE') == 0
;
&& (
isset($this->_classParams[self::JSON][self::PROPERTY_NAMING_STRATEGY]) &&
strcasecmp($this->_classParams[self::JSON][self::PROPERTY_NAMING_STRATEGY], self::SNAKE_CASE) == 0
|| isset($this->_classParams[self::JSON][self::PROPERTY_NAMING_STRATEGY_CAMEL]) &&
strcasecmp($this->_classParams[self::JSON][self::PROPERTY_NAMING_STRATEGY_CAMEL], self::SNAKE_CASE) == 0
);
}

/**
Expand All @@ -1054,9 +1061,12 @@ protected function _snakeJson()
protected function _snakeYaml()
{
return isset($this->_classParams[self::YAML])
&& isset($this->_classParams[self::YAML][self::PROPERTY_NAMING_STRATEGY])
&& strcasecmp($this->_classParams[self::YAML][self::PROPERTY_NAMING_STRATEGY], 'SNAKE_CASE') == 0
;
&& (
isset($this->_classParams[self::YAML][self::PROPERTY_NAMING_STRATEGY]) &&
strcasecmp($this->_classParams[self::YAML][self::PROPERTY_NAMING_STRATEGY], self::SNAKE_CASE) == 0
|| isset($this->_classParams[self::YAML][self::PROPERTY_NAMING_STRATEGY_CAMEL]) &&
strcasecmp($this->_classParams[self::YAML][self::PROPERTY_NAMING_STRATEGY_CAMEL], self::SNAKE_CASE) == 0
);
}

/**
Expand All @@ -1067,8 +1077,24 @@ protected function _snakeYaml()
protected function isUpperCamel()
{
return isset($this->_classParams[self::JSON])
&& isset($this->_classParams[self::JSON][self::PROPERTY_NAMING_STRATEGY])
&& strcasecmp($this->_classParams[self::JSON][self::PROPERTY_NAMING_STRATEGY], 'UPPER_CAMEL_CASE') == 0
&& (
isset($this->_classParams[self::JSON][self::PROPERTY_NAMING_STRATEGY]) &&
strcasecmp($this->_classParams[self::JSON][self::PROPERTY_NAMING_STRATEGY], self::UPPER_CAMEL_CASE) == 0
|| isset($this->_classParams[self::JSON][self::PROPERTY_NAMING_STRATEGY_CAMEL]) &&
strcasecmp($this->_classParams[self::JSON][self::PROPERTY_NAMING_STRATEGY_CAMEL], self::UPPER_CAMEL_CASE) == 0
);
}

/**
* Check if the JSON output should be prettified
*
* @return bool True if JSON output is set to be prettified; otherwise, false
*/
protected function _pretty()
{
return isset($this->_classParams[self::JSON])
&& isset($this->_classParams[self::JSON]['prettify'])
&& strcasecmp($this->_classParams[self::JSON]['prettify'], 'true') == 0
;
}

Expand Down Expand Up @@ -1215,6 +1241,8 @@ public function dumpYaml($inline = null, $indent = 4, $flags = 0)
public function __toString()
{
$obj = clone $this;
return json_encode($obj->value($this->_snakeJson()), JSON_PRETTY_PRINT);
$pretty = $this->_pretty();
$flag = $pretty ? JSON_PRETTY_PRINT : 0;
return json_encode($obj->value($this->_snakeJson()), $flag);
}
}

0 comments on commit 7892fd0

Please sign in to comment.