11<?php
2+
3+ require_once __DIR__ .'/../../vendor/autoload.php ' ;
4+ use App \Entity \BugReport ;
5+ use App \Repository \BugReportRepository ;
6+ use App \Helpers \DbQueryBuilderFactory ;
7+ use App \Database \QueryBuilder ;
8+ use App \Logger \Logger ;
9+ use App \Exception \BadRequestException ;
10+
11+
12+ if (isset ($ _POST , $ _POST ['update ' ]))
13+ {
14+ $ reportType = $ _POST ['report_type ' ];
15+ $ email = $ _POST ['email ' ];
16+ $ link = $ _POST ['link ' ];
17+ $ message = $ _POST ['message ' ];
18+ $ reportId = $ _POST ['report_id ' ];
19+
20+ $ logger = new Logger ;
21+
22+ try {
23+ /** @var QueryBuilder $queryBuilder */
24+ $ queryBuilder = DbQueryBuilderFactory::make ();
25+ /** @var BugReportRepository $repository */
26+ $ repository = new BugReportRepository ($ queryBuilder );
27+
28+ $ bugReport = $ repository ->find ($ reportId );
29+ $ bugReport ->setReportType ($ reportType );
30+ $ bugReport ->setEmail ($ email );
31+ $ bugReport ->setLink ($ link );
32+ $ bugReport ->setMessage ($ message );
33+ $ newReport = $ repository ->update ($ bugReport );
34+
35+ }catch (Throwable $ exception )
36+ {
37+ $ logger ->critical ($ exception ->getMessage (), $ _POST );
38+ throw new BadRequestException ($ exception ->getMessage (), [$ exception ], 400 );
39+ }
40+
41+ $ logger ->info ('bug report updated ' , ['id ' => $ newReport ->getId (), 'type ' => $ newReport ->getReportType ()]);
42+
43+ $ bugReports = $ repository ->findAll ();
44+ }
0 commit comments