Explorar o código

Fix mastoapi notification type casting to include comment and share (mention and reblog) notifications

Daniel Supernault %!s(int64=2) %!d(string=hai) anos
pai
achega
eba84530aa
Modificáronse 1 ficheiros con 19 adicións e 2 borrados
  1. 19 2
      app/Services/NotificationService.php

+ 19 - 2
app/Services/NotificationService.php

@@ -105,7 +105,7 @@ class NotificationService {
 
 		$res = collect([]);
 		foreach($ids as $id) {
-			$n = self::getNotification($id);
+			$n = self::rewriteMastodonTypes(self::getNotification($id));
 			if($n != null && in_array($n['type'], self::MASTODON_TYPES)) {
 				$n['account'] = AccountService::getMastodon($n['account']['id']);
 
@@ -133,7 +133,7 @@ class NotificationService {
 
 		$res = collect([]);
 		foreach($ids as $id) {
-			$n = self::getNotification($id);
+			$n = self::rewriteMastodonTypes(self::getNotification($id));
 			if($n != null && in_array($n['type'], self::MASTODON_TYPES)) {
 				$n['account'] = AccountService::getMastodon($n['account']['id']);
 
@@ -175,6 +175,23 @@ class NotificationService {
 		]));
 	}
 
+	public static function rewriteMastodonTypes($notification)
+	{
+		if(!$notification || !isset($notification['type'])) {
+			return $notification;
+		}
+
+		if($notification['type'] === 'comment') {
+			$notification['type'] = 'mention';
+		}
+
+		if($notification['type'] === 'share') {
+			$notification['type'] = 'reblog';
+		}
+
+		return $notification;
+	}
+
 	public static function set($id, $val)
 	{
 		return Redis::zadd(self::CACHE_KEY . $id, $val, $val);