Replace BaseEntity with BaseDataTransferObject class for API representation classes
This commit is contained in:
parent
3e257d4266
commit
0fc5f26ff7
18 changed files with 53 additions and 49 deletions
|
@ -22,20 +22,20 @@
|
|||
namespace Friendica;
|
||||
|
||||
/**
|
||||
* The API entity classes are meant as data transfer objects. As such, their member should be protected.
|
||||
* These data transfer object classes are meant for API representations. As such, their members should be protected.
|
||||
* Then the JsonSerializable interface ensures the protected members will be included in a JSON encode situation.
|
||||
*
|
||||
* Constructors are supposed to take as arguments the Friendica dependencies/model/collection/data it needs to
|
||||
* populate the class members.
|
||||
*/
|
||||
abstract class BaseEntity implements \JsonSerializable
|
||||
abstract class BaseDataTransferObject implements \JsonSerializable
|
||||
{
|
||||
/**
|
||||
* Returns the current entity as an json array
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function jsonSerialize()
|
||||
public function jsonSerialize(): array
|
||||
{
|
||||
return $this->toArray();
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ abstract class BaseEntity implements \JsonSerializable
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
public function toArray()
|
||||
public function toArray(): array
|
||||
{
|
||||
return get_object_vars($this);
|
||||
}
|
|
@ -31,7 +31,7 @@ use Psr\Log\LoggerInterface;
|
|||
*
|
||||
* @property int id
|
||||
*/
|
||||
abstract class BaseModel extends BaseEntity
|
||||
abstract class BaseModel extends BaseDataTransferObject
|
||||
{
|
||||
/** @var Database */
|
||||
protected $dba;
|
||||
|
@ -67,7 +67,7 @@ abstract class BaseModel extends BaseEntity
|
|||
$this->originalData = $data;
|
||||
}
|
||||
|
||||
public function getOriginalData()
|
||||
public function getOriginalData(): array
|
||||
{
|
||||
return $this->originalData;
|
||||
}
|
||||
|
@ -84,7 +84,7 @@ abstract class BaseModel extends BaseEntity
|
|||
* @param array $data
|
||||
* @return BaseModel
|
||||
*/
|
||||
public static function createFromPrototype(BaseModel $prototype, array $data)
|
||||
public static function createFromPrototype(BaseModel $prototype, array $data): BaseModel
|
||||
{
|
||||
$model = clone $prototype;
|
||||
$model->data = $data;
|
||||
|
@ -100,7 +100,7 @@ abstract class BaseModel extends BaseEntity
|
|||
* @param $name
|
||||
* @return bool
|
||||
*/
|
||||
public function __isset($name)
|
||||
public function __isset($name): bool
|
||||
{
|
||||
return in_array($name, array_merge(array_keys($this->data), array_keys(get_object_vars($this))));
|
||||
}
|
||||
|
@ -126,15 +126,19 @@ abstract class BaseModel extends BaseEntity
|
|||
}
|
||||
|
||||
/**
|
||||
* * Magic setter. This allows to set model fields with the following syntax:
|
||||
* - $model->field = $value (outside of class)
|
||||
* - $this->field = $value (inside of class)
|
||||
*
|
||||
* @param string $name
|
||||
* @param mixed $value
|
||||
* @param mixed $value
|
||||
*/
|
||||
public function __set($name, $value)
|
||||
public function __set(string $name, $value)
|
||||
{
|
||||
$this->data[$name] = $value;
|
||||
}
|
||||
|
||||
public function toArray()
|
||||
public function toArray(): array
|
||||
{
|
||||
return $this->data;
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
namespace Friendica\Object\Api\Friendica;
|
||||
|
||||
use Friendica\BaseEntity;
|
||||
use Friendica\BaseDataTransferObject;
|
||||
use Friendica\Content\Text\BBCode;
|
||||
use Friendica\Content\Text\HTML;
|
||||
use Friendica\Model\Notify;
|
||||
|
@ -33,7 +33,7 @@ use Friendica\Util\Temporal;
|
|||
*
|
||||
* @see https://github.com/friendica/friendica/blob/develop/doc/API-Entities.md#notification
|
||||
*/
|
||||
class Notification extends BaseEntity
|
||||
class Notification extends BaseDataTransferObject
|
||||
{
|
||||
/** @var integer */
|
||||
protected $id;
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
namespace Friendica\Object\Api\Mastodon;
|
||||
|
||||
use Friendica\App\BaseURL;
|
||||
use Friendica\BaseEntity;
|
||||
use Friendica\BaseDataTransferObject;
|
||||
use Friendica\Collection\Api\Mastodon\Fields;
|
||||
use Friendica\Content\Text\BBCode;
|
||||
use Friendica\Database\DBA;
|
||||
|
@ -34,7 +34,7 @@ use Friendica\Util\DateTimeFormat;
|
|||
*
|
||||
* @see https://docs.joinmastodon.org/entities/account
|
||||
*/
|
||||
class Account extends BaseEntity
|
||||
class Account extends BaseDataTransferObject
|
||||
{
|
||||
/** @var string */
|
||||
protected $id;
|
||||
|
@ -138,7 +138,7 @@ class Account extends BaseEntity
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
public function toArray()
|
||||
public function toArray(): array
|
||||
{
|
||||
$account = parent::toArray();
|
||||
|
||||
|
|
|
@ -21,14 +21,14 @@
|
|||
|
||||
namespace Friendica\Object\Api\Mastodon;
|
||||
|
||||
use Friendica\BaseEntity;
|
||||
use Friendica\BaseDataTransferObject;
|
||||
|
||||
/**
|
||||
* Class Activity
|
||||
*
|
||||
* @see https://docs.joinmastodon.org/entities/activity
|
||||
*/
|
||||
class Activity extends BaseEntity
|
||||
class Activity extends BaseDataTransferObject
|
||||
{
|
||||
/** @var string (UNIX Timestamp) */
|
||||
protected $week;
|
||||
|
|
|
@ -21,14 +21,14 @@
|
|||
|
||||
namespace Friendica\Object\Api\Mastodon;
|
||||
|
||||
use Friendica\BaseEntity;
|
||||
use Friendica\BaseDataTransferObject;
|
||||
|
||||
/**
|
||||
* Class Application
|
||||
*
|
||||
* @see https://docs.joinmastodon.org/entities/application
|
||||
*/
|
||||
class Application extends BaseEntity
|
||||
class Application extends BaseDataTransferObject
|
||||
{
|
||||
/** @var string */
|
||||
protected $name;
|
||||
|
|
|
@ -21,14 +21,14 @@
|
|||
|
||||
namespace Friendica\Object\Api\Mastodon;
|
||||
|
||||
use Friendica\BaseEntity;
|
||||
use Friendica\BaseDataTransferObject;
|
||||
|
||||
/**
|
||||
* Class Attachment
|
||||
*
|
||||
* @see https://docs.joinmastodon.org/entities/attachment
|
||||
*/
|
||||
class Attachment extends BaseEntity
|
||||
class Attachment extends BaseDataTransferObject
|
||||
{
|
||||
/** @var string */
|
||||
protected $id;
|
||||
|
@ -67,7 +67,7 @@ class Attachment extends BaseEntity
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
public function toArray()
|
||||
public function toArray(): array
|
||||
{
|
||||
$attachment = parent::toArray();
|
||||
|
||||
|
|
|
@ -21,14 +21,14 @@
|
|||
|
||||
namespace Friendica\Object\Api\Mastodon;
|
||||
|
||||
use Friendica\BaseEntity;
|
||||
use Friendica\BaseDataTransferObject;
|
||||
|
||||
/**
|
||||
* Class Card
|
||||
*
|
||||
* @see https://docs.joinmastodon.org/entities/card
|
||||
*/
|
||||
class Card extends BaseEntity
|
||||
class Card extends BaseDataTransferObject
|
||||
{
|
||||
/** @var string */
|
||||
protected $url;
|
||||
|
@ -67,10 +67,10 @@ class Card extends BaseEntity
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
public function toArray()
|
||||
public function toArray(): array
|
||||
{
|
||||
if (empty($this->url)) {
|
||||
return null;
|
||||
return [];
|
||||
}
|
||||
|
||||
return parent::toArray();
|
||||
|
|
|
@ -21,14 +21,14 @@
|
|||
|
||||
namespace Friendica\Object\Api\Mastodon;
|
||||
|
||||
use Friendica\BaseEntity;
|
||||
use Friendica\BaseDataTransferObject;
|
||||
|
||||
/**
|
||||
* Class Emoji
|
||||
*
|
||||
* @see https://docs.joinmastodon.org/entities/emoji/
|
||||
*/
|
||||
class Emoji extends BaseEntity
|
||||
class Emoji extends BaseDataTransferObject
|
||||
{
|
||||
//Required attributes
|
||||
/** @var string */
|
||||
|
|
|
@ -21,14 +21,14 @@
|
|||
|
||||
namespace Friendica\Object\Api\Mastodon;
|
||||
|
||||
use Friendica\BaseEntity;
|
||||
use Friendica\BaseDataTransferObject;
|
||||
|
||||
/**
|
||||
* Class Error
|
||||
*
|
||||
* @see https://docs.joinmastodon.org/entities/error
|
||||
*/
|
||||
class Error extends BaseEntity
|
||||
class Error extends BaseDataTransferObject
|
||||
{
|
||||
/** @var string */
|
||||
protected $error;
|
||||
|
@ -53,7 +53,7 @@ class Error extends BaseEntity
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
public function toArray()
|
||||
public function toArray(): array
|
||||
{
|
||||
$error = parent::toArray();
|
||||
|
||||
|
|
|
@ -21,14 +21,14 @@
|
|||
|
||||
namespace Friendica\Object\Api\Mastodon;
|
||||
|
||||
use Friendica\BaseEntity;
|
||||
use Friendica\BaseDataTransferObject;
|
||||
|
||||
/**
|
||||
* Class Field
|
||||
*
|
||||
* @see https://docs.joinmastodon.org/entities/field/
|
||||
*/
|
||||
class Field extends BaseEntity
|
||||
class Field extends BaseDataTransferObject
|
||||
{
|
||||
/** @var string */
|
||||
protected $name;
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
namespace Friendica\Object\Api\Mastodon;
|
||||
|
||||
use Friendica\BaseEntity;
|
||||
use Friendica\BaseDataTransferObject;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\DI;
|
||||
use Friendica\Model\User;
|
||||
|
@ -32,7 +32,7 @@ use Friendica\Module\Register;
|
|||
*
|
||||
* @see https://docs.joinmastodon.org/api/entities/#instance
|
||||
*/
|
||||
class Instance extends BaseEntity
|
||||
class Instance extends BaseDataTransferObject
|
||||
{
|
||||
/** @var string (URL) */
|
||||
protected $uri;
|
||||
|
|
|
@ -22,14 +22,14 @@
|
|||
namespace Friendica\Object\Api\Mastodon;
|
||||
|
||||
use Friendica\App\BaseURL;
|
||||
use Friendica\BaseEntity;
|
||||
use Friendica\BaseDataTransferObject;
|
||||
|
||||
/**
|
||||
* Class Mention
|
||||
*
|
||||
* @see https://docs.joinmastodon.org/entities/mention
|
||||
*/
|
||||
class Mention extends BaseEntity
|
||||
class Mention extends BaseDataTransferObject
|
||||
{
|
||||
/** @var string */
|
||||
protected $id;
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
namespace Friendica\Object\Api\Mastodon;
|
||||
|
||||
use Friendica\BaseEntity;
|
||||
use Friendica\BaseDataTransferObject;
|
||||
use Friendica\Model\Contact;
|
||||
use Friendica\Util\Network;
|
||||
|
||||
|
@ -30,7 +30,7 @@ use Friendica\Util\Network;
|
|||
*
|
||||
* @see https://docs.joinmastodon.org/api/entities/#relationship
|
||||
*/
|
||||
class Relationship extends BaseEntity
|
||||
class Relationship extends BaseDataTransferObject
|
||||
{
|
||||
/** @var int */
|
||||
protected $id;
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
namespace Friendica\Object\Api\Mastodon;
|
||||
|
||||
use Friendica\BaseEntity;
|
||||
use Friendica\BaseDataTransferObject;
|
||||
use Friendica\Core\Protocol;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\DI;
|
||||
|
@ -31,7 +31,7 @@ use Friendica\DI;
|
|||
*
|
||||
* @see https://docs.joinmastodon.org/api/entities/#stats
|
||||
*/
|
||||
class Stats extends BaseEntity
|
||||
class Stats extends BaseDataTransferObject
|
||||
{
|
||||
/** @var int */
|
||||
protected $user_count = 0;
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
namespace Friendica\Object\Api\Mastodon;
|
||||
|
||||
use Friendica\BaseEntity;
|
||||
use Friendica\BaseDataTransferObject;
|
||||
use Friendica\Content\Text\BBCode;
|
||||
use Friendica\Object\Api\Mastodon\Status\Counts;
|
||||
use Friendica\Object\Api\Mastodon\Status\UserAttributes;
|
||||
|
@ -32,7 +32,7 @@ use Friendica\Util\DateTimeFormat;
|
|||
*
|
||||
* @see https://docs.joinmastodon.org/entities/status
|
||||
*/
|
||||
class Status extends BaseEntity
|
||||
class Status extends BaseDataTransferObject
|
||||
{
|
||||
/** @var string */
|
||||
protected $id;
|
||||
|
@ -143,7 +143,7 @@ class Status extends BaseEntity
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
public function toArray()
|
||||
public function toArray(): array
|
||||
{
|
||||
$status = parent::toArray();
|
||||
|
||||
|
|
|
@ -22,14 +22,14 @@
|
|||
namespace Friendica\Object\Api\Mastodon;
|
||||
|
||||
use Friendica\App\BaseURL;
|
||||
use Friendica\BaseEntity;
|
||||
use Friendica\BaseDataTransferObject;
|
||||
|
||||
/**
|
||||
* Class Tag
|
||||
*
|
||||
* @see https://docs.joinmastodon.org/entities/tag
|
||||
*/
|
||||
class Tag extends BaseEntity
|
||||
class Tag extends BaseDataTransferObject
|
||||
{
|
||||
/** @var string */
|
||||
protected $name;
|
||||
|
|
|
@ -21,14 +21,14 @@
|
|||
|
||||
namespace Friendica\Object\Api\Twitter;
|
||||
|
||||
use Friendica\BaseEntity;
|
||||
use Friendica\BaseDataTransferObject;
|
||||
use Friendica\Content\ContactSelector;
|
||||
use Friendica\Content\Text\BBCode;
|
||||
|
||||
/**
|
||||
* @see https://developer.twitter.com/en/docs/tweets/data-dictionary/overview/user-object
|
||||
*/
|
||||
class User extends BaseEntity
|
||||
class User extends BaseDataTransferObject
|
||||
{
|
||||
/** @var int */
|
||||
protected $id;
|
||||
|
|
Loading…
Reference in a new issue