Skip to content

Commit db6b25d

Browse files
authored
Optimalizace volání skautIS (#1384)
* skautis optimization * cs fix
1 parent e99631b commit db6b25d

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

app/Services/SkautIsService.php

+18-14
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,12 @@ public function getLogoutUrl(): string
4343
}
4444

4545
/**
46-
* Vrátí stav přihlášení uživatele, každých 5 minut obnoví přihlášení.
46+
* Vrátí stav přihlášení uživatele, každých 15 minut obnoví přihlášení.
4747
*/
4848
public function isLoggedIn(): bool
4949
{
5050
$logoutTime = clone($this->skautIs->getUser()->getLogoutDate());
51-
$hardCheck = $logoutTime->diff(new DateTimeImmutable())->i < 25; // pokud od posledniho obnoveni prihlaseni ubehlo 5 minut
51+
$hardCheck = $logoutTime->diff(new DateTimeImmutable())->i < 15; // pokud od posledniho obnoveni prihlaseni ubehlo 15 minut
5252

5353
return $this->skautIs->getUser()->isLoggedIn($hardCheck);
5454
}
@@ -203,27 +203,31 @@ public function getUnitId(): int|null
203203
*/
204204
public function getValidMembership(int $personId): stdClass|null
205205
{
206-
$membership = $this->skautIs->org->MembershipAllPerson([
206+
$memberships = $this->skautIs->org->MembershipAllPerson([
207207
'ID_Login' => $this->skautIs->getUser()->getLoginId(),
208208
'ID_Person' => $personId,
209-
'ID_MembershipType' => 'radne',
210209
'IsValid' => true,
211210
]);
212211

213-
if (empty($membership)) {
214-
$membership = $this->skautIs->org->MembershipAllPerson([
215-
'ID_Login' => $this->skautIs->getUser()->getLoginId(),
216-
'ID_Person' => $personId,
217-
'ID_MembershipType' => 'cestne',
218-
'IsValid' => true,
219-
]);
212+
if (empty($memberships)) {
213+
return null;
214+
}
215+
216+
$membershipsArray = $memberships->MembershipAllOutput instanceof stdClass ? [$memberships->MembershipAllOutput] : $memberships->MembershipAllOutput;
217+
218+
foreach ($membershipsArray as $membership) {
219+
if ($membership->ID_MembershipType === 'radne') {
220+
return $membership;
221+
}
222+
}
220223

221-
if (empty($membership)) {
222-
return null;
224+
foreach ($membershipsArray as $membership) {
225+
if ($membership->ID_MembershipType === 'cestne') {
226+
return $membership;
223227
}
224228
}
225229

226-
return $membership->MembershipAllOutput;
230+
return null;
227231
}
228232

229233
/**

0 commit comments

Comments
 (0)