1212 * limitations under the License.
1313 **/
1414
15+ use App \Events \SponsorServices \DeletedEventDTO ;
16+ use App \Events \SponsorServices \SummitMediaFileTypeCreatedEventDTO ;
17+ use App \Events \SponsorServices \SummitMediaFileTypeDomainEvents ;
18+ use App \Jobs \SponsorServices \PublishSponsorServiceDomainEventsJob ;
1519use App \Models \Foundation \Summit \Factories \SummitMediaFileTypeFactory ;
1620use App \Models \Foundation \Summit \Repositories \ISummitMediaFileTypeRepository ;
1721use App \Services \Model \ISummitMediaFileTypeService ;
@@ -49,14 +53,20 @@ public function __construct
4953 */
5054 public function add (array $ payload ): SummitMediaFileType
5155 {
52- return $ this ->tx_service ->transaction (function () use ($ payload ){
56+ $ media_file_type = $ this ->tx_service ->transaction (function () use ($ payload ){
5357 $ type = $ this ->repository ->getByName (trim ($ payload ['name ' ]));
5458 if (!is_null ($ type ))
5559 throw new ValidationException (sprintf ("Name %s already exists. " , $ payload ['name ' ]));
5660 $ type = SummitMediaFileTypeFactory::build ($ payload );
5761 $ this ->repository ->add ($ type );
5862 return $ type ;
5963 });
64+
65+ PublishSponsorServiceDomainEventsJob::dispatch (
66+ SummitMediaFileTypeCreatedEventDTO::fromSummitMediaFileType ($ media_file_type )->serialize (),
67+ SummitMediaFileTypeDomainEvents::SummitMediaFileTypeCreated);
68+
69+ return $ media_file_type ;
6070 }
6171
6272 /**
@@ -77,7 +87,13 @@ public function update(int $id, array $payload): SummitMediaFileType
7787 throw new ValidationException (sprintf ("Name %s already exists. " , $ payload ['name ' ]));
7888 }
7989
80- return SummitMediaFileTypeFactory::populate ($ type , $ payload );
90+ $ media_file_type = SummitMediaFileTypeFactory::populate ($ type , $ payload );
91+
92+ PublishSponsorServiceDomainEventsJob::dispatch (
93+ SummitMediaFileTypeCreatedEventDTO::fromSummitMediaFileType ($ media_file_type )->serialize (),
94+ SummitMediaFileTypeDomainEvents::SummitMediaFileTypeUpdated);
95+
96+ return $ media_file_type ;
8197 });
8298 }
8399
@@ -94,6 +110,10 @@ public function delete(int $id): void
94110 throw new ValidationException ("You can not delete a system defined type. " );
95111
96112 $ this ->repository ->delete ($ type );
113+
114+ PublishSponsorServiceDomainEventsJob::dispatch (
115+ DeletedEventDTO::fromEntity ($ type )->serialize (),
116+ SummitMediaFileTypeDomainEvents::SummitMediaFileTypeDeleted);
97117 });
98118 }
99- }
119+ }
0 commit comments