diff --git a/app/Console/Commands/calculatemarkettax.php b/app/Console/Commands/calculatemarkettax.php index 5761c1d45..81d95f1e4 100644 --- a/app/Console/Commands/calculatemarkettax.php +++ b/app/Console/Commands/calculatemarkettax.php @@ -6,6 +6,7 @@ use Illuminate\Console\Command; use Carbon\Carbon; use DB; +use App\Jobs\SendEveMail; use Commands\Library\CommandHelper; use App\Library\Finances\Helper\FinanceHelper; use App\Library\Structures\StructureTaxHelper; @@ -82,8 +83,6 @@ class CalculateMarketTax extends Command $finalTaxes = 0.00; } - //$finalTaxes = number_format($finalTaxes, 2, '.', ','); - //Get the info about the structures from the database $info = CorpStructure::where(['corporation_id' => $corp->corporation_id])->first(); @@ -100,6 +99,22 @@ class CalculateMarketTax extends Command $bill->year = $start->year; $bill->save(); + $mail = new EveMail; + $mail->sender = 93738489; + $mail->subject = 'Market Taxes Owed'; + $mail->body = 'Year ' . $start->year . ' ' . + 'Month: ' . + $start->month . + '
Market Taxes Owed: ' . + number_format($finalTaxes, 2, '.', ',') . + '
Please remit to Spatial Forces'; + $mail->recipient = (int)$info->character_id; + $mail->recipient_type = 'character'; + + SendEveMail::dispatch($mail); + + /* + //Retrieve the token for main character to send mails from $token = EsiToken::where(['character_id' => 93738489])->first(); @@ -138,7 +153,10 @@ class CalculateMarketTax extends Command } catch(RequestFailedException $e) { $this->line('Error is ' . $e); } + + */ } + //Mark the job as finished $task->SetStopStatus(); diff --git a/app/Jobs/SendEveMail.php b/app/Jobs/SendEveMail.php index 286f9a474..327b09a01 100644 --- a/app/Jobs/SendEveMail.php +++ b/app/Jobs/SendEveMail.php @@ -8,7 +8,10 @@ use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; -use App\Library\Esi\Mail; +use Seat\Eseye\Configuration; +use Seat\Eseye\Containers\EsiAuthentication; +use Seat\Eseye\Eseye; +use Seat\Eseye\Exceptions\RequestFailedException; use App\Models\EveMail as EveMailModel; @@ -21,6 +24,20 @@ class SendEveMail implements ShouldQueue */ protected $eveMail; + /** + * Timeout in seconds + * + * @var int + */ + public $timeout = 120; + + /** + * Retries + * + * @var int + */ + public $retries = 3; + /** * Create a new job instance. * @@ -43,21 +60,36 @@ class SendEveMail implements ShouldQueue //Access the model in the queue for processing $mail = $this->eveMail; - //Create a new Mail class variable - $esi = new Mail(); + //Retrieve the token for main character to send mails from + $token = EsiToken::where(['character_id'=> 93738489])->get(); - //Process the mail from the model to send a new mail - $esi->SendGeneralMail($mail->recepient, $mail->subject, $mail->body); + //Create the ESI authentication container + $config = config('esi'); + $authentication = new EsiAuthentication([ + 'client_id' => $config['client_id'], + 'secret' => $config['secret'], + 'refresh_token' => $token->refresh_token, + ]); - } + //Setup the Eseye class + $esi = new Eseye($authentication); - /** - * Determine the time the job should timeout - * - * @return \DateTime - */ - public function retryUntil() { - return now()->addSeconds(5); + //Attemp to send the mail + try { + $esi->setBody([ + 'approved_cost' => 0, + 'body' => $mail->body, + 'recipients' => [[ + 'recipient_id' => (int)$mail->recipient, + 'recipient_type' => $mail->recipient_type, + ]], + 'subject' => $mail->subject, + ])->invoke('post', '/characters/{character_id}/mail/', [ + 'character_id'=> 93738489, + ]); + } catch(RequestFailedException $e) { + // + } } /** diff --git a/app/Library/Esi/Mail.php b/app/Library/Esi/Mail.php index d613f38b8..1ad55831b 100644 --- a/app/Library/Esi/Mail.php +++ b/app/Library/Esi/Mail.php @@ -15,7 +15,7 @@ use Seat\Eseye\Exceptions\RequestFailedException; class Mail { - public function SendGeneralMail($recipient, $subject, $body) { + public function SendMail($recipient, $rType, $subject, $body) { //Retrieve the token for main character to send mails from $token = EsiToken::where(['character_id' => 93738489])->get(); //Create the ESI authentication container @@ -28,48 +28,21 @@ class Mail { $esi = new Eseye($authentication); try { $esi->setBody([ + 'approved_cost' => 0, 'body' => $body, - 'receipients' => [ - 'recipient_id'=> $recipient, - 'recipient_type' => 'character', - ], + 'recipients' => [[ + 'recipient_id' => (int)$recipient, + 'recipient_type' => $rType, + ]], 'subject' => $subject, ])->invoke('post', '/characters/{character_id}/mail/', [ - 'character_id' => 93738489, + 'character_id'=> 93738489, ]); } catch(RequestFailedException $e) { - return null; + return 1; } - } - public function SendMail($charId, $taxAmount, $subject, $body) { - //Retrieve the token for Amund Risalo - $token = DB::table('EsiTokens')->where('character_id', 93738489)->get(); - $configuration = Configuration::getInstance(); - $configuration->cache = NullCache::class; - //Create the ESI authentication container - $config = config('esi'); - $authentication = new EsiAuthentication([ - 'client_id' => $config['client_id'], - 'secret' => $config['secret'], - 'refresh_token' => $token[0]->refresh_token, - ]); - //Create the esi class variable - $esi = new Eseye($authentication); - try { - $esi->setBody([ - 'body' => $body, - 'receipients' => [ - 'recipient_id'=> $charId, - 'recipient_type' => 'character', - ], - 'subject' => $subject, - ])->invoke('post', '/characters/{character_id}/mail/', [ - 'character_id' => 93738489, - ]); - } catch(RequestFailedException $e) { - return $e->getEsiResponse(); - } + return 0; } } diff --git a/app/Models/Mail/EveMail.php b/app/Models/Mail/EveMail.php index 80da1e9d1..93b5ae69a 100644 --- a/app/Models/Mail/EveMail.php +++ b/app/Models/Mail/EveMail.php @@ -11,4 +11,14 @@ class EveMail extends Model //Timestamps public $timestamps = 'true'; + + protected $fillable = [ + 'sender', + 'recipient', + 'recipient_type', + 'subject', + 'body', + 'created_at', + 'updated_at', + ]; } diff --git a/database/migrations/2018_12_24_034610_create_eve_mails_table.php b/database/migrations/2018_12_24_034610_create_eve_mails_table.php index 8dfdae135..5f0dda336 100644 --- a/database/migrations/2018_12_24_034610_create_eve_mails_table.php +++ b/database/migrations/2018_12_24_034610_create_eve_mails_table.php @@ -18,12 +18,12 @@ class CreateEveMailsTable extends Migration $table->increments('id'); $table->string('sender'); $table->string('recipient'); - $table->string('subject'); - $table->string('body'); + $table->string('recipient_type'); + $table->text('subject'); + $table->text('body'); $table->timestamps(); }); } - } /**