nc-vue-agency/lib/Agency/AgencyManager.php

57 lines
1.8 KiB
PHP

<?php
namespace OCA\Agency\Agency;
use OCP\IRequest;
use OCP\IUserSession;
use OCP\IDBConnection;
use OCA\Agency\Db\AgencyMapper;
use OCA\Agency\Service\AgencyService;
use OCP\IGroupManager;
class AgencyManager {
protected $agencyMapper;
protected $groupManager;
protected $db;
public function __construct($AppName, IDBConnection $db, IRequest $request, AgencyMapper $agencyMapper, IGroupManager $groupManager) {
$this->agencyMapper = $agencyMapper;
$this->groupManager = $groupManager;
}
/**
* Creates a new Agency and save it to the database.
*
* @param:
* agencygid - GrouopID of the Agency
* agencydirid - ID for the Grouopfolder for AgencyData
* standarddirid - ID for the Groupfolder for all Uploaded Standardfiles
*/
public function createAgencyOnReg(string $agencygid, int $agencydirid, int $standarddirid){
$agencyService = new AgencyService($this->agencyMapper);
return $agencyService->create($agencygid, $agencydirid, $standarddirid);
}
/**
* getAgencyByUser
*
* @param:
* - $request
* - $userSession
*
* Return the Agency-ID by filtering the id from default agency-group, ex: agency_1 -> 1 (int)
*
*/
public function getAgencyByUser(IUserSession $userSession){
$groups = $this->groupManager->getUserGroups($userSession->getUser());
$agency_group_id = "";
foreach($groups as $group){
if(str_contains($group->getGId(), 'agencymaingroupid_')){
$agency_group_id_array = explode("_", strval($group->getGId()));
$agency_group_id = $agency_group_id_array[0]."_".$agency_group_id_array[1];
}
}
return $this->agencyMapper->getAgencyByGId($agency_group_id);
#return $agency_group_id;
}
}