Skip to content

Commit 1baee78

Browse files
Merge pull request #5 from lepidus/main
Feature/fixed delete mutations
2 parents 6d77216 + d7ee200 commit 1baee78

3 files changed

Lines changed: 89 additions & 105 deletions

File tree

src/GraphQL/Client.php

Lines changed: 70 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -325,257 +325,257 @@ public function workCount(): int
325325

326326
public function createAffiliation(Affiliation $affiliation): string
327327
{
328-
return $this->mutation('createAffiliation', $affiliation, 'affiliationId');
328+
return $this->mutation('createAffiliation', $affiliation->getAllData(), 'affiliationId');
329329
}
330330

331331
public function updateAffiliation(Affiliation $affiliation): string
332332
{
333-
return $this->mutation('updateAffiliation', $affiliation, 'affiliationId');
333+
return $this->mutation('updateAffiliation', $affiliation->getAllData(), 'affiliationId');
334334
}
335335

336-
public function deleteAffiliation(Affiliation $affiliation): string
336+
public function deleteAffiliation(string $affiliationId): string
337337
{
338-
return $this->mutation('deleteAffiliation', $affiliation, 'affiliationId');
338+
return $this->mutation('deleteAffiliation', ['affiliationId' => $affiliationId], 'affiliationId');
339339
}
340340

341341
public function createContribution(Contribution $contribution): string
342342
{
343-
return $this->mutation('createContribution', $contribution, 'contributionId');
343+
return $this->mutation('createContribution', $contribution->getAllData(), 'contributionId');
344344
}
345345

346346
public function updateContribution(Contribution $contribution): string
347347
{
348-
return $this->mutation('updateContribution', $contribution, 'contributionId');
348+
return $this->mutation('updateContribution', $contribution->getAllData(), 'contributionId');
349349
}
350350

351-
public function deleteContribution(Contribution $contribution): string
351+
public function deleteContribution(string $contributionId): string
352352
{
353-
return $this->mutation('deleteContribution', $contribution, 'contributionId');
353+
return $this->mutation('deleteContribution', ['contributionId' => $contributionId], 'contributionId');
354354
}
355355

356356
public function createContributor(Contributor $contributor): string
357357
{
358-
return $this->mutation('createContributor', $contributor, 'contributorId');
358+
return $this->mutation('createContributor', $contributor->getAllData(), 'contributorId');
359359
}
360360

361361
public function updateContributor(Contributor $contributor): string
362362
{
363-
return $this->mutation('updateContributor', $contributor, 'contributorId');
363+
return $this->mutation('updateContributor', $contributor->getAllData(), 'contributorId');
364364
}
365365

366-
public function deleteContributor(Contributor $contributor): string
366+
public function deleteContributor(string $contributorId): string
367367
{
368-
return $this->mutation('deleteContributor', $contributor, 'contributorId');
368+
return $this->mutation('deleteContributor', ['contributorId' => $contributorId], 'contributorId');
369369
}
370370

371371
public function createFunding(Funding $funding): string
372372
{
373-
return $this->mutation('createFunding', $funding, 'fundingId');
373+
return $this->mutation('createFunding', $funding->getAllData(), 'fundingId');
374374
}
375375

376376
public function updateFunding(Funding $funding): string
377377
{
378-
return $this->mutation('updateFunding', $funding, 'fundingId');
378+
return $this->mutation('updateFunding', $funding->getAllData(), 'fundingId');
379379
}
380380

381-
public function deleteFunding(Funding $funding): string
381+
public function deleteFunding(string $fundingId): string
382382
{
383-
return $this->mutation('deleteFunding', $funding, 'fundingId');
383+
return $this->mutation('deleteFunding', ['fundingId' => $fundingId], 'fundingId');
384384
}
385385

386386
public function createImprint(Imprint $imprint): string
387387
{
388-
return $this->mutation('createImprint', $imprint, 'imprintId');
388+
return $this->mutation('createImprint', $imprint->getAllData(), 'imprintId');
389389
}
390390

391391
public function updateImprint(Imprint $imprint): string
392392
{
393-
return $this->mutation('updateImprint', $imprint, 'imprintId');
393+
return $this->mutation('updateImprint', $imprint->getAllData(), 'imprintId');
394394
}
395395

396-
public function deleteImprint(Imprint $imprint): string
396+
public function deleteImprint(string $imprintId): string
397397
{
398-
return $this->mutation('deleteImprint', $imprint, 'imprintId');
398+
return $this->mutation('deleteImprint', ['imprintId' => $imprintId], 'imprintId');
399399
}
400400

401401
public function createInstitution(Institution $institution): string
402402
{
403-
return $this->mutation('createInstitution', $institution, 'institutionId');
403+
return $this->mutation('createInstitution', $institution->getAllData(), 'institutionId');
404404
}
405405

406406
public function updateInstitution(Institution $institution): string
407407
{
408-
return $this->mutation('updateInstitution', $institution, 'institutionId');
408+
return $this->mutation('updateInstitution', $institution->getAllData(), 'institutionId');
409409
}
410410

411-
public function deleteInstitution(Institution $institution): string
411+
public function deleteInstitution(string $institutionId): string
412412
{
413-
return $this->mutation('deleteInstitution', $institution, 'institutionId');
413+
return $this->mutation('deleteInstitution', ['institutionId' => $institutionId], 'institutionId');
414414
}
415415

416416
public function createIssue(Issue $issue): string
417417
{
418-
return $this->mutation('createIssue', $issue, 'issueId');
418+
return $this->mutation('createIssue', $issue->getAllData(), 'issueId');
419419
}
420420

421421
public function updateIssue(Issue $issue): string
422422
{
423-
return $this->mutation('updateIssue', $issue, 'issueId');
423+
return $this->mutation('updateIssue', $issue->getAllData(), 'issueId');
424424
}
425425

426-
public function deleteIssue(Issue $issue): string
426+
public function deleteIssue(string $issueId): string
427427
{
428-
return $this->mutation('deleteIssue', $issue, 'issueId');
428+
return $this->mutation('deleteIssue', ['issueId' => $issueId], 'issueId');
429429
}
430430

431431
public function createLanguage(Language $language): string
432432
{
433-
return $this->mutation('createLanguage', $language, 'languageId');
433+
return $this->mutation('createLanguage', $language->getAllData(), 'languageId');
434434
}
435435

436436
public function updateLanguage(Language $language): string
437437
{
438-
return $this->mutation('updateLanguage', $language, 'languageId');
438+
return $this->mutation('updateLanguage', $language->getAllData(), 'languageId');
439439
}
440440

441-
public function deleteLanguage(Language $language): string
441+
public function deleteLanguage(string $languageId): string
442442
{
443-
return $this->mutation('deleteLanguage', $language, 'languageId');
443+
return $this->mutation('deleteLanguage', ['languageId' => $languageId], 'languageId');
444444
}
445445

446446
public function createLocation(Location $location): string
447447
{
448-
return $this->mutation('createLocation', $location, 'locationId');
448+
return $this->mutation('createLocation', $location->getAllData(), 'locationId');
449449
}
450450

451451
public function updateLocation(Location $location): string
452452
{
453-
return $this->mutation('updateLocation', $location, 'locationId');
453+
return $this->mutation('updateLocation', $location->getAllData(), 'locationId');
454454
}
455455

456-
public function deleteLocation(Location $location): string
456+
public function deleteLocation(string $locationId): string
457457
{
458-
return $this->mutation('deleteLocation', $location, 'locationId');
458+
return $this->mutation('deleteLocation', ['locationId' => $locationId], 'locationId');
459459
}
460460

461461
public function createPrice(Price $price): string
462462
{
463-
return $this->mutation('createPrice', $price, 'priceId');
463+
return $this->mutation('createPrice', $price->getAllData(), 'priceId');
464464
}
465465

466466
public function updatePrice(Price $price): string
467467
{
468-
return $this->mutation('updatePrice', $price, 'priceId');
468+
return $this->mutation('updatePrice', $price->getAllData(), 'priceId');
469469
}
470470

471-
public function deletePrice(Price $price): string
471+
public function deletePrice(string $priceId): string
472472
{
473-
return $this->mutation('deletePrice', $price, 'priceId');
473+
return $this->mutation('deletePrice', ['priceId' => $priceId], 'priceId');
474474
}
475475

476476
public function createPublication(Publication $publication): string
477477
{
478-
return $this->mutation('createPublication', $publication, 'publicationId');
478+
return $this->mutation('createPublication', $publication->getAllData(), 'publicationId');
479479
}
480480

481481
public function updatePublication(Publication $publication): string
482482
{
483-
return $this->mutation('updatePublication', $publication, 'publicationId');
483+
return $this->mutation('updatePublication', $publication->getAllData(), 'publicationId');
484484
}
485485

486-
public function deletePublication(Publication $publication): string
486+
public function deletePublication(string $publicationId): string
487487
{
488-
return $this->mutation('deletePublication', $publication, 'publicationId');
488+
return $this->mutation('deletePublication', ['publicationId' => $publicationId], 'publicationId');
489489
}
490490

491491
public function createPublisher(Publisher $publisher): string
492492
{
493-
return $this->mutation('createPublisher', $publisher, 'publisherId');
493+
return $this->mutation('createPublisher', $publisher->getAllData(), 'publisherId');
494494
}
495495

496496
public function updatePublisher(Publisher $publisher): string
497497
{
498-
return $this->mutation('updatePublisher', $publisher, 'publisherId');
498+
return $this->mutation('updatePublisher', $publisher->getAllData(), 'publisherId');
499499
}
500500

501-
public function deletePublisher(Publisher $publisher): string
501+
public function deletePublisher(string $publisherId): string
502502
{
503-
return $this->mutation('deletePublisher', $publisher, 'publisherId');
503+
return $this->mutation('deletePublisher', ['publisherId' => $publisherId], 'publisherId');
504504
}
505505

506506
public function createReference(Reference $reference): string
507507
{
508-
return $this->mutation('createReference', $reference, 'referenceId');
508+
return $this->mutation('createReference', $reference->getAllData(), 'referenceId');
509509
}
510510

511511
public function updateReference(Reference $reference): string
512512
{
513-
return $this->mutation('updateReference', $reference, 'referenceId');
513+
return $this->mutation('updateReference', $reference->getAllData(), 'referenceId');
514514
}
515515

516-
public function deleteReference(Reference $reference): string
516+
public function deleteReference(string $referenceId): string
517517
{
518-
return $this->mutation('deleteReference', $reference, 'referenceId');
518+
return $this->mutation('deleteReference', ['referenceId' => $referenceId], 'referenceId');
519519
}
520520

521521
public function createSeries(Series $series): string
522522
{
523-
return $this->mutation('createSeries', $series, 'seriesId');
523+
return $this->mutation('createSeries', $series->getAllData(), 'seriesId');
524524
}
525525

526526
public function updateSeries(Series $series): string
527527
{
528-
return $this->mutation('updateSeries', $series, 'seriesId');
528+
return $this->mutation('updateSeries', $series->getAllData(), 'seriesId');
529529
}
530530

531-
public function deleteSeries(Series $series): string
531+
public function deleteSeries(string $seriesId): string
532532
{
533-
return $this->mutation('deleteSeries', $series, 'seriesId');
533+
return $this->mutation('deleteSeries', ['seriesId' => $seriesId], 'seriesId');
534534
}
535535

536536
public function createSubject(Subject $subject): string
537537
{
538-
return $this->mutation('createSubject', $subject, 'subjectId');
538+
return $this->mutation('createSubject', $subject->getAllData(), 'subjectId');
539539
}
540540

541541
public function updateSubject(Subject $subject): string
542542
{
543-
return $this->mutation('updateSubject', $subject, 'subjectId');
543+
return $this->mutation('updateSubject', $subject->getAllData(), 'subjectId');
544544
}
545545

546-
public function deleteSubject(Subject $subject): string
546+
public function deleteSubject(string $subjectId): string
547547
{
548-
return $this->mutation('deleteSubject', $subject, 'subjectId');
548+
return $this->mutation('deleteSubject', ['subjectId' => $subjectId], 'subjectId');
549549
}
550550

551551
public function createWork(Work $work): string
552552
{
553-
return $this->mutation('createWork', $work, 'workId');
553+
return $this->mutation('createWork', $work->getAllData(), 'workId');
554554
}
555555

556556
public function updateWork(Work $work): string
557557
{
558-
return $this->mutation('updateWork', $work, 'workId');
558+
return $this->mutation('updateWork', $work->getAllData(), 'workId');
559559
}
560560

561-
public function deleteWork(Work $work): string
561+
public function deleteWork(string $workId): string
562562
{
563-
return $this->mutation('deleteWork', $work, 'workId');
563+
return $this->mutation('deleteWork', ['workId' => $workId], 'workId');
564564
}
565565

566566
public function createWorkRelation(WorkRelation $workRelation): string
567567
{
568-
return $this->mutation('createWorkRelation', $workRelation, 'workRelationId');
568+
return $this->mutation('createWorkRelation', $workRelation->getAllData(), 'workRelationId');
569569
}
570570

571571
public function updateWorkRelation(WorkRelation $workRelation): string
572572
{
573-
return $this->mutation('updateWorkRelation', $workRelation, 'workRelationId');
573+
return $this->mutation('updateWorkRelation', $workRelation->getAllData(), 'workRelationId');
574574
}
575575

576-
public function deleteWorkRelation(WorkRelation $workRelation): string
576+
public function deleteWorkRelation(string $workRelationId): string
577577
{
578-
return $this->mutation('deleteWorkRelation', $workRelation, 'workRelationId');
578+
return $this->mutation('deleteWorkRelation', ['workRelationId' => $workRelationId], 'workRelationId');
579579
}
580580

581581
public function rawQuery(string $rawQuery, array $args = []): array
@@ -624,9 +624,9 @@ private function getByDoi(string $entityName, string $doi): AbstractModel
624624
return new $entityClass($result[$queryName]);
625625
}
626626

627-
private function mutation(string $mutationName, AbstractModel $mutationObject, string $returnValue): string
627+
private function mutation(string $mutationName, array $data, string $returnValue): string
628628
{
629-
$mutation = MutationBuilder::build($mutationName, $mutationObject->getAllData());
629+
$mutation = MutationBuilder::build($mutationName, $data);
630630
$response = $this->request->runQuery($mutation, null, $this->token);
631631
$data = $response->getData();
632632
return $data[$mutationName][$returnValue];

src/GraphQL/MutationBuilder.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@
44

55
class MutationBuilder
66
{
7-
public static function build(string $mutationName, array $mutationData, bool $nested = true): string
7+
public static function build(string $mutationName, array $mutationData): string
88
{
99
$mutationFields = self::getMutationFields($mutationName);
1010
if ($mutationFields === null) {
1111
throw new \InvalidArgumentException("Mutation '{$mutationName}' not found.");
1212
}
1313

14+
$nested = !str_contains($mutationName, 'delete');
1415
$fields = $mutationFields['fields'];
1516
$returnValue = $mutationFields['returnValue'];
1617
$data = self::prepareData($fields, $mutationData);

0 commit comments

Comments
 (0)