Merge pull request #32 from nextcloud-gmbh/add-source

adding source to object
pull/33/head
Maxence Lange 2018-11-15 15:42:17 -01:00 zatwierdzone przez GitHub
commit 595e734a81
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
11 zmienionych plików z 89 dodań i 44 usunięć

Wyświetl plik

@ -207,6 +207,13 @@
<length>127</length>
</field>
<field>
<name>source</name>
<type>text</type>
<length>3000</length>
<notnull>true</notnull>
</field>
<field>
<name>creation</name>
<type>timestamp</type>
@ -236,8 +243,8 @@
<field>
<name>local</name>
<type>text</type>
<length>7</length>
<type>boolean</type>
<default>false</default>
<notnull>true</notnull>
</field>
@ -318,6 +325,13 @@
<notnull>true</notnull>
</field>
<field>
<name>source</name>
<type>text</type>
<length>3000</length>
<notnull>true</notnull>
</field>
<field>
<name>creation</name>
<type>timestamp</type>

Wyświetl plik

@ -5,7 +5,7 @@
<name>Social</name>
<summary>🎉 Nextcloud becomes part of the federated social networks!</summary>
<description><![CDATA[test]]></description>
<version>0.0.29</version>
<version>0.0.32</version>
<licence>agpl</licence>
<author mail="maxence@artificial-owl.com">Maxence Lange</author>
<author mail="jus@bitgrid.net">Julius Härtl</author>

Wyświetl plik

@ -61,35 +61,31 @@ class CacheActorsRequest extends CacheActorsRequestBuilder {
* @param bool $local
*
* @return int
* @throws \Exception
*/
public function save(Person $actor, bool $local = false): int {
try {
$qb = $this->getCacheActorsInsertSql();
$qb->setValue('id', $qb->createNamedParameter($actor->getId()))
->setValue('account', $qb->createNamedParameter($actor->getAccount()))
->setValue('local', $qb->createNamedParameter(($local) ? '1' : '0'))
->setValue('following', $qb->createNamedParameter($actor->getFollowing()))
->setValue('followers', $qb->createNamedParameter($actor->getFollowers()))
->setValue('inbox', $qb->createNamedParameter($actor->getInbox()))
->setValue('shared_inbox', $qb->createNamedParameter($actor->getSharedInbox()))
->setValue('outbox', $qb->createNamedParameter($actor->getOutbox()))
->setValue('featured', $qb->createNamedParameter($actor->getFeatured()))
->setValue('url', $qb->createNamedParameter($actor->getUrl()))
->setValue(
'preferred_username', $qb->createNamedParameter($actor->getPreferredUsername())
)
->setValue('name', $qb->createNamedParameter($actor->getName()))
->setValue('summary', $qb->createNamedParameter($actor->getSummary()))
->setValue('public_key', $qb->createNamedParameter($actor->getPublicKey()));
$qb = $this->getCacheActorsInsertSql();
$qb->setValue('id', $qb->createNamedParameter($actor->getId()))
->setValue('account', $qb->createNamedParameter($actor->getAccount()))
->setValue('local', $qb->createNamedParameter(($local) ? '1' : '0'))
->setValue('following', $qb->createNamedParameter($actor->getFollowing()))
->setValue('followers', $qb->createNamedParameter($actor->getFollowers()))
->setValue('inbox', $qb->createNamedParameter($actor->getInbox()))
->setValue('shared_inbox', $qb->createNamedParameter($actor->getSharedInbox()))
->setValue('outbox', $qb->createNamedParameter($actor->getOutbox()))
->setValue('featured', $qb->createNamedParameter($actor->getFeatured()))
->setValue('url', $qb->createNamedParameter($actor->getUrl()))
->setValue(
'preferred_username', $qb->createNamedParameter($actor->getPreferredUsername())
)
->setValue('name', $qb->createNamedParameter($actor->getName()))
->setValue('summary', $qb->createNamedParameter($actor->getSummary()))
->setValue('public_key', $qb->createNamedParameter($actor->getPublicKey()))
->setValue('source', $qb->createNamedParameter($actor->getSource()));
$qb->execute();
$qb->execute();
return $qb->getLastInsertId();
} catch (\Exception $e) {
throw $e;
}
return $qb->getLastInsertId();
}

Wyświetl plik

@ -80,7 +80,7 @@ class CacheActorsRequestBuilder extends CoreRequestBuilder {
'ca.id', 'ca.account', 'ca.following', 'ca.followers', 'ca.inbox',
'ca.shared_inbox', 'ca.outbox', 'ca.featured', 'ca.url',
'ca.preferred_username', 'ca.name', 'ca.summary',
'ca.public_key', 'ca.local', 'ca.creation'
'ca.public_key', 'ca.local', 'ca.source', 'ca.creation'
)
->from(self::TABLE_CACHE_ACTORS, 'ca');

Wyświetl plik

@ -237,7 +237,8 @@ class CoreRequestBuilder {
// TODO: Pagination should use published date, once we can properly query the db for that
$qb->andWhere(
$expr->lt(
$this->defaultSelectAlias . '.creation', $qb->createNamedParameter($dt, IQueryBuilder::PARAM_DATE),
$this->defaultSelectAlias . '.creation',
$qb->createNamedParameter($dt, IQueryBuilder::PARAM_DATE),
IQueryBuilder::PARAM_DATE
)
);
@ -248,7 +249,7 @@ class CoreRequestBuilder {
/**
* @param IQueryBuilder $qb
* @param string $field"
* @param string $field
* @param string|integer|array $values
*/
private function limitToDBField(IQueryBuilder &$qb, $field, $values) {
@ -309,6 +310,7 @@ class CoreRequestBuilder {
->selectAlias('ca.name', 'cacheactor_name')
->selectAlias('ca.summary', 'cacheactor_summary')
->selectAlias('ca.public_key', 'cacheactor_public_key')
->selectAlias('ca.source', 'cacheactor_source')
->selectAlias('ca.creation', 'cacheactor_creation')
->leftJoin(
$this->defaultSelectAlias, CoreRequestBuilder::TABLE_CACHE_ACTORS, 'ca',

Wyświetl plik

@ -63,7 +63,6 @@ class NotesRequest extends NotesRequestBuilder {
* @throws \Exception
*/
public function save(Note $note): int {
try {
$qb = $this->getNotesInsertSql();
$qb->setValue('id', $qb->createNamedParameter($note->getId()))
@ -88,7 +87,11 @@ class NotesRequest extends NotesRequestBuilder {
->setValue('published', $qb->createNamedParameter($note->getPublished()))
->setValue('attributed_to', $qb->createNamedParameter($note->getAttributedTo()))
->setValue('in_reply_to', $qb->createNamedParameter($note->getInReplyTo()))
->setValue('creation', $qb->createNamedParameter(new \DateTime('now'), IQueryBuilder::PARAM_DATE));
->setValue('source', $qb->createNamedParameter($note->getSource()))
->setValue(
'creation',
$qb->createNamedParameter(new \DateTime('now'), IQueryBuilder::PARAM_DATE)
);
$qb->execute();
return $qb->getLastInsertId();

Wyświetl plik

@ -78,7 +78,7 @@ class NotesRequestBuilder extends CoreRequestBuilder {
/** @noinspection PhpMethodParametersCountMismatchInspection */
$qb->select(
'sn.id', 'sn.to', 'sn.to_array', 'sn.cc', 'sn.bcc', 'sn.content', 'sn.summary',
'sn.published', 'sn.attributed_to', 'sn.in_reply_to', 'sn.creation'
'sn.published', 'sn.attributed_to', 'sn.in_reply_to', 'sn.source', 'sn.creation'
)
->from(self::TABLE_SERVER_NOTES, 'sn');

Wyświetl plik

@ -112,6 +112,10 @@ abstract class ACore implements JsonSerializable {
/** @var bool */
private $completeDetails = false;
/** @var string */
private $source = '';
/**
* Core constructor.
*
@ -155,7 +159,9 @@ abstract class ACore implements JsonSerializable {
* @return ACore
*/
public function setType(string $type): ACore {
$this->type = $type;
if ($type !== '') {
$this->type = $type;
}
return $this;
}
@ -706,11 +712,31 @@ abstract class ACore implements JsonSerializable {
}
/**
* @return string
*/
public function getSource(): string {
return $this->source;
}
/**
* @param string $source
*
* @return ACore
*/
public function setSource(string $source): ACore {
$this->source = $source;
return $this;
}
/**
* @param array $data
*/
public function import(array $data) {
$this->setId($this->get('id', $data, ''));
$this->setType($this->get('type', $data, ''));
$this->setUrl($this->get('url', $data, ''));
$this->setSummary($this->get('summary', $data, ''));
$this->setToArray($this->getArray('to', $data, []));
@ -718,6 +744,7 @@ abstract class ACore implements JsonSerializable {
$this->setPublished($this->get('published', $data, ''));
$this->setActorId($this->get('actor', $data, ''));
$this->setObjectId($this->get('object', $data, ''));
$this->setSource($this->get('source', $data, ''));
}
@ -766,6 +793,10 @@ abstract class ACore implements JsonSerializable {
$this->addEntry('object', $this->getObjectId());
}
if ($this->isCompleteDetails()) {
$this->addEntry('source', $this->getSource());
}
return $this->getEntries();
}

Wyświetl plik

@ -352,15 +352,11 @@ class Person extends ACore implements JsonSerializable {
*/
public function setLocal(bool $local): Person {
$this->local = $local;
return $this;
}
/**
* @param array $data
*/
@ -377,12 +373,12 @@ class Person extends ACore implements JsonSerializable {
->setFollowing($this->get('following', $data, ''))
->setSharedInbox($this->get('shared_inbox', $data, ''))
->setFeatured($this->get('featured', $data, ''))
->setLocal(($this->get('local', $data, '') === '1'))
->setLocal(($this->getInt('local', $data, 0) === 1))
->setCreation($this->getInt('creation', $data, 0));
if ($this->getPreferredUsername() === '') {
$this->setType('Invalid');
}
// if ($this->getPreferredUsername() === '') {
// $this->setType('Invalid');
// }
}
@ -411,7 +407,7 @@ class Person extends ACore implements JsonSerializable {
'owner' => $this->getId(),
'publicKeyPem' => $this->getPublicKey()
],
'local' => $this->isLocal()
'local' => $this->isLocal()
]
);
}

Wyświetl plik

@ -92,6 +92,7 @@ class PersonService implements ICoreService {
}
try {
$actor->setSource(json_encode($actor, JSON_UNESCAPED_SLASHES));
$this->save($actor, true);
} catch (Exception $e) {
}
@ -125,6 +126,7 @@ class PersonService implements ICoreService {
$object = $this->instanceService->retrieveObject($id);
$actor = new Person();
$actor->import($object);
$actor->setSource(json_encode($object, JSON_UNESCAPED_SLASHES));
$actor->setPreferredUsername($this->get('preferredUsername', $object, ''));
$actor->setPublicKey($this->get('publicKey.publicKeyPem', $object));

Wyświetl plik

@ -109,6 +109,7 @@ class ImportService {
}
$item->import($data);
$item->setSource(json_encode($data, JSON_UNESCAPED_SLASHES));
try {
$object = $this->createItem($this->getArray('object', $data, []), $item);