Improvements:

- Fix API-select
- Introduce OTYPE-constants
- Rename `IntroductionFactory` methods
This commit is contained in:
Philipp Holzer 2020-01-26 14:30:32 +01:00
parent 74f3a2f90c
commit b85511b00d
No known key found for this signature in database
GPG Key ID: D8365C3D36B77D90
5 changed files with 14 additions and 8 deletions

View File

@ -23,6 +23,7 @@ use Friendica\Model\Contact;
use Friendica\Model\Group; use Friendica\Model\Group;
use Friendica\Model\Item; use Friendica\Model\Item;
use Friendica\Model\Mail; use Friendica\Model\Mail;
use Friendica\Model\Notification;
use Friendica\Model\Photo; use Friendica\Model\Photo;
use Friendica\Model\Profile; use Friendica\Model\Profile;
use Friendica\Model\User; use Friendica\Model\User;
@ -5906,7 +5907,7 @@ function api_friendica_notification($type)
throw new BadRequestException("Invalid argument count"); throw new BadRequestException("Invalid argument count");
} }
$notifications = DI::notification()->select([], ['order' => ['seen' => 'ASC', 'date' => 'DESC'], 'limit' => 50]); $notifications = DI::notification()->select(['uid' => api_user()], ['order' => ['seen' => 'ASC', 'date' => 'DESC'], 'limit' => 50]);
if ($type == "xml") { if ($type == "xml") {
$xmlnotes = false; $xmlnotes = false;
@ -5957,8 +5958,7 @@ function api_friendica_notification_seen($type)
$notification = DI::notification()->getByID($id); $notification = DI::notification()->getByID($id);
$notification->setSeen(); $notification->setSeen();
if ($notification->otype == 'item') { if ($notification->otype === Notification::OTYPE_ITEM) {
// would be really better with an ItemsManager and $im->getByID() :-P
$item = Item::selectFirstForUser(api_user(), [], ['id' => $notification->iid, 'uid' => api_user()]); $item = Item::selectFirstForUser(api_user(), [], ['id' => $notification->iid, 'uid' => api_user()]);
if (DBA::isResult($item)) { if (DBA::isResult($item)) {
// we found the item, return it to the user // we found the item, return it to the user

View File

@ -12,6 +12,7 @@ use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Item; use Friendica\Model\Item;
use Friendica\Model\ItemContent; use Friendica\Model\ItemContent;
use Friendica\Model\Notification;
use Friendica\Model\User; use Friendica\Model\User;
use Friendica\Model\UserItem; use Friendica\Model\UserItem;
use Friendica\Protocol\Activity; use Friendica\Protocol\Activity;
@ -160,7 +161,7 @@ function notification($params)
// if it's a post figure out who's post it is. // if it's a post figure out who's post it is.
$item = null; $item = null;
if ($params['otype'] === 'item' && $parent_id) { if ($params['otype'] === Notification::OTYPE_ITEM && $parent_id) {
$item = Item::selectFirstForUser($params['uid'], Item::ITEM_FIELDLIST, ['id' => $parent_id, 'deleted' => false]); $item = Item::selectFirstForUser($params['uid'], Item::ITEM_FIELDLIST, ['id' => $parent_id, 'deleted' => false]);
} }

View File

@ -63,7 +63,7 @@ class IntroductionFactory extends BaseFactory
* *
* @return Introduction[] * @return Introduction[]
*/ */
public function getIntroList(bool $all = false, int $start = 0, int $limit = BaseNotifications::DEFAULT_PAGE_LIMIT, int $id = 0) public function getList(bool $all = false, int $start = 0, int $limit = BaseNotifications::DEFAULT_PAGE_LIMIT, int $id = 0)
{ {
$sql_extra = ""; $sql_extra = "";
@ -128,7 +128,7 @@ class IntroductionFactory extends BaseFactory
// Normal connection requests // Normal connection requests
} else { } else {
$notification = $this->getMissingIntroData($notification); $notification = $this->getMissingData($notification);
if (empty($notification['url'])) { if (empty($notification['url'])) {
continue; continue;
@ -182,7 +182,7 @@ class IntroductionFactory extends BaseFactory
* *
* @throws InternalServerErrorException * @throws InternalServerErrorException
*/ */
private function getMissingIntroData(array $intro) private function getMissingData(array $intro)
{ {
// If the network and the addr isn't available from the gcontact // If the network and the addr isn't available from the gcontact
// table entry, take the one of the contact table entry // table entry, take the one of the contact table entry

View File

@ -44,6 +44,11 @@ use Psr\Log\LoggerInterface;
*/ */
class Notification extends BaseModel class Notification extends BaseModel
{ {
const OTYPE_ITEM = 'item';
const OTYPE_INTRO = 'intro';
const OTYPE_MAIL = 'mail';
const OTYPE_PERSON = 'person';
/** @var \Friendica\Repository\Notification */ /** @var \Friendica\Repository\Notification */
private $repo; private $repo;

View File

@ -26,7 +26,7 @@ class Introductions extends BaseNotifications
$notifications = [ $notifications = [
'ident' => 'introductions', 'ident' => 'introductions',
'notifications' => DI::factNotIntro()->getIntroList($all, self::$firstItemNum, self::ITEMS_PER_PAGE, $id), 'notifications' => DI::factNotIntro()->getList($all, self::$firstItemNum, self::ITEMS_PER_PAGE, $id),
]; ];
return [ return [