1010
1111use DateTime ;
1212use Exception ;
13- use GhostUnicorns \WebapiLogs \Model \Log \Logger ;
14- use GhostUnicorns \WebapiLogs \Model \ResourceModel \Entity \LogCollectionFactory ;
1513use GhostUnicorns \WebapiLogs \Model \ResourceModel \LogResourceModel ;
1614
1715class Clean
@@ -21,71 +19,36 @@ class Clean
2119 */
2220 private $ config ;
2321
24- /**
25- * @var Logger
26- */
27- private $ logger ;
28-
29- /**
30- * @var LogCollectionFactory
31- */
32- private $ logCollectionFactory ;
33-
3422 /**
3523 * @var ResourceModel\LogResourceModel
3624 */
3725 private $ logResourceModel ;
3826
39- /**
40- * @param Config $config
41- * @param Logger $logger
42- * @param LogCollectionFactory $logCollectionFactory
43- * @param LogResourceModel $logResourceModel
44- */
4527 public function __construct (
4628 Config $ config ,
47- Logger $ logger ,
48- LogCollectionFactory $ logCollectionFactory ,
4929 LogResourceModel $ logResourceModel
5030 ) {
5131 $ this ->config = $ config ;
52- $ this ->logger = $ logger ;
53- $ this ->logCollectionFactory = $ logCollectionFactory ;
5432 $ this ->logResourceModel = $ logResourceModel ;
5533 }
5634
35+ public function cleanAll ()
36+ {
37+ $ this ->logResourceModel ->getConnection ()->truncateTable ($ this ->logResourceModel ->getMainTable ());
38+ }
39+
5740 /**
5841 * @throws Exception
5942 */
6043 public function execute ()
6144 {
62- if (!$ this ->config ->isEnabled ()) {
63- return ;
64- }
65-
66- $ this ->logger ->info (__ ('Start webapi logs clean ' ));
67- $ hours = $ this ->config ->getCleanOlderThanHours ();
68- $ datetime = new DateTime ('- ' . $ hours . ' hour ' );
69- $ page = 1 ;
70-
71- $ collection = $ this ->logCollectionFactory ->create ();
72- $ collection = $ collection ->addFieldToSelect (LogResourceModel::LOG_ID )
73- ->addFieldToFilter (LogResourceModel::CREATED_AT , ['lt ' => $ datetime ])
74- ->setPageSize (2 );
75-
76- $ pageCount = $ collection ->getLastPageNumber ();
77- $ currentPage = 1 ;
78- $ tot = 0 ;
79- while ($ currentPage <= $ pageCount ) {
80- $ collection ->setCurPage ($ currentPage );
81- foreach ($ collection as $ row ) {
82- $ this ->logResourceModel ->delete ($ row );
83- $ tot ++;
84- }
85- $ collection ->clear ();
86- $ currentPage ++;
87- }
88-
89- $ this ->logger ->info (__ ('End webapi logs clean. Deleted %1 elements. ' , $ tot ));
45+ $ this ->logResourceModel ->getConnection ()->delete (
46+ $ this ->logResourceModel ->getMainTable (),
47+ sprintf (
48+ '%s < NOW() - INTERVAL %s HOUR ' ,
49+ LogResourceModel::CREATED_AT ,
50+ (int )$ this ->config ->getCleanOlderThanHours ()
51+ )
52+ );
9053 }
9154}
0 commit comments