diff --git a/src/Models/PublicGroup.php b/src/Models/PublicGroup.php index cbee8edd..63c2fc64 100644 --- a/src/Models/PublicGroup.php +++ b/src/Models/PublicGroup.php @@ -4,6 +4,7 @@ namespace CTApi\Models; +use CTApi\CTConfig; use CTApi\Models\Traits\FillWithData; class PublicGroup extends Group @@ -31,6 +32,21 @@ protected function fillNonArrayType(string $key, $value): void parent::fillNonArrayType($key, $value); } + public function generateRegistrationLink(string $groupHash): string + { + $url = CTConfig::getApiUrl(); + + if ('/' != substr($url, -1)) { + $url .= '/'; + } + + $url .= 'publicgroup/' . $this->getId(); + + $url .= '?hash=' . $groupHash; + + return $url; + } + /** * @return string|null */ diff --git a/tests/integration/Requests/PublicGroupRequestTest.php b/tests/integration/Requests/PublicGroupRequestTest.php index ad379c25..59cfea79 100644 --- a/tests/integration/Requests/PublicGroupRequestTest.php +++ b/tests/integration/Requests/PublicGroupRequestTest.php @@ -36,14 +36,11 @@ public function testGetPublicGroup() $foundGroup = null; foreach ($publicGroup->getGroups() as $group) { - print_r($group); if ($group->getId() == $this->groupId) { $foundGroup = $group; } } - print_r($foundGroup); - $this->assertNotNull($foundGroup); $this->assertEquals($this->groupName, $foundGroup->getName()); diff --git a/tests/unit/Models/PublicGroupTest.php b/tests/unit/Models/PublicGroupTest.php new file mode 100644 index 00000000..e2c31cb3 --- /dev/null +++ b/tests/unit/Models/PublicGroupTest.php @@ -0,0 +1,30 @@ +setId("21"); + + $this->assertEquals("https://test.church.tools/publicgroup/21?hash=EXAMPLEHASHCODE", $publicGroup->generateRegistrationLink("EXAMPLEHASHCODE")); + + // WITH SLASH IN THE END OF URL + CTConfig::setApiUrl("https://test.church.tools/"); + + $this->assertEquals("https://test.church.tools/publicgroup/21?hash=EXAMPLEHASHCODE", $publicGroup->generateRegistrationLink("EXAMPLEHASHCODE")); + + } +} \ No newline at end of file