'Assign Announcement To Segment', 'message' => 'You have successfully assigned Announcement to segment' ]; } /** @var FetchesAnnouncement */ private $fetchesAnnouncement; /** @var AssignAnnouncementToSegmentProcessor */ private $assignAnnouncementToSegmentProcessor; /** * AssignAnnouncementToSegmentLogic constructor. * @param FetchesAnnouncement $fetchesAnnouncement * @param AssignAnnouncementToSegmentProcessor $assignAnnouncementToSegmentProcessor */ public function __construct(FetchesAnnouncement $fetchesAnnouncement, AssignAnnouncementToSegmentProcessor $assignAnnouncementToSegmentProcessor) { $this->fetchesAnnouncement = $fetchesAnnouncement; $this->assignAnnouncementToSegmentProcessor = $assignAnnouncementToSegmentProcessor; } /** * @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 { $announcement = $this->fetchesAnnouncement->execute(['id' => $request->route('id')]); $this->assignAnnouncementToSegmentProcessor->execute($announcement, $request->input('segment_id')); return $this->resourceResponse(new AnnouncementResource($announcement)); } }