item lookup
This commit is contained in:
@@ -16,6 +16,7 @@ use Seat\Eseye\Eseye;
|
|||||||
use Seat\Eseye\Exceptions\RequestFailedException;
|
use Seat\Eseye\Exceptions\RequestFailedException;
|
||||||
use App\Library\Esi\Esi;
|
use App\Library\Esi\Esi;
|
||||||
use App\Library\Structures\StructureHelper;
|
use App\Library\Structures\StructureHelper;
|
||||||
|
use App\Library\Lookups\NewLookupHelper;
|
||||||
|
|
||||||
//App Models
|
//App Models
|
||||||
use App\Models\Esi\EsiToken;
|
use App\Models\Esi\EsiToken;
|
||||||
@@ -34,22 +35,85 @@ class MoonLedgerController extends Controller
|
|||||||
public function displaySelection() {
|
public function displaySelection() {
|
||||||
//Declare variables
|
//Declare variables
|
||||||
$structures = array();
|
$structures = array();
|
||||||
|
$esiHelper = new Esi;
|
||||||
|
$lookup = new NewLookupHelper;
|
||||||
|
|
||||||
|
//Check for the esi scope
|
||||||
|
if(!$esiHelper->HaveEsiScope(auth()->user()->getId(), 'esi-industry.read_corporation_mining.v1')) {
|
||||||
|
return redirect('/dashboard')->with('error', 'Need to add scopes for esi-industry.read_corporation_mining.v1');
|
||||||
|
} else {
|
||||||
|
if(!$esiHelper->HaveEsiScope(auth()->user()->getId(), 'esi-universe.read_structures.v1')) {
|
||||||
|
return redirect('/dashboard')->with('error', 'Need to add scope for esi-universe.read_structures.v1');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Get the refresh token if scope checks have passed
|
||||||
|
$refreshToken = $esiHelper->GetRefreshToken(auth()->user()->getId());
|
||||||
|
//Setup the esi container
|
||||||
|
$esi = $esiHelper->SetupEsiAuthentication($refreshToken);
|
||||||
|
|
||||||
|
//Get the character data from the lookup table if possible or esi
|
||||||
|
$character = $lookup->LookupCharacter(auth()->user()->getId(), null);
|
||||||
|
|
||||||
|
//Try to get the mining observers for the corporation from esi
|
||||||
|
try {
|
||||||
|
$response = $esi->invoke('get', '/corporation/{corporation_id}/mining/observers/', [
|
||||||
|
'corporation_id' => $character->corporation_id,
|
||||||
|
]);
|
||||||
|
} catch(RequestFailedException $e) {
|
||||||
|
//If an exception has occurred for some reason redirect back to the dashboard with an error message
|
||||||
|
return redirect('/dashboard')->with('error', 'Failed to get mining structures.');
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach($response as $resp) {
|
||||||
|
//Try to get the structure information from esi
|
||||||
|
try {
|
||||||
|
$structureInfo = $esi->invoke('get', '/universe/structures/{structure_id}/', [
|
||||||
|
'structure_id' => $resp->observer_id,
|
||||||
|
]);
|
||||||
|
} catch(RequestFailedException $e) {
|
||||||
|
//If an exception has occurred, then do nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
//Setup the temporary array structure
|
||||||
|
$tempStructure = [
|
||||||
|
$resp->observer_id => $sturcutreInfo->name,
|
||||||
|
];
|
||||||
|
|
||||||
|
//Push the data onto the permanent array
|
||||||
|
array_push($structures, $tempStructure);
|
||||||
|
}
|
||||||
|
|
||||||
return view('moons.ledger.displayselect')->with('structures', $structures);
|
return view('moons.ledger.displayselect')->with('structures', $structures);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function displayLedger(Request $request) {
|
public function displayLedger(Request $request) {
|
||||||
//Validate the request
|
|
||||||
$this->validate($request, [
|
|
||||||
'id' => 'required',
|
|
||||||
]);
|
|
||||||
|
|
||||||
//Declare variables
|
//Declare variables
|
||||||
$esiHelper = new Esi;
|
$esiHelper = new Esi;
|
||||||
|
$lookup = new NewLookupHelper;
|
||||||
|
|
||||||
//Create the authentication container for ESI, and check for the correct scopes
|
//Check for the esi scope
|
||||||
$config = config('esi');
|
if(!$esiHelper->HaveEsiScope(auth()->user()->getId(), 'esi-industry.read_corporation_mining.v1')) {
|
||||||
|
//If the scope check fails, return with a redirect and error message
|
||||||
|
return redirect('/dashboar')->with('error', 'Could not find the scope for esi-industry.read_corporation_mining.v1');
|
||||||
|
}
|
||||||
|
|
||||||
|
$refreshToken = $esiHelper->GetRefreshToken(auth()->user()->getId());
|
||||||
|
$esi = $esiHelper->SetupEsiAuthentication($refreshToken);
|
||||||
|
|
||||||
|
//Get the character data from the lookup table if possible or esi
|
||||||
|
$character = $lookup->LookupCharacter(auth()->user()->getId(), null);
|
||||||
|
|
||||||
|
//Try to get the mining ledger for the corporation observer
|
||||||
|
try {
|
||||||
|
$ledger = $esi->invoke('get', '/corporation/{corporation_id}/mining/observers/{observer_id}/', [
|
||||||
|
'corporation_id' => $character->corporation_id,
|
||||||
|
'observer_id' => $request->structure,
|
||||||
|
]);
|
||||||
|
} catch(RequestFailedException $e) {
|
||||||
|
return redirect('/dashboard')->with('error', 'Failed to get the mining ledger.');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,6 +32,78 @@ class NewLookupHelper {
|
|||||||
$this->esi = new Eseye();
|
$this->esi = new Eseye();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function ItemIdToName($itemId) {
|
||||||
|
//Check if the item is stored in our own database first
|
||||||
|
$item = $this->LookupItem($itemId);
|
||||||
|
|
||||||
|
if($item != null) {
|
||||||
|
return $item->name;
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
$response = $this->esi->('get', '/universe/types/{type_id}/', [
|
||||||
|
'type_id' => $itemId,
|
||||||
|
]);
|
||||||
|
} catch(RequestFailedException $e) {
|
||||||
|
Log::warning('Failed to get item information from /universe/types/{type_id}/ in NewLookupHelper.');
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isset($response->description)) {
|
||||||
|
$this->StoreItem($response);
|
||||||
|
|
||||||
|
return $response->name;
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function LookupItem($itemId) {
|
||||||
|
$item = Item::where([
|
||||||
|
'type_id' => $itemId,
|
||||||
|
])->first();
|
||||||
|
|
||||||
|
return $item;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function StoreItem($item) {
|
||||||
|
$newItem = new Item;
|
||||||
|
if(isset($item->capacity)) {
|
||||||
|
$newItem->capacity = $item->capacity;
|
||||||
|
}
|
||||||
|
$newItem->description = $item->description;
|
||||||
|
if(isset($item->graphic_id)) {
|
||||||
|
$newItem->graphic_id = $item->graphic_id;
|
||||||
|
}
|
||||||
|
$newItem->group_id = $item->group_id;
|
||||||
|
if(isset($item->icon_id)) {
|
||||||
|
$newItem->icon_id = $item->icon_id;
|
||||||
|
}
|
||||||
|
if(isset($item->market_group_id) {
|
||||||
|
$newItem->market_group_id = $item->market_group_id;
|
||||||
|
}
|
||||||
|
if(isset($item->mass)) {
|
||||||
|
$newItem->mass = $item->mass;
|
||||||
|
}
|
||||||
|
$newItem->name = $item->name;
|
||||||
|
if(isset($item->packaged_volume)) {
|
||||||
|
$newItem->packaged_volume = $item->packaged_volume;
|
||||||
|
}
|
||||||
|
if(isset($item->portion_size)) {
|
||||||
|
$newItem->portion_size = $item->portion_size;
|
||||||
|
}
|
||||||
|
$newItem->published = $item->published;
|
||||||
|
if(isset($item->radius)) {
|
||||||
|
$newItem->radius = $item->radius;
|
||||||
|
}
|
||||||
|
$newItem->type_id = $item->type_id;
|
||||||
|
if(isset($item->volume)) {
|
||||||
|
$newItem->volume = $item->volume;
|
||||||
|
}
|
||||||
|
$newItem-save();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public function SystemNameToId($system) {
|
public function SystemNameToId($system) {
|
||||||
//Check if the solar system is stored in our own database first
|
//Check if the solar system is stored in our own database first
|
||||||
$solarSystem = $this->LookupSolarSystem($system);
|
$solarSystem = $this->LookupSolarSystem($system);
|
||||||
|
|||||||
40
app/Models/Lookups/Item.php
Normal file
40
app/Models/Lookups/Item.php
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models\Lookups;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class Item extends Model
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Table Name
|
||||||
|
*/
|
||||||
|
public $table = 'item_lookup';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Timestamps
|
||||||
|
*/
|
||||||
|
public $timestamps = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The attributes that are mass assignable
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $fillable = [
|
||||||
|
'capacity',
|
||||||
|
'description',
|
||||||
|
'graphic_id',
|
||||||
|
'group_id',
|
||||||
|
'icon_id',
|
||||||
|
'market_group_id',
|
||||||
|
'mass',
|
||||||
|
'name',
|
||||||
|
'packaged_volume',
|
||||||
|
'portion_size',
|
||||||
|
'published',
|
||||||
|
'radius',
|
||||||
|
'type_id',
|
||||||
|
'volume',
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreateItemLookupTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
if(!Schema::hasTable('item_lookup')) {
|
||||||
|
Schema::create('item_lookup', function (Blueprint $table) {
|
||||||
|
$table->double('capacity', 20, 2)->nullable();
|
||||||
|
$table->string('description');
|
||||||
|
$table->unsignedBigInteger('graphic_id')->nullable();
|
||||||
|
$table->unsignedBigInteger('group_id');
|
||||||
|
$table->unsignedBigInteger('icon_id')->nullable();
|
||||||
|
$table->unsignedBigInteger('market_group_id')->nullable();
|
||||||
|
$table->double('mass', 20, 2)->nullable();
|
||||||
|
$table->string('name');
|
||||||
|
$table->double('packaged_volume', 20, 2)->nullable();
|
||||||
|
$table->unsignedBigInteger('portion_size')->nullable();
|
||||||
|
$table->boolean('published');
|
||||||
|
$table->double('radius', 20, 2)->nullable();
|
||||||
|
$table->unsignedBigInteger('type_id')->unique();
|
||||||
|
$table->double('volume', 20, 2)->nullable();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('item_lookup');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,19 @@
|
|||||||
@extends('layouts.b4')
|
@extends('layouts.b4')
|
||||||
@section('content')
|
@section('content')
|
||||||
|
<div class="container">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h2>Select the Structure To View the Ledger For</h2>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
{!! Form::open(['action' => 'Moons\MoonLedgerController@displayLedger', 'method' => 'POST']) !!}
|
||||||
|
<div class="form-group">
|
||||||
|
{{ Form::label('structure', 'Structure') }}
|
||||||
|
{{ Form::select('structure', $structures, ['class' => 'form-control']) }}
|
||||||
|
</div>
|
||||||
|
{{ Form::submit('Submit', ['class' => 'btn btn-primary']) }}
|
||||||
|
{!! Form::close() !!}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
@@ -122,6 +122,12 @@ Route::group(['middleware' => ['auth']], function(){
|
|||||||
Route::get('/moons/admin/journal', 'Moons\MoonsAdminController@showJournalEntries');
|
Route::get('/moons/admin/journal', 'Moons\MoonsAdminController@showJournalEntries');
|
||||||
Route::post('/moons/admin/display', 'Moons\MoonsAdminController@storeMoonRemoval');
|
Route::post('/moons/admin/display', 'Moons\MoonsAdminController@storeMoonRemoval');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Moon Ledger Controller display pages
|
||||||
|
*/
|
||||||
|
//Route::post('/moons/ledger/display/', 'Moons\MoonLedgerController@displayLedger');
|
||||||
|
//Route::get('/moons/ledger/display/select', 'Moons\MoonLedgerController@displaySelection');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Scopes Controller display pages
|
* Scopes Controller display pages
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user