SuiteCRM-Core/Api/V8/Param/DeleteRelationshipParams.php
Dillon-Brown 8e4cc94994 Squashed 'public/legacy/' content from commit 817a12dc0
git-subtree-dir: public/legacy
git-subtree-split: 817a12dc0c30c189f56d5cb1f7dc37a9631bdbe3
2021-03-31 15:37:32 +01:00

85 lines
2 KiB
PHP

<?php
namespace Api\V8\Param;
use Api\V8\Param\Options as ParamOption;
use Symfony\Component\OptionsResolver\Options;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints as Assert;
class DeleteRelationshipParams extends BaseParam
{
/**
* @return string
*/
public function getModuleName()
{
return $this->parameters['moduleName'];
}
/**
* @return string
*/
public function getId()
{
return $this->parameters['id'];
}
/**
* @return string
*/
public function getLinkedFieldName()
{
return $this->parameters['linkFieldName'];
}
/**
* @return string
*/
public function getRelatedBeanId()
{
return $this->parameters['relatedBeanId'];
}
/**
* @return \SugarBean
*/
public function getSourceBean()
{
return $this->parameters['sourceBean'];
}
/**
* @inheritdoc
*/
protected function configureParameters(OptionsResolver $resolver)
{
$this->setOptions(
$resolver,
[
ParamOption\ModuleName::class,
ParamOption\Id::class,
]
);
$resolver
->setRequired('relatedBeanId')
->setAllowedTypes('relatedBeanId', 'string')
->setAllowedValues('relatedBeanId', $this->validatorFactory->createClosure([
new Assert\NotBlank(),
new Assert\Uuid(['strict' => false]),
]));
$resolver
->setDefined('sourceBean')
->setDefault('sourceBean', function (Options $options) {
return $this->beanManager->getBeanSafe(
$options->offsetGet('moduleName'),
$options->offsetGet('id')
);
})
->setAllowedTypes('sourceBean', \SugarBean::class);
// dependency on sourceBean field
$this->setOptions($resolver, [ParamOption\LinkFieldName::class]);
}
}