Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/Collections/Tags.php
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public function create($tag)
{
$params = [$tag => ['sites' => [$this->org_site_membership->getSite()->id,],],];
$this->request->request(
"organizations/{$this->org_site_membership->getOrganization()->id}/tags",
"organizations/{$this->org_site_membership->id}/tags",
['method' => 'put', 'form_params' => $params,]
);
$this->getContainer()->add($this->collected_class)
Expand Down
17 changes: 12 additions & 5 deletions src/Commands/Tag/TagCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,29 @@
namespace Pantheon\Terminus\Commands\Tag;

use Pantheon\Terminus\Commands\TerminusCommand;
use Pantheon\Terminus\Site\SiteAwareInterface;
use Pantheon\Terminus\Site\SiteAwareTrait;

/**
* Class TagCommand
* @package Pantheon\Terminus\Commands\Tag
*/
abstract class TagCommand extends TerminusCommand
abstract class TagCommand extends TerminusCommand implements SiteAwareInterface
{
use SiteAwareTrait;

/**
* @param $site_id
* @param $site_identifier
* @param $org_id
* @return array
*/
protected function getModels($site_id, $org_id)
protected function getModels($site_identifier, $org_id)
{
$site = $this->sites->get($site_identifier);
$site_id = $site->id;

$organization = $this->session()->getUser()->getOrganizationMemberships()->get($org_id)->getOrganization();
$membership = $organization->getSiteMemberships()->get($site_id);
return [$organization, $membership->getSite(), $membership->getTags(),];
$membership = $organization->getSiteMembership($site_id);
return [$organization, $site, $membership->getTags(),];
}
}
21 changes: 21 additions & 0 deletions src/Models/Organization.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
use Pantheon\Terminus\Collections\OrganizationUpstreams;
use Pantheon\Terminus\Collections\OrganizationUserMemberships;
use Pantheon\Terminus\Collections\Workflows;
use Pantheon\Terminus\Models\OrganizationSiteMembership;
use Pantheon\Terminus\Friends\ProfileInterface;
use Pantheon\Terminus\Friends\ProfileTrait;
use Pantheon\Terminus\Friends\SitesInterface;
Expand Down Expand Up @@ -140,6 +141,26 @@ public function getSiteMemberships()
return $this->site_memberships;
}

/**
* Fetch a single site membership directly by site ID or name
*
* @param string $site_identifier The site ID or name to fetch membership for
* @return OrganizationSiteMembership
* @throws \Pantheon\Terminus\Exceptions\TerminusNotFoundException
*/
public function getSiteMembership($site_uuid)
{
$response = $this->request->request(
"organizations/{$this->id}/memberships/sites/{$site_uuid}"
);

$nickname = \uniqid(__FUNCTION__ . '-');
$this->getContainer()->add($nickname, OrganizationSiteMembership::class)
->addArgument($response['data'])
->addArgument(['organization' => $this]);
return $this->getContainer()->get($nickname);
}

/**
* @return OrganizationUpstreams
*/
Expand Down
4 changes: 2 additions & 2 deletions src/Models/Tag.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ public function delete()
$this->request->request(
sprintf(
'organizations/%s/tags/%s/sites?entity=%s',
$membership->getOrganization()->id,
$membership->attributes->organization_id,
$this->id,
$membership->getSite()->id
$membership->attributes->site_id
),
['method' => 'delete',]
);
Expand Down
Loading