@@ -51,35 +51,30 @@ public function registerFileActionMenu(string $appId, string $name, string $disp
5151 string $ icon , string $ mime , int $ permissions , int $ order , string $ version ,
5252 ?string $ defaultAction = null ): ?FilesActionsMenu {
5353 try {
54- $ fileActionMenu = $ this ->mapper ->findByAppidName ($ appId , $ name );
54+ $ existing = $ this ->mapper ->findByAppidName ($ appId , $ name );
5555 } catch (DoesNotExistException |MultipleObjectsReturnedException |Exception ) {
56- $ fileActionMenu = null ;
56+ $ existing = null ;
5757 }
5858 try {
59- $ newFileActionMenu = new FilesActionsMenu ([
60- 'appid ' => $ appId ,
61- 'name ' => $ name ,
62- 'display_name ' => $ displayName ,
63- 'action_handler ' => ltrim ($ actionHandler , '/ ' ),
64- 'icon ' => ltrim ($ icon , '/ ' ),
65- 'mime ' => $ mime ,
66- 'permissions ' => $ permissions ,
67- 'order ' => $ order ,
68- 'version ' => $ version ,
69- 'default_action ' => $ defaultAction ,
70- ]);
71- if ($ fileActionMenu !== null ) {
72- $ newFileActionMenu ->setId ($ fileActionMenu ->getId ());
73- }
74- $ fileActionMenu = $ this ->mapper ->insertOrUpdate ($ newFileActionMenu );
59+ $ entity = $ existing ?? new FilesActionsMenu ();
60+ $ entity ->setAppid ($ appId );
61+ $ entity ->setName ($ name );
62+ $ entity ->setDisplayName ($ displayName );
63+ $ entity ->setActionHandler (ltrim ($ actionHandler , '/ ' ));
64+ $ entity ->setIcon (ltrim ($ icon , '/ ' ));
65+ $ entity ->setMime ($ mime );
66+ $ entity ->setPermissions ($ permissions );
67+ $ entity ->setOrder ($ order );
68+ $ entity ->setVersion ($ version );
69+ $ entity ->setDefaultAction ($ defaultAction );
7570 $ this ->resetCacheEnabled ();
71+ return $ existing === null ? $ this ->mapper ->insert ($ entity ) : $ this ->mapper ->update ($ entity );
7672 } catch (Exception $ e ) {
7773 $ this ->logger ->error (
7874 sprintf ('Failed to register ExApp %s FileActionMenu %s. Error: %s ' , $ appId , $ name , $ e ->getMessage ()), ['exception ' => $ e ]
7975 );
8076 return null ;
8177 }
82- return $ fileActionMenu ;
8378 }
8479
8580 public function unregisterFileActionMenu (string $ appId , string $ name ): ?FilesActionsMenu {
0 commit comments