phase 8 and 9
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Resources\V1;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class EventResource extends JsonResource
|
||||
{
|
||||
public function toArray(Request $request): array
|
||||
{
|
||||
return [
|
||||
'name' => $this->name,
|
||||
'category' => $this->category,
|
||||
'total' => (int) $this->total,
|
||||
'unique_visitors' => (int) $this->unique_visitors,
|
||||
'total_value' => $this->total_value ? round((float) $this->total_value, 4) : null,
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Resources\V1;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class PageResource extends JsonResource
|
||||
{
|
||||
public function toArray(Request $request): array
|
||||
{
|
||||
return [
|
||||
'path' => $this->path,
|
||||
'views' => (int) $this->views,
|
||||
'unique_views' => (int) $this->unique_views,
|
||||
'avg_time_on_page' => round((float) ($this->avg_time ?? 0), 1),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Resources\V1;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class ReferrerResource extends JsonResource
|
||||
{
|
||||
public function toArray(Request $request): array
|
||||
{
|
||||
return [
|
||||
'source' => $this->source,
|
||||
'sessions' => (int) $this->sessions,
|
||||
'bounce_rate' => $this->sessions > 0 ? round(($this->bounces / $this->sessions) * 100, 1) : 0,
|
||||
'avg_duration' => round((float) ($this->avg_duration ?? 0), 1),
|
||||
'avg_pages' => round((float) ($this->avg_pages ?? 0), 1),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Resources\V1;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class StatsResource extends JsonResource
|
||||
{
|
||||
public function toArray(Request $request): array
|
||||
{
|
||||
$data = $this->resource;
|
||||
|
||||
return [
|
||||
'period' => [
|
||||
'from' => $data['from'],
|
||||
'to' => $data['to'],
|
||||
],
|
||||
'metrics' => [
|
||||
'page_views' => $data['metrics']['page_views'],
|
||||
'visitors' => $data['metrics']['visitors'],
|
||||
'sessions' => $data['metrics']['sessions'],
|
||||
'bounce_rate' => $data['metrics']['bounce_rate'],
|
||||
'avg_duration' => $data['metrics']['avg_duration'],
|
||||
'avg_pages_per_session' => $data['metrics']['avg_pages'],
|
||||
],
|
||||
'timeseries' => $data['timeseries'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Resources\V1;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class VisitorBreakdownResource extends JsonResource
|
||||
{
|
||||
public function toArray(Request $request): array
|
||||
{
|
||||
$data = $this->resource;
|
||||
|
||||
return [
|
||||
'period' => [
|
||||
'from' => $data['from'],
|
||||
'to' => $data['to'],
|
||||
],
|
||||
'countries' => $data['countries'],
|
||||
'browsers' => $data['browsers'],
|
||||
'operating_systems' => $data['operating_systems'],
|
||||
'device_types' => $data['device_types'],
|
||||
'languages' => $data['languages'],
|
||||
'new_vs_returning' => $data['new_vs_returning'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Resources\V1;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class WebsiteResource extends JsonResource
|
||||
{
|
||||
public function toArray(Request $request): array
|
||||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'name' => $this->name,
|
||||
'domain' => $this->domain,
|
||||
'tracking_id' => $this->tracking_id,
|
||||
'is_active' => $this->is_active,
|
||||
'created_at' => $this->created_at->toIso8601String(),
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user