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\Item;
use Friendica\Model\Mail;
use Friendica\Model\Notification;
use Friendica\Model\Photo;
use Friendica\Model\Profile;
use Friendica\Model\User;
@ -5906,7 +5907,7 @@ function api_friendica_notification($type)
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") {
$xmlnotes = false;
@ -5957,8 +5958,7 @@ function api_friendica_notification_seen($type)
$notification = DI::notification()->getByID($id);
$notification->setSeen();
if ($notification->otype == 'item') {
// would be really better with an ItemsManager and $im->getByID() :-P
if ($notification->otype === Notification::OTYPE_ITEM) {
$item = Item::selectFirstForUser(api_user(), [], ['id' => $notification->iid, 'uid' => api_user()]);
if (DBA::isResult($item)) {
// we found the item, return it to the user

View file

@ -12,6 +12,7 @@ use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Model\Item;
use Friendica\Model\ItemContent;
use Friendica\Model\Notification;
use Friendica\Model\User;
use Friendica\Model\UserItem;
use Friendica\Protocol\Activity;
@ -160,7 +161,7 @@ function notification($params)
// if it's a post figure out who's post it is.
$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]);
}

View file

@ -63,7 +63,7 @@ class IntroductionFactory extends BaseFactory
*
* @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 = "";
@ -128,7 +128,7 @@ class IntroductionFactory extends BaseFactory
// Normal connection requests
} else {
$notification = $this->getMissingIntroData($notification);
$notification = $this->getMissingData($notification);
if (empty($notification['url'])) {
continue;
@ -182,7 +182,7 @@ class IntroductionFactory extends BaseFactory
*
* @throws InternalServerErrorException
*/
private function getMissingIntroData(array $intro)
private function getMissingData(array $intro)
{
// If the network and the addr isn't available from the gcontact
// table entry, take the one of the contact table entry

View file

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

View file

@ -26,7 +26,7 @@ class Introductions extends BaseNotifications
$notifications = [
'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 [