Skip to content

Commit

Permalink
Merge pull request #54 from lion-packages/new
Browse files Browse the repository at this point in the history
Adding new features
  • Loading branch information
Santiago1010 authored Apr 18, 2024
2 parents 00b63a4 + c95e3d1 commit 7ad4f66
Show file tree
Hide file tree
Showing 24 changed files with 1,513 additions and 26 deletions.
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
"fakerphp/faker": "^1.23",
"guzzlehttp/guzzle": "^7.8",
"lion/command": "^3.1",
"lion/database": "^9.0",
"lion/database": "^9.2",
"lion/files": "^6.0",
"lion/helpers": "^3.2",
"lion/mailer": "^6.0",
Expand Down
12 changes: 6 additions & 6 deletions composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

53 changes: 53 additions & 0 deletions config/queue.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?php

declare(strict_types=1);

use Lion\Bundle\Enums\LogTypeEnum;
use Lion\Bundle\Enums\TaskStatusEnum;
use Lion\Bundle\Helpers\Commands\Schedule\TaskQueue;
use Lion\Mailer\Mailer;
use Lion\Mailer\Priority;

/**
* -----------------------------------------------------------------------------
* Queued Tasks
* -----------------------------------------------------------------------------
* This is where you can register the processes required for your queued tasks
* -----------------------------------------------------------------------------
**/

TaskQueue::add(
'send:email:verify',
(
/**
* Send an email configured in a task queue
*
* @param object $queue [Queued task object]
*
* @return void
*
* @throws Exception [Catch an exception if the email has not been sent]
*/
function (object $queue): void {
$data = (object) json_decode($queue->task_queue_data, true);

try {
Mailer::account(env('MAIL_NAME'))
->subject('Test Priority')
->from($data->email, 'Sleon')
->addAddress('[email protected]', 'Jjerez')
->body($data->template)
->priority(Priority::HIGH)
->send();
} catch (Exception $e) {
TaskQueue::edit($queue, TaskStatusEnum::FAILED);

logger($e->getMessage(), LogTypeEnum::ERROR->value, [
'idtask_queue' => $queue->idtask_queue,
'task_queue_type' => $queue->task_queue_type,
'task_queue_data' => $queue->task_queue_data
]);
}
}
)
);
72 changes: 57 additions & 15 deletions lion
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ require_once(__DIR__ . '/vendor/autoload.php');
use Dotenv\Dotenv;
use Lion\Bundle\Commands\CommandHandler;
use Lion\Database\Driver;
use Lion\Mailer\Mailer;

/**
* -----------------------------------------------------------------------------
Expand All @@ -36,27 +37,68 @@ Dotenv::createImmutable(__DIR__)->load();
* */

Driver::run([
'default' => $_ENV['DB_NAME'],
'default' => env('DB_NAME'),
'connections' => [
$_ENV['DB_NAME'] => [
'type' => $_ENV['DB_TYPE'],
'host' => $_ENV['DB_HOST'],
'port' => $_ENV['DB_PORT'],
'dbname' => $_ENV['DB_NAME'],
'user' => $_ENV['DB_USER'],
'password' => $_ENV['DB_PASSWORD']
env('DB_NAME') => [
'type' => env('DB_TYPE'),
'host' => env('DB_HOST'),
'port' => env('DB_PORT'),
'dbname' => env('DB_NAME'),
'user' => env('DB_USER'),
'password' => env('DB_PASSWORD')
],
$_ENV['DB_NAME_TEST'] => [
'type' => $_ENV['DB_TYPE_TEST'],
'host' => $_ENV['DB_HOST_TEST'],
'port' => $_ENV['DB_PORT_TEST'],
'dbname' => $_ENV['DB_NAME'],
'user' => $_ENV['DB_USER_TEST'],
'password' => $_ENV['DB_PASSWORD_TEST']
env('DB_NAME_TEST') => [
'type' => env('DB_TYPE_TEST'),
'host' => env('DB_HOST_TEST'),
'port' => env('DB_PORT_TEST'),
'dbname' => env('DB_NAME'),
'user' => env('DB_USER_TEST'),
'password' => env('DB_PASSWORD_TEST')
]
]
]);

/**
* -----------------------------------------------------------------------------
* Start mail service
* -----------------------------------------------------------------------------
* describe connections to establish connecting to multiple databases
* -----------------------------------------------------------------------------
**/

Mailer::initialize([
env('MAIL_NAME', 'lion-app') => [
'name' => env('MAIL_NAME', 'lion-app'),
'type' => env('MAIL_TYPE', 'symfony'),
'host' => env('MAIL_HOST', 'mailhog'),
'username' => env('MAIL_USER_NAME', 'lion-app'),
'password' => env('MAIL_PASSWORD', 'lion'),
'port' => (int) env('MAIL_PORT', 1025),
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'debug' => env('MAIL_DEBUG', false)
],
env('MAIL_NAME_SUPP', 'lion-app') => [
'name' => env('MAIL_NAME_SUPP', 'lion-app'),
'type' => env('MAIL_TYPE_SUPP', 'symfony'),
'host' => env('MAIL_HOST_SUPP', 'mailhog'),
'username' => env('MAIL_USER_NAME_SUPP', 'lion-app'),
'password' => env('MAIL_PASSWORD_SUPP', 'lion'),
'port' => (int) env('MAIL_PORT_SUPP', 1025),
'encryption' => env('MAIL_ENCRYPTION_SUPP', 'tls'),
'debug' => env('MAIL_DEBUG_SUPP', false)
]
], env('MAIL_NAME', 'lion-app'));

/**
* -----------------------------------------------------------------------------
* Queued Tasks
* -----------------------------------------------------------------------------
* This is where you can register the processes required for your queued tasks
* -----------------------------------------------------------------------------
**/

include(__DIR__ . '/config/queue.php');

/**
* -----------------------------------------------------------------------------
* Run The lion Application
Expand Down
61 changes: 61 additions & 0 deletions routes/web.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
use Dotenv\Dotenv;
use Lion\Bundle\Helpers\ExceptionCore;
use Lion\Bundle\Helpers\Http\Routes;
use Lion\Database\Driver;
use Lion\Mailer\Mailer;

/**
* -----------------------------------------------------------------------------
Expand All @@ -40,6 +42,65 @@

Dotenv::createImmutable(__DIR__ . '/../')->load();

/**
* -----------------------------------------------------------------------------
* Database initialization
* -----------------------------------------------------------------------------
* */

Driver::run([
'default' => env('DB_NAME'),
'connections' => [
env('DB_NAME') => [
'type' => env('DB_TYPE'),
'host' => env('DB_HOST'),
'port' => env('DB_PORT'),
'dbname' => env('DB_NAME'),
'user' => env('DB_USER'),
'password' => env('DB_PASSWORD')
],
env('DB_NAME_TEST') => [
'type' => env('DB_TYPE_TEST'),
'host' => env('DB_HOST_TEST'),
'port' => env('DB_PORT_TEST'),
'dbname' => env('DB_NAME'),
'user' => env('DB_USER_TEST'),
'password' => env('DB_PASSWORD_TEST')
]
]
]);

/**
* -----------------------------------------------------------------------------
* Start mail service
* -----------------------------------------------------------------------------
* describe connections to establish connecting to multiple databases
* -----------------------------------------------------------------------------
**/

Mailer::initialize([
env('MAIL_NAME', 'lion-app') => [
'name' => env('MAIL_NAME', 'lion-app'),
'type' => env('MAIL_TYPE', 'symfony'),
'host' => env('MAIL_HOST', 'mailhog'),
'username' => env('MAIL_USER_NAME', 'lion-app'),
'password' => env('MAIL_PASSWORD', 'lion'),
'port' => (int) env('MAIL_PORT', 1025),
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'debug' => env('MAIL_DEBUG', false)
],
env('MAIL_NAME_SUPP', 'lion-app') => [
'name' => env('MAIL_NAME_SUPP', 'lion-app'),
'type' => env('MAIL_TYPE_SUPP', 'symfony'),
'host' => env('MAIL_HOST_SUPP', 'mailhog'),
'username' => env('MAIL_USER_NAME_SUPP', 'lion-app'),
'password' => env('MAIL_PASSWORD_SUPP', 'lion'),
'port' => (int) env('MAIL_PORT_SUPP', 1025),
'encryption' => env('MAIL_ENCRYPTION_SUPP', 'tls'),
'debug' => env('MAIL_DEBUG_SUPP', false)
]
], env('MAIL_NAME', 'lion-app'));

/**
* -----------------------------------------------------------------------------
* Web Routes
Expand Down
Loading

0 comments on commit 7ad4f66

Please sign in to comment.