Skip to content

Commit 60225ec

Browse files
authored
Merge branch 'main' into feature/prefixed-const-scopes
2 parents 073389e + 90e81ab commit 60225ec

65 files changed

Lines changed: 8543 additions & 2442 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/push.yml

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ jobs:
5151
runs-on: ubuntu-latest
5252
strategy:
5353
fail-fast: false
54+
max-parallel: 8
5455
matrix:
5556
suite:
5657
- { name: "OAuth2SummitApiTest", filter: "--filter OAuth2SummitApiTest" }
@@ -69,6 +70,70 @@ jobs:
6970
- { name: "AuditEventTypesTest", filter: "--filter AuditEventTypesTest" }
7071
- { name: "GuzzleTracingTest", filter: "--filter GuzzleTracingTest" }
7172
- { name: "Repositories", filter: "--filter tests/Repositories/" }
73+
- { name: "OAuth2AttendeesApiTest", filter: "--filter test/OAuth2AttendeesApiTest"}
74+
- { name: "OAuth2SummitSponsorApiTest", filter: "--filter test/OAuth2SummitSponsorApiTest"}
75+
- { name: "OAuth2BookableRoomAttributeTypesApiTest", filter: "--filter test/OAuth2BookableRoomAttributeTypesApiTest"}
76+
- { name: "OAuth2CompaniesApiTest", filter: "--filter test/OAuth2CompaniesApiTest"}
77+
- { name: "OAuth2ElectionsApiController", filter: "--filter test/OAuth2ElectionsApiController"}
78+
- { name: "OAuth2MembersApiTest", filter: "--filter test/OAuth2MembersApiTest"}
79+
- { name: "OAuth2GroupsApiTest", filter: "--filter test/OAuth2GroupsApiTest"}
80+
- { name: "OAuth2OAuth2SponsorshipTypeApiTest", filter: "--filter test/OAuth2OAuth2SponsorshipTypeApiTest"}
81+
- { name: "OAuth2OrganizationsApiTest", filter: "--filter test/OAuth2OrganizationsApiTest"}
82+
- { name: "OAuth2PresentationApiTest", filter: "--filter test/OAuth2PresentationApiTest"}
83+
- { name: "OAuth2PromoCodesApiTest", filter: "--filter test/OAuth2PromoCodesApiTest"}
84+
- { name: "OAuth2SummitPromoCodesApiTest", filter: "--filter test/OAuth2SummitPromoCodesApiTest"}
85+
- { name: "OAuth2SelectionPlansApiTest", filter: "--filter test/OAuth2SelectionPlansApiTest"}
86+
- { name: "OAuth2SummitSpeakersApiTest", filter: "--filter test/OAuth2SummitSpeakersApiTest" }
87+
- { name: "OAuth2SummitBadgesApiTest", filter: "--filter test/OAuth2SummitBadgesApiTest" }
88+
- { name: "OAuth2TracksApiTest", filter: "--filter test/OAuth2TracksApiTest" }
89+
- { name: "OAuth2TrackTagGroupsApiTest", filter: "--filter test/OAuth2TrackTagGroupsApiTest" }
90+
- { name: "OAuth2SummitTracksApiTest", filter: "--filter test/OAuth2SummitTracksApiTest" }
91+
- { name: "OAuth2TagsApiTest", filter: "--filter test/OAuth2TagsApiTest" }
92+
- { name: "OAuth2SummitSponsorshipApiControllerTest", filter: "--filter test/OAuth2SummitSponsorshipApiControllerTest" }
93+
- { name: "OAuth2SummitSponsorshipTypeApiControllerTest", filter: "--filter test/OAuth2SummitSponsorshipTypeApiControllerTest" }
94+
- { name: "OAuth2SummitSubmissionInvitationApiTest", filter: "--filter test/OAuth2SummitSubmissionInvitationApiTest" }
95+
- { name: "OAuth2SummitSubmittersApiTest", filter: "--filter test/OAuth2SummitSubmittersApiTest" }
96+
- { name: "OAuth2SummitTaxTypeApiTest", filter: "--filter test/OAuth2SummitTaxTypeApiTest" }
97+
- { name: "OAuth2SummitTicketTypesApiTest", filter: "--filter tests/OAuth2SummitTicketTypesApiTest" }
98+
- { name: "OAuth2SummitTicketsApiTest", filter: "--filter tests/OAuth2SummitTicketsApiTest" }
99+
- { name: "OAuth2SummitTrackChairsApiTest", filter: "--filter tests/OAuth2SummitTrackChairsApiTest" }
100+
- { name: "OAuth2SummitTrackChairsRankingApiTest", filter: "--filter tests/OAuth2SummitTrackChairsRankingApiTest" }
101+
- { name: "OAuth2TrackGroupsApiTest", filter: "--filter tests/OAuth2TrackGroupsApiTest" }
102+
- { name: "OAuth2TrackQuestionsTemplateTest", filter: "--filter tests/OAuth2TrackQuestionsTemplateTest" }
103+
- { name: "OAuth2SummitBadgeTypeApiTest", filter: "--filter tests/OAuth2SummitBadgeTypeApiTest" }
104+
- { name: "OAuth2SummitBadgeViewTypeApiTest", filter: "--filter tests/OAuth2SummitBadgeViewTypeApiTest" }
105+
- { name: "OAuth2SummitDocumentsApiControllerTest", filter: "--filter tests/OAuth2SummitDocumentsApiControllerTest" }
106+
- { name: "OAuth2SummitEmailEventFlowApiControllerTest", filter: "--filter tests/OAuth2SummitEmailEventFlowApiControllerTest" }
107+
- { name: "OAuth2SummitEventsBulkActionsTest", filter: "--filter tests/OAuth2SummitEventsBulkActionsTest" }
108+
- { name: "OAuth2SummitLocationsApiTest", filter: "--filter tests/OAuth2SummitLocationsApiTest" }
109+
- { name: "OAuth2RSVPSummitEventApiTest", filter: "--filter tests/OAuth2RSVPSummitEventApiTest" }
110+
- { name: "OAuth2SpeakerActiveInvolvementApiTest", filter: "--filter tests/OAuth2SpeakerActiveInvolvementApiTest" }
111+
- { name: "OAuth2SpeakerOrganizationalRoleApiTest", filter: "--filter tests/OAuth2SpeakerOrganizationalRoleApiTest" }
112+
- { name: "OAuth2SpeakersAssistancesApiTest", filter: "--filter tests/OAuth2SpeakersAssistancesApiTest" }
113+
- { name: "OAuth2SponsoredProjectsApiTest", filter: "--filter tests/OAuth2SponsoredProjectsApiTest" }
114+
- { name: "OAuth2SummitAccessLevelTypeTest", filter: "--filter tests/OAuth2SummitAccessLevelTypeTest" }
115+
- { name: "OAuth2SummitAdministratorPermissionGroupApiControllerTest", filter: "--filter tests/OAuth2SummitAdministratorPermissionGroupApiControllerTest" }
116+
- { name: "OAuth2SummitAttendeeBadgePrintApiControllerTest", filter: "--filter tests/OAuth2SummitAttendeeBadgePrintApiControllerTest" }
117+
- { name: "OAuth2SummitAttendeeNotesApiTest", filter: "--filter tests/OAuth2SummitAttendeeNotesApiTest" }
118+
- { name: "OAuth2SummitBadgeFeatureTypeApiTest", filter: "--filter tests/OAuth2SummitBadgeFeatureTypeApiTest" }
119+
- { name: "OAuth2SummitMediaFileTypeApiControllerTest", filter: "--filter tests/OAuth2SummitMediaFileTypeApiControllerTest" }
120+
- { name: "OAuth2SummitMediaUploadTypeApiControllerTest", filter: "--filter tests/OAuth2SummitMediaUploadTypeApiControllerTest" }
121+
- { name: "OAuth2SummitMetricsApiControllerTest", filter: "--filter tests/OAuth2SummitMetricsApiControllerTest" }
122+
- { name: "OAuth2SummitNotificationsApiControllerTest", filter: "--filter tests/OAuth2SummitNotificationsApiControllerTest" }
123+
- { name: "OAuth2SummitOrderExtraQuestionTypeApiTest", filter: "--filter tests/OAuth2SummitOrderExtraQuestionTypeApiTest" }
124+
- { name: "OAuth2SummitOrdersApiTest", filter: "--filter tests/OAuth2SummitOrdersApiTest" }
125+
- { name: "OAuth2SummitPresentationActionApiTest", filter: "--filter tests/OAuth2SummitPresentationActionApiTest" }
126+
- { name: "OAuth2SummitPresentationActionTypeApiTest", filter: "--filter tests/OAuth2SummitPresentationActionTypeApiTest" }
127+
- { name: "OAuth2SummitProposedScheduleApiTest", filter: "--filter tests/OAuth2SummitProposedScheduleApiTest" }
128+
- { name: "OAuth2SummitProposedScheduleAllowedLocationApiControllerTest", filter: "--filter tests/OAuth2SummitProposedScheduleAllowedLocationApiControllerTest" }
129+
- { name: "OAuth2SummitRefundPolicyTypeApiTest", filter: "--filter tests/OAuth2SummitRefundPolicyTypeApiTest" }
130+
- { name: "OAuth2SummitRegistrationCompaniesApiTest", filter: "--filter tests/OAuth2SummitRegistrationCompaniesApiTest" }
131+
- { name: "OAuth2SummitRegistrationInvitationApiControllerTest", filter: "--filter tests/OAuth2SummitRegistrationInvitationApiControllerTest" }
132+
- { name: "OAuth2SummitRSVPTemplateApiTest", filter: "--filter tests/OAuth2SummitRSVPTemplateApiTest" }
133+
- { name: "OAuth2SummitScheduleSettingsApiTest", filter: "--filter tests/OAuth2SummitScheduleSettingsApiTest" }
134+
- { name: "OAuth2SummitSelectedPresentationListApiTest", filter: "--filter tests/OAuth2SummitSelectedPresentationListApiTest" }
135+
- { name: "OAuth2SummitSelectionPlanExtraQuestionTypeApiTest", filter: "--filter tests/OAuth2SummitSelectionPlanExtraQuestionTypeApiTest" }
136+
- { name: "OAuth2SummitSelectionPlansApiTest", filter: "--filter tests/OAuth2SummitSelectionPlansApiTest" }
72137
env:
73138
OTEL_SERVICE_ENABLED: false
74139
APP_ENV: testing

app/Http/Controllers/Apis/Protected/Main/OAuth2ElectionsApiController.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ class OAuth2ElectionsApiController extends OAuth2ProtectedController
3636

3737
use RequestProcessor;
3838

39+
use GetAndValidateJsonPayload;
40+
3941
/**
4042
* @var IElectionService
4143
*/

app/ModelSerializers/Summit/Registration/SummitRegistrationInvitationCSVSerializer.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ class SummitRegistrationInvitationCSVSerializer extends SilverStripeSerializer
2020
{
2121
protected static $array_mappings = [
2222
'MemberId' => 'member_id:json_int',
23-
'OrderId' => 'order_id:json_int',
2423
'SummitId' => 'summit_id:json_int',
2524
'FirstName' => 'first_name:json_string',
2625
'LastName' => 'last_name:json_string',
@@ -66,4 +65,4 @@ public function serialize($expand = null, array $fields = [], array $relations =
6665

6766
return $values;
6867
}
69-
}
68+
}

app/Models/Foundation/Summit/Registration/Attendees/SummitAttendee.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,7 @@ public function getRsvpByEvent($event_id)
440440
* @param int $ticket_id
441441
* @return SummitAttendeeTicket
442442
*/
443-
public function getTicketById($ticket_id)
443+
public function getTicketById(int $ticket_id)
444444
{
445445
$ticket = $this->tickets->matching(
446446
$criteria = Criteria::create()
@@ -1223,8 +1223,8 @@ public function getBoughtTicketTypes(): array
12231223
{
12241224
try {
12251225
$sql = <<<SQL
1226-
SELECT TicketTypeID AS type_id, COUNT(SummitTicketType.ID) AS qty, SummitTicketType.Name AS type_name FROM `SummitAttendeeTicket`
1227-
INNER JOIN SummitTicketType ON SummitTicketType.ID = SummitAttendeeTicket.TicketTypeID
1226+
SELECT TicketTypeID AS type_id, COUNT(SummitTicketType.ID) AS qty, SummitTicketType.Name AS type_name FROM `SummitAttendeeTicket`
1227+
INNER JOIN SummitTicketType ON SummitTicketType.ID = SummitAttendeeTicket.TicketTypeID
12281228
WHERE OwnerID = :owner_id AND
12291229
SummitAttendeeTicket.IsActive = 1 AND
12301230
SummitAttendeeTicket.Status = 'Paid'
@@ -1311,12 +1311,12 @@ public function getAllowedBadgeFeatures(bool $exclude_deactivated_tickets = true
13111311
}
13121312

13131313
$query = <<<SQL
1314-
SELECT DISTINCT E.*
1314+
SELECT DISTINCT E.*
13151315
FROM SummitBadgeFeatureType E
13161316
INNER JOIN SummitAttendeeBadge_Features ON SummitAttendeeBadge_Features.SummitBadgeFeatureTypeID = E.ID
13171317
INNER JOIN SummitAttendeeBadge ON SummitAttendeeBadge.ID = SummitAttendeeBadge_Features.SummitAttendeeBadgeID
13181318
INNER JOIN SummitAttendeeTicket ON SummitAttendeeTicket.ID = SummitAttendeeBadge.TicketID
1319-
WHERE SummitAttendeeTicket.OwnerID = :owner_id
1319+
WHERE SummitAttendeeTicket.OwnerID = :owner_id
13201320
AND SummitAttendeeTicket.Status = 'Paid'
13211321
{$extra_where}
13221322
UNION
@@ -1615,4 +1615,4 @@ public function isTicketActive(string $ticket_number): bool
16151615
public function setLastReminderEmailSentDate(?\DateTime $last_reminder_email_sent_date): void{
16161616
$this->last_reminder_email_sent_date = $last_reminder_email_sent_date;
16171617
}
1618-
}
1618+
}

app/Services/Model/Imp/SummitTicketTypeService.php

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -319,17 +319,6 @@ public function seedSummitTicketTypesFromEventBrite(Summit $summit)
319319
$res[] = $new_ticket_type;
320320
}
321321

322-
foreach ($res as $ticket_type) {
323-
Event::dispatch
324-
(
325-
new SummitTicketTypeInserted
326-
(
327-
$ticket_type->getId(),
328-
$ticket_type->getSummitId()
329-
)
330-
);
331-
}
332-
333322
++$page;
334323
} while ($has_more_items);
335324

@@ -410,4 +399,4 @@ public function updateCurrencySymbol(Summit $summit, string $currency_symbol): v
410399
}
411400
});
412401
}
413-
}
402+
}

database/seeders/ApiEndpointsSeeder.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6506,7 +6506,7 @@ private function seedSummitEndpoints()
65066506
],
65076507
[
65086508
'name' => 'get-attendees-votes',
6509-
'route' => '/api/v1/summits/{id}/presentations/{id}/attendee-votes',
6509+
'route' => '/api/v1/summits/{id}/presentations/{presentation_id}/attendee-votes',
65106510
'http_method' => 'GET',
65116511
'scopes' => [
65126512
SummitScopes::ReadSummitData,
@@ -6723,7 +6723,7 @@ private function seedSummitEndpoints()
67236723
],
67246724
[
67256725
'name' => 'get-presentation-video',
6726-
'route' => '/api/v1/summits/{id}/presentations/{presentation_id}/video/{video_id}',
6726+
'route' => '/api/v1/summits/{id}/presentations/{presentation_id}/videos/{video_id}',
67276727
'http_method' => 'GET',
67286728
'scopes' => [
67296729
SummitScopes::ReadSummitData,

database/seeders/ConfigSeeder.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public function run()
3030
try {
3131
// clear all
3232
$em = Registry::getManager(ResourceServerEntity::EntityManager);
33+
$em->clear();
3334
$connection = $em->getConnection();
3435
$connection->beginTransaction();
3536
$statements = [
@@ -53,4 +54,4 @@ public function run()
5354
Log::error($ex);
5455
}
5556
}
56-
}
57+
}

routes/api_v1.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1346,7 +1346,7 @@
13461346

13471347
// sponsor services statistics
13481348
Route::group(['prefix' => 'sponsorservices-statistics'], function(){
1349-
Route::put('', ['uses' => 'OAuth2SummitSponsorApiController@updateSponsorServicesStatistics']);
1349+
Route::put('', ['middleware' => 'auth.user', 'uses' => 'OAuth2SummitSponsorApiController@updateSponsorServicesStatistics']);
13501350
});
13511351
});
13521352
});

tests/BrowserKitTestCase.php

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ abstract class BrowserKitTestCase extends BaseTestCase {
3737
*/
3838
protected $baseUrl = "http://localhost";
3939

40+
private static $seeding_done = false;
41+
4042
protected function setUp(): void {
4143
parent::setUp(); // Don't forget this!
4244
$this->redis = Redis::connection();
@@ -53,21 +55,26 @@ protected function prepareForTests(): void {
5355
// see https://laravel.com/docs/9.x/mocking#mail-fake
5456
Mail::fake();
5557
Model::unguard();
56-
// clean up
57-
DB::setDefaultConnection("model");
58-
Artisan::call("doctrine:migrations:migrate", ["--em" => "config", "--no-interaction" => true]);
59-
Artisan::call("doctrine:migrations:migrate", ["--em" => "model", "--no-interaction" => true]);
58+
if(!self::$seeding_done) {
59+
// clean up
60+
DB::setDefaultConnection("model");
61+
Artisan::call("doctrine:migrations:migrate", ["--em" => "config", "--no-interaction" => true]);
62+
Artisan::call("doctrine:migrations:migrate", ["--em" => "model", "--no-interaction" => true]);
63+
64+
DB::setDefaultConnection("config");
65+
66+
DB::delete("DELETE FROM endpoint_api_scopes");
67+
DB::delete("DELETE FROM endpoint_api_authz_groups");
68+
DB::delete("DELETE FROM api_scopes");
69+
DB::delete("DELETE FROM api_endpoints");
70+
DB::delete("DELETE FROM apis");
6071

61-
DB::setDefaultConnection("config");
6272

63-
DB::delete("DELETE FROM endpoint_api_scopes");
64-
DB::delete("DELETE FROM endpoint_api_authz_groups");
65-
DB::delete("DELETE FROM api_scopes");
66-
DB::delete("DELETE FROM api_endpoints");
67-
DB::delete("DELETE FROM apis");
73+
$this->seed(ConfigSeeder::class);
6874

69-
$this->seed(ConfigSeeder::class);
70-
$this->seed(MainDataSeeder::class);
71-
$this->seed(SummitEmailFlowTypeSeeder::class);
75+
$this->seed(MainDataSeeder::class);
76+
$this->seed(SummitEmailFlowTypeSeeder::class);
77+
self::$seeding_done = true;
78+
}
7279
}
73-
}
80+
}

tests/InsertSummitTestData.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1008,7 +1008,9 @@ protected static function clearSummitTestData(){
10081008
self::$em->remove(self::$summit);
10091009
self::$em->remove(self::$summit2);
10101010
self::$em->remove(self::$summit_permission_group);
1011-
self::$em->remove(self::$default_media_file_type);
1011+
if (!is_null(self::$default_media_file_type)) {
1012+
self::$em->remove(self::$default_media_file_type);
1013+
}
10121014
self::$em->flush();
10131015

10141016
// reset static vars

0 commit comments

Comments
 (0)