消息相关
This commit is contained in:
parent
b27ddbbe7d
commit
12024e65d8
32
app/Http/Controllers/Api/NotificationsController.php
Normal file
32
app/Http/Controllers/Api/NotificationsController.php
Normal file
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Transformers\NotificationTransformer;
|
||||
|
||||
class NotificationsController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$user = $this->user();
|
||||
$notifications = $user->notifications()->paginate(20);
|
||||
return $this->response->paginator($notifications, new NotificationTransformer());
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
* @throws \ErrorException
|
||||
*/
|
||||
public function stats()
|
||||
{
|
||||
return $this->response->array([
|
||||
'unread_count' => $this->user()->notification_count,
|
||||
]);
|
||||
}
|
||||
|
||||
public function read()
|
||||
{
|
||||
$this->user()->markAsRead();
|
||||
return $this->response->noContent();
|
||||
}
|
||||
}
|
29
app/Transformers/NotificationTransformer.php
Normal file
29
app/Transformers/NotificationTransformer.php
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: xing
|
||||
* Date: 2018/6/11
|
||||
* Time: 22:00
|
||||
*/
|
||||
|
||||
namespace App\Transformers;
|
||||
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Notifications\DatabaseNotification;
|
||||
use League\Fractal\TransformerAbstract;
|
||||
|
||||
class NotificationTransformer extends TransformerAbstract
|
||||
{
|
||||
public function transform(DatabaseNotification $notification)
|
||||
{
|
||||
return [
|
||||
'id' => $notification->id,
|
||||
'type' => $notification->type,
|
||||
'data' => $notification->data,
|
||||
'read_at' => $notification->read_at instanceof Carbon ? $notification->read_at->toDateTimeString() : null,
|
||||
'created_at' => $notification->created_at instanceof Carbon ? $notification->created_at->toDateTimeString() : $notification->created_at,
|
||||
'updated_at' => $notification->updated_at instanceof Carbon ? $notification->updated_at->toDateTimeString() : $notification->updated_at,
|
||||
];
|
||||
}
|
||||
}
|
|
@ -87,6 +87,15 @@ $api->version('v1', [
|
|||
//某个用户的回复列表
|
||||
$api->get('users/{user}/replies', 'RepliesController@userIndex')
|
||||
->name('api.users.replies.index');
|
||||
// 通知列表
|
||||
$api->get('user/notifications', 'NotificationsController@index')
|
||||
->name('api.user.notifications.index');
|
||||
// 通知统计
|
||||
$api->get('user/notifications/stats', 'NotificationsController@stats')
|
||||
->name('api.user.notifications.stats');
|
||||
// 标记消息通知为已读
|
||||
$api->patch('user/read/notifications', 'NotificationsController@read')
|
||||
->name('api.user.notifications.read');
|
||||
});
|
||||
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue
Block a user