post('login',static fn(Request $r):array=>(new AuthService())->login($r)); $router->post('logout',static fn(Request $r):array=>(new AuthService())->logout($r)); $router->get('me',static fn(Request $r):array=>(new AuthService())->me($r)); $router->post('me',static fn(Request $r):array=>(new AuthService())->me($r)); $owner=static function(Request $r)use($auth):void{$s=$auth->requireUser($r);if(($s['user']['permissions']['canManageBackend']??false)!==true)throw new ApiException('FORBIDDEN','Samo vlasnik može pokrenuti recovery.',403);}; $health=static fn(Request $r):array=>['application'=>'Seoski odbor Gornje Rapče','service'=>'SOGR R3-R7 Controlled Sync Recovery API','phase'=>Phase7CA6R2R3R7ControlledSyncRecoveryService::PHASE,'version'=>Phase7CA6R2R3R7ControlledSyncRecoveryService::VERSION,'mode'=>Phase7CA6R2R3R7ControlledSyncRecoveryService::MODE,'status'=>'available','payAvailable'=>false,'voidAvailable'=>false,'targetQueueId'=>10]; $router->get('healthCheck',$health);$router->post('healthCheck',$health); $status=static function(Request $r)use($owner,$service):array{$owner($r);return $service->status();}; $router->get('phase7cA6R2R3R7Status',$status);$router->post('phase7cA6R2R3R7Status',$status); $recover=static function(Request $r)use($owner,$service):array{$owner($r);return $service->recover((string)$r->input('confirmation',''));}; $router->post('phase7cA6R2R3R7Recover',$recover); $router->dispatch($request);