RSM-81 Fix issues with Options provider

This commit is contained in:
Miguel Nogueira 2020-10-09 23:55:46 +01:00
parent b2adcee51e
commit 2a43e213f9
5 changed files with 21 additions and 3 deletions

View File

@ -3,7 +3,17 @@
namespace App\Facades; namespace App\Facades;
use \Illuminate\Support\Facades\Facade; use \Illuminate\Support\Facades\Facade;
use phpDocumentor\Reflection\Types\Boolean;
/**
* Class Options
* @package App\Facades
*
* @method static void setOption(string $option, string $value, string $description)
* @method static string getOption(string $option)
* @method static void changeOption(string $option, string $newValue)
* @method static Boolean optionExists(string $option)
*/
class Options extends Facade class Options extends Facade
{ {
public static function getFacadeAccessor() public static function getFacadeAccessor()

View File

@ -13,9 +13,12 @@ class Options
public function getOption(string $option): string public function getOption(string $option): string
{ {
$value = Cache::get($option); $value = Cache::get($option);
$fromCache = true;
if (is_null($value)) if (is_null($value))
{ {
$fromCache = false;
Log::debug('Option ' . $option . 'not found in cache, refreshing from database'); Log::debug('Option ' . $option . 'not found in cache, refreshing from database');
$value = Option::where('option_name', $option)->first(); $value = Option::where('option_name', $option)->first();
if (is_null($value)) if (is_null($value))
@ -25,7 +28,9 @@ class Options
Cache::put($option . '_desc', 'Undefined description'); Cache::put($option . '_desc', 'Undefined description');
} }
return $value->option_value; return (!$fromCache)
? $value->option_value
: $value;
} }
public function setOption(string $option, string $value, string $description) public function setOption(string $option, string $value, string $description)

View File

@ -26,7 +26,8 @@ class NewApplicant extends Notification implements ShouldQueue
/** /**
* Create a new notification instance. * Create a new notification instance.
* *
* @return void * @param Application $application
* @param Vacancy $vacancy
*/ */
public function __construct(Application $application, Vacancy $vacancy) public function __construct(Application $application, Vacancy $vacancy)
{ {

View File

@ -8,6 +8,7 @@ class Options extends Model
{ {
public $fillable = [ public $fillable = [
'option_name', 'option_name',
'option_value' 'option_value',
'friendly_name'
]; ];
} }

View File

@ -23,6 +23,7 @@ class DefaultOptionsSeeder extends Seeder
Options::setOption('enable_slack_notifications', true, 'Enable slack notifications'); Options::setOption('enable_slack_notifications', true, 'Enable slack notifications');
Options::setOption('enable_email_notifications', true, 'Enable e-mail notifications'); Options::setOption('enable_email_notifications', true, 'Enable e-mail notifications');
Options::setOption('enable_discord_notifications', true, 'Enable discord notifications');
} }
} }