notification files

This commit is contained in:
cuneytsenturk
2018-11-16 18:33:39 +03:00
parent c08f54fcd3
commit 2f6980b5d3
3 changed files with 100 additions and 0 deletions

View File

@ -438,6 +438,42 @@ trait Modules
return $data;
}
public function loadNotifications()
{
// Get data from cache
$data = Cache::get('notifications');
if (!empty($data)) {
return $data;
}
$data = [];
$url = 'apps/notifications';
$response = $this->getRemote($url, 'GET', ['timeout' => 30, 'referer' => true]);
// Exception
if ($response instanceof RequestException) {
return false;
}
// Bad response
if (!$response || ($response->getStatusCode() != 200)) {
return false;
}
$notifications = json_decode($response->getBody())->data;
foreach ($notifications as $notification) {
$data[$notification->path][] = $notification;
}
Cache::put('notifications', $data, Date::now()->addHour(6));
return $data;
}
public function getSuggestions($path)
{
// Get data from cache
@ -454,6 +490,22 @@ trait Modules
return false;
}
public function getNotifications($path)
{
// Get data from cache
$data = Cache::get('notifications');
if (empty($data)) {
$data = $this->loadNotifications();
}
if (!empty($data) && array_key_exists($path, $data)) {
return $data[$path];
}
return false;
}
protected function getRemote($path, $method = 'GET', $data = array())
{
$base = 'https://akaunting.com/api/';