Compare commits

...

3 Commits

Author SHA1 Message Date
Philipp Lang 593386b16b Ad job for installing
continuous-integration/drone/push Build is failing Details
2023-05-05 12:22:28 +02:00
Philipp Lang 6135fbec3f update initializer 2023-05-05 12:02:58 +02:00
Philipp Lang 29c2ea738c update composer lock 2023-05-05 11:49:26 +02:00
5 changed files with 21 additions and 33 deletions

View File

@ -18,7 +18,6 @@ use Illuminate\Http\RedirectResponse;
use Illuminate\Validation\ValidationException; use Illuminate\Validation\ValidationException;
use Lorisleiva\Actions\ActionRequest; use Lorisleiva\Actions\ActionRequest;
use Lorisleiva\Actions\Concerns\AsAction; use Lorisleiva\Actions\Concerns\AsAction;
use Zoomyboy\LaravelNami\Api;
use Zoomyboy\LaravelNami\Nami; use Zoomyboy\LaravelNami\Nami;
class InitializeAction class InitializeAction
@ -43,12 +42,12 @@ class InitializeAction
InitializeMembers::class, InitializeMembers::class,
]; ];
private Api $api; public function handle(): void
public function handle(int $mglnr, string $password, int $groupId): void
{ {
$api = app(NamiSettings::class)->login();
foreach ($this->initializers as $initializer) { foreach ($this->initializers as $initializer) {
app($initializer)->handle($this->api); app($initializer)->handle($api);
} }
} }
@ -74,38 +73,32 @@ class InitializeAction
]; ];
} }
public function asController(ActionRequest $request, NamiSettings $settings): RedirectResponse public function asController(ActionRequest $request): RedirectResponse
{ {
$this->api = Nami::login($request->input('mglnr'), $request->input('password')); $api = Nami::freshLogin($request->input('mglnr'), $request->input('password'));
if (!$this->api->hasGroup($request->input('group_id'))) { if (!$api->hasGroup($request->input('group_id'))) {
throw ValidationException::withMessages(['nami' => 'Gruppierung nicht gefunden.']); throw ValidationException::withMessages(['nami' => 'Gruppierung nicht gefunden.']);
} }
$settings->mglnr = $request->input('mglnr'); $this->setApi((int) $request->input('mglnr'), $request->input('password'), (int) $request->input('group_id'));
$settings->password = $request->input('password'); self::dispatch();
$settings->default_group_id = $request->input('group_id');
$settings->save();
$this->handle(
(int) $request->input('mglnr', 0),
(string) $request->input('password', ''),
(int) $request->input('group_id', 0)
);
return redirect()->route('home')->success('Initialisierung beauftragt. Wir benachrichtigen dich per Mail wenn alles fertig ist.'); return redirect()->route('home')->success('Initialisierung beauftragt. Wir benachrichtigen dich per Mail wenn alles fertig ist.');
} }
public function asCommand(Command $command, NamiSettings $settings): void public function asCommand(Command $command): void
{ {
$mglnr = (int) $command->option('mglnr'); $this->setApi((int) $command->option('mglnr'), $command->option('password'), (int) $command->option('group'));
$password = $command->option('password'); self::dispatch();
$group = (int) $command->option('group'); }
$this->api = Nami::login($mglnr, $password);
private function setApi(int $mglnr, string $password, int $groupId): void
{
$settings = app(NamiSettings::class);
$settings->mglnr = $mglnr; $settings->mglnr = $mglnr;
$settings->password = $password; $settings->password = $password;
$settings->default_group_id = $group; $settings->default_group_id = $groupId;
$settings->save(); $settings->save();
$this->handle((int) $mglnr, (string) $password, (int) $group);
} }
} }

2
composer.lock generated
View File

@ -9247,7 +9247,7 @@
"dist": { "dist": {
"type": "path", "type": "path",
"url": "./packages/tex", "url": "./packages/tex",
"reference": "6f162102ef7ceca41822d18c3e694abd926f550b" "reference": "48251272de62e3fea044a7ad31e1a411c15eb4c6"
}, },
"type": "library", "type": "library",
"extra": { "extra": {

@ -1 +1 @@
Subproject commit a41b190cc2509ee940967b6c108a557b0a9c5def Subproject commit 75983ebb4bad205629b57e18915b2f15fa38e835

View File

@ -564,11 +564,6 @@ parameters:
count: 1 count: 1
path: tests/Feature/Initialize/InitializeActionTest.php path: tests/Feature/Initialize/InitializeActionTest.php
-
message: "#^Call to an undefined method Mockery\\\\ExpectationInterface\\|Mockery\\\\HigherOrderMessage\\:\\:with\\(\\)\\.$#"
count: 1
path: tests/Feature/Initialize/InitializeActionTest.php
- -
message: "#^Call to an undefined method Mockery\\\\ExpectationInterface\\|Mockery\\\\HigherOrderMessage\\:\\:once\\(\\)\\.$#" message: "#^Call to an undefined method Mockery\\\\ExpectationInterface\\|Mockery\\\\HigherOrderMessage\\:\\:once\\(\\)\\.$#"
count: 2 count: 2

View File

@ -26,7 +26,7 @@ class InitializeActionTest extends TestCase
public function testItSetsSettingsBeforeRunningInitializer(): void public function testItSetsSettingsBeforeRunningInitializer(): void
{ {
$this->withoutExceptionHandling()->login(); $this->withoutExceptionHandling()->login();
InitializeAction::partialMock()->shouldReceive('handle')->with(12345, 'secret', 185)->once()->andReturn(true); InitializeAction::partialMock()->shouldReceive('handle')->andReturn(true);
Auth::success(12345, 'secret'); Auth::success(12345, 'secret');
app(GroupFake::class)->fetches(null, [185 => ['name' => 'testgroup']]); app(GroupFake::class)->fetches(null, [185 => ['name' => 'testgroup']]);