fix: create new announcement with attached standard segment.

This commit is contained in:
weichien
2021-06-08 13:33:05 +08:00
parent ec8172f7a7
commit 1fe554bcee
@@ -5,10 +5,11 @@ namespace App\Classes\Modules\Announcements\ControllersLogic;
use App\Classes\General\Abstracts\AbstractControllerLogic;
use App\Classes\Modules\Announcements\DataTransferObjects\AnnouncementObject;
use App\Classes\Modules\Announcements\Standards\Rules\CanCreateAnnouncement;
use App\Classes\Modules\Announcements\Services\CreatesAnnouncement;
use App\Classes\Modules\Announcements\Processors\AssignAnnouncementToSegmentProcessor;
use App\Classes\Modules\Announcements\DataTransferObjects\AnnouncementObject;
use App\Http\Resources\AnnouncementResource;
use ErrorException;
@@ -34,18 +35,24 @@ class CreateAnnouncementLogic extends AbstractControllerLogic
/** @var CreatesAnnoucement */
private $createsAnnoucement;
/** @var AssignAnnouncementToSegmentProcessor */
private $assignAnnouncementToSegmentProcessor;
/**
* CreateAnnouncementLogic constructor.
* @param CanCreateAnnoucement $canCreateAnnoucement
* @param CreatesAnnoucement $createsAnnoucement
* @param AssignAnnouncementToSegmentProcessor $assignAnnouncementToSegmentProcessor
*/
public function __construct(
CanCreateAnnouncement $canCreateAnnouncement,
CreatesAnnouncement $createsAnnoucement
CreatesAnnouncement $createsAnnoucement,
AssignAnnouncementToSegmentProcessor $assignAnnouncementToSegmentProcessor
) {
$this->canCreateAnnoucement = $canCreateAnnouncement;
$this->canCreateAnnouncement = $canCreateAnnouncement;
$this->createsAnnoucement = $createsAnnoucement;
$this->assignAnnouncementToSegmentProcessor = $assignAnnouncementToSegmentProcessor;
}
/**
@@ -68,8 +75,7 @@ class CreateAnnouncementLogic extends AbstractControllerLogic
$announcement = $this->createsAnnoucement->execute($annoucement_object);
$announcement->segments()->attach($request->input('segment_id'));
$this->assignAnnouncementToSegmentProcessor->execute($announcement);
return $this->resourceResponse(new AnnouncementResource($announcement));
}