Skip to content

Commit

Permalink
refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
jhyeon1010 committed Sep 4, 2017
1 parent 9cd7e60 commit d2bbfed
Show file tree
Hide file tree
Showing 13 changed files with 173 additions and 211 deletions.
12 changes: 4 additions & 8 deletions plugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@

namespace Xpressengine\Plugins\GoogleAnalytics;

use Xpressengine\Plugin\AbstractPlugin;
use XeFrontend;
use Route;
use Validator;
use View;
use XeFrontend;
use XeRegister;
use Xpressengine\Plugin\AbstractPlugin;
use Xpressengine\Translation\Translator;

class Plugin extends AbstractPlugin
Expand Down Expand Up @@ -45,19 +46,14 @@ public function register()
$this->intercepts();
}

public function activate($installedVersion = null)
{
//
}

public function getSettingsURI()
{
return route('ga::setting.edit');
}

private function routes()
{
Route::group(['namespace' => 'Xpressengine\\Plugins\\GoogleAnalytics'], function () {
Route::group(['namespace' => 'Xpressengine\\Plugins\\GoogleAnalytics\\Controllers', 'as' => 'ga::'], function () {
require plugins_path('google_analytics/routes.php');
});
}
Expand Down
20 changes: 10 additions & 10 deletions routes.php
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
<?php

Route::settings('ga', function () {
Route::get('setting', [
'as' => 'edit',
'uses' => 'ManageController@getSetting'
]);
Route::post('setting', [
'as' => 'update',
'uses' => 'ManageController@postSetting'
]);
}, ['as' => 'ga::setting.']);
Route::group(['as' => 'setting.'], function () {
Route::get('setting', ['as' => 'edit', 'uses' => 'ManageController@getSetting']);
Route::post('setting', ['as' => 'update', 'uses' => 'ManageController@postSetting']);
});
});

Route::fixed('ga', function () {
Route::group(['prefix' => 'api', 'as' => 'ga::api.', 'middleware' => 'settings'], function () {
Route::group(['prefix' => 'api', 'as' => 'api.', 'middleware' => 'settings'], function () {
Route::get('visit', ['as' => 'visit', 'uses' => 'ApiController@visit']);
Route::get('term', ['as' => 'term', 'uses' => 'ApiController@term']);
Route::get('browser', ['as' => 'browser', 'uses' => 'ApiController@browser']);
Route::get('source', ['as' => 'source', 'uses' => 'ApiController@source']);
Route::get('pv', ['as' => 'pv', 'uses' => 'ApiController@pv']);
Route::get('device', ['as' => 'device', 'uses' => 'ApiController@device']);
Route::get('page', ['as' => 'page', 'uses' => 'ApiController@page']);
});

Route::get('test', 'ApiController@test');
});
92 changes: 0 additions & 92 deletions src/ApiController.php

This file was deleted.

130 changes: 130 additions & 0 deletions src/Controllers/ApiController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
<?php
/**
* AnalyticsController.php
*
* PHP version 5
*
* @category
* @package
* @author XE Developers <developers@xpressengine.com>
* @copyright 2015 Copyright (C) NAVER Corp. <http://www.navercorp.com>
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html LGPL-2.1
* @link https://xpressengine.io
*/

namespace Xpressengine\Plugins\GoogleAnalytics\Controllers;

use App\Http\Controllers\Controller;
use Carbon\Carbon;
use Xpressengine\Http\Request;
use Xpressengine\Plugins\GoogleAnalytics\Handler;

class ApiController extends Controller
{
public function visit(Request $request, Handler $handler)
{
$startdate = $request->get('startdate', '7daysAgo');
$enddate = $request->get('enddate', 'today');
$unit = $request->get('unit', 'date');

$rows = $handler->getData($startdate, $enddate, 'ga:visits', [
'dimensions' => 'ga:' . $unit
]);

return response()->json($rows);
}

public function term(Request $request, Handler $handler)
{
$startyear = $request->get('startyear', date('Y'));
$startmon = $request->get('startmon', 1);
$endyear = $request->get('endyear', date('Y'));
$endmon = $request->get('endmon', 12);
$unit = $request->get('unit', 'day');

$startdate = Carbon::createFromDate($startyear, $startmon)->startOfMonth()->format('Y-m-d');
$enddate = Carbon::createFromDate($endyear, $endmon)->endOfMonth()->format('Y-m-d');

$rows = $handler->getData($startdate, $enddate, 'ga:visits', [
'dimensions' => 'ga:' . $unit
]);

return response()->json($rows);
}

public function browser(Request $request, Handler $handler)
{
$startdate = $request->get('startdate', '7daysAgo');
$enddate = $request->get('enddate', 'today');
$limit = $request->get('limit', 5);

$rows = $handler->getData($startdate, $enddate, 'ga:visits', [
'dimensions' => 'ga:browser',
'sort' => '-ga:visits',
'max-results' => $limit
]);

return response()->json($rows);
}

public function source(Request $request, Handler $handler)
{
$startdate = $request->get('startdate', '7daysAgo');
$enddate = $request->get('enddate', 'today');
$limit = $request->get('limit', 5);

$rows = $handler->getData($startdate, $enddate, 'ga:visits', [
'dimensions' => 'ga:source',
'sort' => '-ga:visits',
'max-results' => $limit
]);

return response()->json($rows);
}

public function pv(Request $request, Handler $handler)
{
$startdate = $request->get('startdate', '7daysAgo');
$enddate = $request->get('enddate', 'today');
$limit = $request->get('limit', 5);

$rows = $handler->getData($startdate, $enddate, 'ga:pageviews', [
'dimensions' => 'ga:pagePath',
'sort' => '-ga:pageviews',
'max-results' => $limit
]);

return response()->json($rows);
}

public function device(Request $request, Handler $handler)
{
$startdate = $request->get('startdate', '7daysAgo');
$enddate = $request->get('enddate', 'today');

$rows = $handler->getData($startdate, $enddate, 'ga:visits', [
'dimensions' => 'ga:deviceCategory',
'sort' => '-ga:deviceCategory'
]);

return response()->json($rows);
}

public function page(Request $request, Handler $handler)
{
$startdate = $request->get('startdate', '7daysAgo');
$enddate = $request->get('enddate', 'today');
$path = rawurldecode($request->get('path') ?: '/');

$rows = $handler->getData($startdate, $enddate, 'ga:pageviews', [
'dimensions' => 'ga:date',
'filters' => 'ga:pagePath==' . $path
]);

return response()->json($rows);
}

public function test()
{
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,15 @@
* @link https://xpressengine.io
*/

namespace Xpressengine\Plugins\GoogleAnalytics;
namespace Xpressengine\Plugins\GoogleAnalytics\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use XeFrontend;
use XePresenter;
use XeStorage;
use XeDB;
use Xpressengine\Plugins\GoogleAnalytics\Handler;

class ManageController extends Controller
{
Expand All @@ -28,7 +29,7 @@ public function getSetting(Handler $handler)
$ruleName = 'analyticsSetting';
XeFrontend::rule($ruleName, $this->getRules());

return XePresenter::make('setting', [
return XePresenter::make('settings.setting', [
'setting' => $handler->getSetting(),
'ruleName' => $ruleName
]);
Expand Down

0 comments on commit d2bbfed

Please sign in to comment.