@@ -363,31 +363,49 @@ public function generateAuthorizationUrl(?string $organizationSlug, ?string $red
363363 }
364364
365365 /**
366- * Récupère la liste des formulaires de don d'une organisation.
366+ * Récupère la liste des formulaires d'une organisation pour les types donnés .
367367 *
368368 * @param string $organizationSlug
369+ * @param array $formTypes Liste des types de formulaires à récupérer (ex: ['Donation', 'CrowdFunding'])
369370 * @return array
370371 */
371- public function getDonationForms (string $ organizationSlug ): array
372+ public function getOrganizationForms (string $ organizationSlug, array $ formTypes = [ ' Donation ' , ' CrowdFunding ' ] ): array
372373 {
373374 $ tokenData = $ this ->getOrganizationAccessToken ($ organizationSlug );
374375
375- $ response = $ this ->httpRequest ('GET ' , "{$ this ->apiUrl }/organizations/ {$ organizationSlug }/forms " , [
376- 'query ' => [
377- 'formTypes ' => 'Donation ' ,
378- 'pageSize ' => 50 ,
379- ],
376+ // Construire la query string manuellement car Guzzle sérialise les arrays
377+ // avec des indices PHP (formTypes[0]=...) que l'API HelloAsso ne supporte pas.
378+ // L'API attend : formTypes=Donation&formTypes=CrowdFunding
379+ $ queryParts = [];
380+ foreach ($ formTypes as $ type ) {
381+ $ queryParts [] = 'formTypes= ' . urlencode ($ type );
382+ }
383+ $ queryParts [] = 'pageSize=50 ' ;
384+ $ queryString = implode ('& ' , $ queryParts );
385+
386+ $ response = $ this ->httpRequest ('GET ' , "{$ this ->apiUrl }/organizations/ {$ organizationSlug }/forms? {$ queryString }" , [
380387 'headers ' => [
381388 'Authorization ' => 'Bearer ' . $ tokenData ->access_token ,
382389 'accept ' => 'application/json ' ,
383390 ],
384- ], "la récupération des formulaires de don pour {$ organizationSlug }" );
391+ ], "la récupération des formulaires pour {$ organizationSlug }" );
385392
386393 $ data = $ this ->decodeJsonResponse ($ response );
387394
388395 return $ data ['data ' ] ?? [];
389396 }
390397
398+ /**
399+ * Récupère la liste des formulaires de don d'une organisation.
400+ *
401+ * @param string $organizationSlug
402+ * @return array
403+ */
404+ public function getDonationForms (string $ organizationSlug ): array
405+ {
406+ return $ this ->getOrganizationForms ($ organizationSlug , ['Donation ' ]);
407+ }
408+
391409 /**
392410 * Configure le domaine du client API pour une organisation donnée en utilisant un token d'accès valide.
393411 *
@@ -480,16 +498,18 @@ public function exchangeAuthorizationCode(string $code, string $redirectUri, str
480498 * @param [type] $continuationToken
481499 * @return array
482500 */
483- private function getDonationFormOrders (string $ organizationSlug , string $ donationSlug , string $ accessToken , ?string $ continuationToken = null ): array
501+ private function getDonationFormOrders (string $ organizationSlug , string $ donationSlug , string $ accessToken , ?string $ continuationToken = null , string $ formType = ' Donation ' ): array
484502 {
485503 $ query = ['withDetails ' => 'true ' , 'sortOrder ' => 'asc ' , 'pageSize ' => 100 ];
486504 if ($ continuationToken ) {
487505 $ query ['continuationToken ' ] = $ continuationToken ;
488506 }
489507
508+ $ formTypePath = $ formType ?: 'Donation ' ;
509+
490510 $ response = $ this ->httpRequest (
491511 'GET ' ,
492- "{$ this ->apiUrl }/organizations/ {$ organizationSlug }/forms/donation / {$ donationSlug }/orders " ,
512+ "{$ this ->apiUrl }/organizations/ {$ organizationSlug }/forms/ { $ formTypePath } / {$ donationSlug }/orders " ,
493513 [
494514 'query ' => $ query ,
495515 'headers ' => [
@@ -512,7 +532,7 @@ private function getDonationFormOrders(string $organizationSlug, string $donatio
512532 * @param [type] $continuationToken
513533 * @return array
514534 */
515- public function getAllOrders (string $ organizationSlug , string $ formSlug , int $ currentAmount = 0 , ?string $ continuationToken = null ): array
535+ public function getAllOrders (string $ organizationSlug , string $ formSlug , int $ currentAmount = 0 , ?string $ continuationToken = null , string $ formType = ' Donation ' ): array
516536 {
517537 $ previousToken = '' ;
518538 $ donations = [];
@@ -539,7 +559,8 @@ public function getAllOrders(string $organizationSlug, string $formSlug, int $cu
539559 $ organizationSlug ,
540560 $ formSlug ,
541561 $ organizationAccessToken ->access_token ,
542- $ continuationToken
562+ $ continuationToken ,
563+ $ formType
543564 );
544565
545566 if (!isset ($ formOrdersData ['data ' ])) {
0 commit comments