Skip to content

feature: attendance mode #536

feature: attendance mode

feature: attendance mode #536

Triggered via pull request January 18, 2025 15:05
Status Failure
Total duration 1m 16s
Artifacts

static-analysis-psalm.yml

on: pull_request
Fit to window
Zoom out
Zoom in

Annotations

18 errors and 1 warning
UndefinedMethod: module/Activity/src/Controller/AdminController.php#L578
module/Activity/src/Controller/AdminController.php:578:27: UndefinedMethod: Method Activity\Mapper\Signup::getPresent does not exist (see https://psalm.dev/022)
UndefinedMethod: module/Activity/src/Controller/AdminController.php#L582
module/Activity/src/Controller/AdminController.php:582:36: UndefinedMethod: Method Activity\Mapper\Signup::getId does not exist (see https://psalm.dev/022)
InvalidArgument: module/Activity/src/Controller/AdminController.php#L585
module/Activity/src/Controller/AdminController.php:585:30: InvalidArgument: Argument 1 of Laminas\View\Model\JsonModel::__construct expects ArrayAccess<string, mixed>|iterable<string, mixed>|null, but list<mixed> provided (see https://psalm.dev/004)
MoreSpecificReturnType: module/Activity/src/Model/Activity.php#L496
module/Activity/src/Model/Activity.php:496:16: MoreSpecificReturnType: The declared return type 'array{beginTime: DateTime, categories: array<array-key, array{id: int, name: null|string, nameEn: null|string}>, company: Company\Model\Company|null, costs: null|string, costsEn: null|string, description: null|string, descriptionEn: null|string, endTime: DateTime, id: int, isMyFuture: bool, location: null|string, locationEn: null|string, name: null|string, nameEn: null|string, organ: Decision\Model\Organ|null, requireGEFLITST: bool, signupLists: array<array-key, array{closeDate: DateTime, displaySubscribedNumber: bool, fields: array<array-key, array{id: int, maximumValue: int|null, minimumValue: int|null, name: null|string, nameEn: null|string, options: array<array-key, null|string>, optionsEn: array<array-key, null|string>, sensitive: bool, type: int}>, id: int, limitedCapacity: bool, name: null|string, nameEn: null|string, onlyGEWIS: bool, openDate: DateTime, presenceTaken: bool}>}' for Activity\Model\Activity::toArray is more specific than the inferred return type 'array{beginTime: DateTime, categories: list{0?: array{id: int, name: null|string, nameEn: null|string}, ...<array{id: int, name: null|string, nameEn: null|string}>}, company: Company\Model\Company|null, costs: null|string, costsEn: null|string, description: null|string, descriptionEn: null|string, endTime: DateTime, id: int|null, isMyFuture: bool, location: null|string, locationEn: null|string, name: null|string, nameEn: null|string, organ: Decision\Model\Organ|null, requireGEFLITST: bool, signupLists: list{0?: array{closeDate: DateTime, displaySubscribedNumber: bool, fields: list<array{id: int, maximumValue: int|null, minimumValue: int|null, name: null|string, nameEn: null|string, options: array<array-key, null|string>, optionsEn: array<array-key, null|string>, sensitive: bool, type: int}>, id: int|null, limitedCapacity: bool, name: null|string, nameEn: null|string, onlyGEWIS: bool, openDate: DateTime}, ...<array{closeDate: DateTime, displaySubscribedNumber: bool, fields: list<array{id: int, maximumValue: int|null, minimumValue: int|null, name: null|string, nameEn: null|string, options: array<array-key, null|string>, optionsEn: array<array-key, null|string>, sensitive: bool, type: int}>, id: int|null, limitedCapacity: bool, name: null|string, nameEn: null|string, onlyGEWIS: bool, openDate: DateTime}>}}' (see https://psalm.dev/070)
MoreSpecificReturnType: module/Activity/src/Model/Activity.php#L532
module/Activity/src/Model/Activity.php:532:16: MoreSpecificReturnType: The declared return type 'array{beginTime: string, categories: array<array-key, array{id: int, name: array{valueEN: null|string, valueNL: null|string}}>, company: int|null, costs: array{valueEN: null|string, valueNL: null|string}, description: array{valueEN: null|string, valueNL: null|string}, endTime: string, id: int, isMyFuture: bool, location: array{valueEN: null|string, valueNL: null|string}, name: array{valueEN: null|string, valueNL: null|string}, organ: int|null, requireGEFLITST: bool, signupLists: array<array-key, array{closeDate: string, displaySubscribedNumber: bool, fields: array<array-key, array{id: int, maximumValue: int|null, minimumValue: int|null, name: array{valueEN: null|string, valueNL: null|string}, options: array<array-key, array{id: int, value: array{valueEN: null|string, valueNL: null|string}}>|null, sensitive: bool, type: int}>, id: int, limitedCapacity: bool, name: array{valueEN: null|string, valueNL: null|string}, onlyGEWIS: bool, openDate: string, presenceTaken: bool}>}' for Activity\Model\Activity::toGdprArray is more specific than the inferred return type 'array{beginTime: string, categories: array<array-key, array{id: int, name: array{valueEN: null|string, valueNL: null|string}}>, company: int|null, costs: array{valueEN: null|string, valueNL: null|string}, description: array{valueEN: null|string, valueNL: null|string}, endTime: string, id: int|null, isMyFuture: bool, location: array{valueEN: null|string, valueNL: null|string}, name: array{valueEN: null|string, valueNL: null|string}, organ: int|null, requireGEFLITST: bool, signupLists: array<array-key, array{closeDate: string, displaySubscribedNumber: bool, fields: array<array-key, array{id: int, maximumValue: int|null, minimumValue: int|null, name: array{valueEN: null|string, valueNL: null|string}, options: array<array-key, array{id: int, value: array{valueEN: null|string, valueNL: null|string}}>|null, sensitive: bool, type: int}>, id: int|null, limitedCapacity: bool, name: array{valueEN: null|string, valueNL: null|string}, onlyGEWIS: bool, openDate: string, presenceTaken?: bool}>}' (see https://psalm.dev/070)
MoreSpecificReturnType: module/Decision/src/Service/Gdpr.php#L100
module/Decision/src/Service/Gdpr.php:100:16: MoreSpecificReturnType: The declared return type 'array{activities?: array{approved: array<array-key, array{id: int}>, created: array<array-key, array{beginTime: string, categories: array<array-key, array{id: int, name: array{valueEN: null|string, valueNL: null|string}}>, company: int|null, costs: array{valueEN: null|string, valueNL: null|string}, description: array{valueEN: null|string, valueNL: null|string}, endTime: string, id: int, isMyFuture: bool, location: array{valueEN: null|string, valueNL: null|string}, name: array{valueEN: null|string, valueNL: null|string}, organ: int|null, requireGEFLITST: bool, signupLists: array<array-key, array{closeDate: string, displaySubscribedNumber: bool, fields: array<array-key, array{id: int, maximumValue: int|null, minimumValue: int|null, name: array{valueEN: null|string, valueNL: null|string}, options: array<array-key, array{id: int, value: array{valueEN: null|string, valueNL: null|string}}>|null, sensitive: bool, type: int}>, id: int, limitedCapacity: bool, name: array{valueEN: null|string, valueNL: null|string}, onlyGEWIS: bool, openDate: string, presenceTaken: bool}>}>, signups: array<array-key, array{activity_id: int, createdAt: string, fieldValues: array<array-key, array{id: int, option: array{id: int, value: array{valueEN: null|string, valueNL: null|string}}|null, value: null|string}>, id: int, present: bool, signupList_id: int, updatedAt: string}>}, companies?: array{approved: array{companies: array<array-key, array{approvableText: null|string, approved: int, approvedAt: null|string, id: int}>, jobs: array<array-key, array{approvableText: null|string, approved: int, approvedAt: null|string, id: int}>}}, decisions?: array{meeting_authorizations: array{received: array<array-key, array{createdAt: string, meeting_number: int, revokedAt: null|string}>, sent: array<array-key, array{createdAt: string, meeting_number: int, revokedAt: null|string}>}, sub_decisions: array<array-key, array{decision_number: int, decision_point: int, meeting_number: int, meeting_type: string, subdecision_sequence: int, ...<array-key, mixed>}>}, education?: array{authored_documents: array<array-key, array{course: array{code: string, name: string}, date: string, id: int, language: string, path: string, scanned: bool}>}, member?: array{addresses: array<array-key, array{city: string, number: string, phone: string, postalCode: string, postalRegion: string, street: string, type: string}>, app_authentications: array<array-key, array{app_id: string, id: int, time: string}>, information: array{birth: string, changedOn: string, deleted: bool, email: null|string, expiration: string, firstName: string, fullName: string, generation: int, hidden: bool, initials: string, lastName: string, lidnr: int, membershipEndsOn: null|string, middleName: string, paid: int, supremum: null|string, type: string}, lists: array<array-key, array{description_en: string, description_nl: string, name: string}>, login_attempts: array<array-key, array{id: int, ip: string, time: string}>, profile_photo: array{dateTime: string, explicit: bool, photo: array{dateTime: string, id: int, path: string}}|null, user_information: array{passwordChangedOn: null|string, roles: array<array-key, array{expiration: null|string, role: string}>}|null}, photos?: array{photographer: array<array-key, array{dateTime: string, id: int, path: string}>, tags: array<array-key, array{id: int, photo: array{dateTime: string, id: int, path: string}}>, votes: array<array-key, array{dateTime: string, id: int, photo: array{dateTime: string, id: int, path: string}}>}, polls?: array{approved: array<array-key, array{expiryDate: string, id: int, options: array<array-key, array{id: int, value: array{valueEN: null|string, valueNL: null|string}}>, question: array{valueEN: null|string, valueNL: null|string}}>, comments: array<array-key, array{author: string, content: string, createdOn: string, id: int}>, created: array<array-key, array{expiryDate: string, id: int, options: array<array-key, array{id: int, value: array{valueEN: null|string,
UnusedBaselineEntry: module/Activity/src/Mapper/Signup.php#L1
module/Activity/src/Mapper/Signup.php:0:0: UnusedBaselineEntry: Baseline for issue "MoreSpecificReturnType" has 1 extra entry. (see https://psalm.dev/316)
Psalm
Process completed with exit code 2.
PossiblyFalseReference: module/Activity/src/Controller/ActivityController.php#L88
module/Activity/src/Controller/ActivityController.php:88:75: PossiblyFalseReference: Cannot call method getId on possibly false value (see https://psalm.dev/105)
PossiblyFalseReference: module/Activity/src/Controller/AdminController.php#L151
module/Activity/src/Controller/AdminController.php:151:51: PossiblyFalseReference: Cannot call method getNew on possibly false value (see https://psalm.dev/105)
InvalidArgument: module/Activity/src/Controller/ApiController.php#L41
module/Activity/src/Controller/ApiController.php:41:30: InvalidArgument: Argument 1 of Laminas\View\Model\JsonModel::__construct expects ArrayAccess<string, mixed>|iterable<string, mixed>|null, but list{0?: array{beginTime: DateTime, categories: array<array-key, array{id: int, name: null|string, nameEn: null|string}>, company: Company\Model\Company|null, costs: null|string, costsEn: null|string, description: null|string, descriptionEn: null|string, endTime: DateTime, id: int, isMyFuture: bool, location: null|string, locationEn: null|string, name: null|string, nameEn: null|string, organ: Decision\Model\Organ|null, requireGEFLITST: bool, signupLists: array<array-key, array{closeDate: DateTime, displaySubscribedNumber: bool, fields: array<array-key, array{id: int, maximumValue: int|null, minimumValue: int|null, name: null|string, nameEn: null|string, options: array<array-key, null|string>, optionsEn: array<array-key, null|string>, sensitive: bool, type: int}>, id: int, limitedCapacity: bool, name: null|string, nameEn: null|string, onlyGEWIS: bool, openDate: DateTime}>}, ...<array{beginTime: DateTime, categories: array<array-key, array{id: int, name: null|string, nameEn: null|string}>, company: Company\Model\Company|null, costs: null|string, costsEn: null|string, description: null|string, descriptionEn: null|string, endTime: DateTime, id: int, isMyFuture: bool, location: null|string, locationEn: null|string, name: null|string, nameEn: null|string, organ: Decision\Model\Organ|null, requireGEFLITST: bool, signupLists: array<array-key, array{closeDate: DateTime, displaySubscribedNumber: bool, fields: array<array-key, array{id: int, maximumValue: int|null, minimumValue: int|null, name: null|string, nameEn: null|string, options: array<array-key, null|string>, optionsEn: array<array-key, null|string>, sensitive: bool, type: int}>, id: int, limitedCapacity: bool, name: null|string, nameEn: null|string, onlyGEWIS: bool, openDate: DateTime}>}>} provided (see https://psalm.dev/004)
MissingTemplateParam: module/Activity/src/Form/ActivityCalendarPeriod.php#L19
module/Activity/src/Form/ActivityCalendarPeriod.php:19:7: MissingTemplateParam: Activity\Form\ActivityCalendarPeriod has missing template params when extending Laminas\Form\Form, expecting 1 (see https://psalm.dev/182)
MissingTemplateParam: module/Activity/src/Form/ActivityCalendarProposal.php#L21
module/Activity/src/Form/ActivityCalendarProposal.php:21:7: MissingTemplateParam: Activity\Form\ActivityCalendarProposal has missing template params when extending Laminas\Form\Form, expecting 1 (see https://psalm.dev/182)
MissingTemplateParam: module/Activity/src/Form/Signup.php#L26
module/Activity/src/Form/Signup.php:26:7: MissingTemplateParam: Activity\Form\Signup has missing template params when extending Laminas\Form\Form, expecting 1 (see https://psalm.dev/182)
MoreSpecificReturnType: module/Activity/src/Mapper/Signup.php#L58
module/Activity/src/Mapper/Signup.php:58:78: MoreSpecificReturnType: The declared return type 'int' for Activity\Mapper\Signup::getNumberOfSignedUpMembers is more specific than the inferred return type 'null|scalar' (see https://psalm.dev/070)
PossiblyFalseReference: module/Activity/src/Service/Activity.php#L452
module/Activity/src/Service/Activity.php:452:37: PossiblyFalseReference: Cannot call method getNew on possibly false value (see https://psalm.dev/105)
MissingTemplateParam: module/Application/src/Form/Localisable.php#L15
module/Application/src/Form/Localisable.php:15:16: MissingTemplateParam: Application\Form\Localisable has missing template params when extending Laminas\Form\Form, expecting 1 (see https://psalm.dev/182)
MissingTemplateParam: module/Application/src/Form/ModifyRequest.php#L16
module/Application/src/Form/ModifyRequest.php:16:7: MissingTemplateParam: Application\Form\ModifyRequest has missing template params when extending Laminas\Form\Form, expecting 1 (see https://psalm.dev/182)
Psalm
ubuntu-latest pipelines will use ubuntu-24.04 soon. For more details, see https://github.com/actions/runner-images/issues/10636