'Created ChatGPT Prompt', 'message' => 'You have successfully created a new ChatGPT Prompt' ]; } /** @var CanCreateChatGPTPrompt */ private $canCreateChatGPTPrompt; /** @var CreatesKeyValuePair */ private $createsKeyValuePair; /** * CreateChatGPTPromptKVPLogic constructor. * @param CanCreateChatGPTPrompt $canCreateChatGPTPrompt * @param CreatesKeyValuePair $createsKeyValuePair */ public function __construct( CanCreateChatGPTPrompt $canCreateChatGPTPrompt, CreatesKeyValuePair $createsKeyValuePair ) { $this->canCreateChatGPTPrompt = $canCreateChatGPTPrompt; $this->createsKeyValuePair = $createsKeyValuePair; } /** * @param Request $request * @return JsonResponse * @throws \App\Classes\Exceptions\AccessForbiddenException * @throws \App\Classes\Exceptions\MalformedRequestException * @throws \App\Classes\Exceptions\RequestValidationException */ public function logic(Request $request): JsonResponse { $dto = new CreateChatGPTPromptDTO($request->all()); $this->canCreateChatGPTPrompt->passes($dto); $key = KVPKey::CHATGPT_PROMPT_PREFIX . strtoupper(str_replace(' ', '_', $dto->getTitle())); $keyValuePairObject = new KeyValuePairObject($key, $dto->getPrompt()); $kvp = $this->createsKeyValuePair->execute(null, $keyValuePairObject); return $this->resourceResponse(new ChatGPTPromptResource($kvp)); } }