<?php

/*
 * OrangeHRM Enterprise is a closed sourced comprehensive Human Resource Management (HRM) 
 * System that captures all the essential functionalities required for any enterprise. 
 * Copyright (C) 2006 OrangeHRM Inc., http://www.orangehrm.com 
 * 
 * OrangeHRM Inc is the owner of the patent, copyright, trade secrets, trademarks and any 
 * other intellectual property rights which subsist in the Licensed Materials. OrangeHRM Inc 
 * is the owner of the media / downloaded OrangeHRM Enterprise software files on which the 
 * Licensed Materials are received. Title to the Licensed Materials and media shall remain 
 * vested in OrangeHRM Inc. For the avoidance of doubt title and all intellectual property 
 * rights to any design, new software, new protocol, new interface, enhancement, update, 
 * derivative works, revised screen text or any other items that OrangeHRM Inc creates for 
 * Customer shall remain vested in OrangeHRM Inc. Any rights not expressly granted herein are 
 * reserved to OrangeHRM Inc. 
 * 
 * Please refer http://www.orangehrm.com/Files/OrangeHRM_Commercial_License.pdf for the license which includes terms and conditions on using this software. 
 *  
 */

/**
 * Description of OpenIdProviderDao
 *
 * @author orangehrm
 */
class OpenIdProviderDao extends BaseOpenIdDao{
    /**
     *
     * @param OpenidProvider $openIdProvider
     * @return OpenidProvider 
     */
    public function saveOpenIdProvider(OpenidProvider $openIdProvider){
        try {
            $openIdProvider->save();
            $openIdProvider->refresh();
            return $openIdProvider;
        } catch (Exception $e) {
            throw new DaoException($e->getMessage(), $e->getCode(), $e);
        }
        
    }
    /**
     *
     * @param bool $isActive 
     * @return OpenidProvider 
     */
    public function listOpenIdProviders($isActive =true){
        try {
           $query = Doctrine_Query::create()
                    ->from('OpenidProvider');
            if($isActive){
                $query->andWhere('status = ?',1);
            }
            return $query->execute();
        } catch (Exception $e) {
            throw new DaoException($e->getMessage(), $e->getCode(), $e);
        }

    }
    /**
     *
     * @param int $id 
     * @return mix 
     */
    public function removeOpenIdProvider($id){
        try {
          $query = Doctrine_Query::create()
                ->update('OpenidProvider')
                ->set('status','?',0)
                ->whereIn('id',$id);
          
          return $query->execute();
        } catch (Exception $e) {
            throw new DaoException($e->getMessage(), $e->getCode(), $e);
        }
        
    }
    /**
     * Get Open Id Provider by ID
     * @return OpenidProvider
     */
    public function getOpenIdProvider($id) {
        try {
            return Doctrine::getTable('OpenidProvider')->find($id);
        } catch (Exception $e) {
            throw new DaoException($e->getMessage(), $e->getCode(), $e);
        }
    }   
}
