in app/Http/Controllers/Api/Statistics/ApiStatisticsController.php [18:56]
public function index(Request $request)
{
if (config('monica.allow_statistics_through_public_api_access') == false) {
return $this->respondNotFound();
}
// Collecting statistics
$statistic = Statistic::orderBy('created_at', 'desc')->first();
$instance = Instance::first();
// Get the date of the monday of last week
$dateMondayLastWeek = now()->subDays(7);
$dateMondayLastWeek = $dateMondayLastWeek->startOfWeek();
// Get the date of the sunday of last week
$dateSundayLastWeek = now()->subDays(7);
$dateSundayLastWeek = $dateSundayLastWeek->endOfWeek();
// Get the number of users last monday
$instanceLastMonday = Statistic::whereDate('created_at', '=', $dateMondayLastWeek->toDateString())->first();
$instanceLastSunday = Statistic::whereDate('created_at', '=', $dateSundayLastWeek->toDateString())->first();
$numberNewUsers = 0;
if ($instanceLastMonday && $instanceLastSunday) {
$numberNewUsers = $instanceLastSunday->number_of_users - $instanceLastMonday->number_of_users;
}
$statistics = collect();
$statistics->push([
'instance_creation_date' => DateHelper::getTimestamp($instance->created_at),
'number_of_contacts' => ($statistic ? $statistic->number_of_contacts : 0),
'number_of_users' => ($statistic ? $statistic->number_of_users : 0),
'number_of_activities' => ($statistic ? $statistic->number_of_activities : 0),
'number_of_reminders' => ($statistic ? $statistic->number_of_reminders : 0),
'number_of_new_users_last_week' => $numberNewUsers,
]);
return $statistics;
}