<?php
/**
* Copyright (c) 2020 by Noma Solutions.
* This software is the proprietary information of Noma Solutions.
*
* All Right Reserved.
*/
namespace NomaSolutions\API\Annotations\Operations\Command;
use NomaSolutions\API\Annotations\ApiResource;
use NomaSolutions\API\Annotations\Operations\AbstractOperation;
use NomaSolutions\API\Model\EmptyObject;
abstract class AbstractCommand extends AbstractOperation
{
public function __construct(array $values)
{
parent::__construct($values);
$this->method = $values['method'] ?? 'POST';
}
public function enrich(ApiResource $resource)
{
parent::enrich($resource);
$this->input = $this->input ? $this->input : ($this->input !== false ? $this->resource->getBaseClassFqcn() : EmptyObject::class);
}
function getOperationName(): string
{
return strpos(
$this->operationName,
'Handler'
) !== false ? $this->operationName : $this->operationName.'Handler';
}
public function getOperationId(): string
{
$modelName = $this->getInputModelName() ?? $this->resource->getBaseClassFqcn();
return $this->operationId ?? $modelName.$this->getOperationName();
}
}