|
@ -0,0 +1,41 @@ |
|
|
|
|
|
<?php |
|
|
|
|
|
|
|
|
|
|
|
namespace App\Http\Controllers; |
|
|
|
|
|
|
|
|
|
|
|
use Laravel\Lumen\Routing\Controller as BaseController; |
|
|
|
|
|
use Illuminate\Http\Request; |
|
|
|
|
|
use DB; |
|
|
|
|
|
use Quartz; |
|
|
|
|
|
use Log; |
|
|
|
|
|
use DateTime; |
|
|
|
|
|
|
|
|
|
|
|
class Api extends BaseController |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
public function query(Request $request) { |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function input(Request $request) { |
|
|
|
|
|
$token = $request->input('token'); |
|
|
|
|
|
if(!$token) |
|
|
|
|
|
return response(json_encode(['error' => 'no token provided']))->header('Content-Type', 'application/json'); |
|
|
|
|
|
|
|
|
|
|
|
$db = DB::table('databases')->where('write_token','=',$token)->first(); |
|
|
|
|
|
if(!$db) |
|
|
|
|
|
return response(json_encode(['error' => 'invalid token']))->header('Content-Type', 'application/json'); |
|
|
|
|
|
|
|
|
|
|
|
if(!is_array($request->input('locations'))) |
|
|
|
|
|
return response(json_encode(['error' => 'invalid input', 'error_description' => 'parameter "locations" must be an array of location data with a "timestamp" property']))->header('Content-Type', 'application/json'); |
|
|
|
|
|
|
|
|
|
|
|
$qz = new Quartz\DB(env('STORAGE_DIR').$db->name, 'w'); |
|
|
|
|
|
|
|
|
|
|
|
foreach($request->input('locations') as $loc) { |
|
|
|
|
|
$date = DateTime::createFromFormat('U', $loc['timestamp']); |
|
|
|
|
|
$line = $qz->add($date, $loc); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return response(json_encode(['result' => 'ok']))->header('Content-Type', 'application/json'); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |