http://api.cakephp.org/class/model#method-Model__construct
-Mark
On Sep 3, 11:00 am, RhythmicDevil <rhythmicde...@gmail.com> wrote:
> Hi,
> I have an app. It has to get data from two different sources, a mysql
> db and an XML API
>
> For the API model I want to be able to do the following:
>
> TriadAPI - extends AppModel contains generic query and connection info
> Subscriber - extends TriadAPI and contains subscriber specific queries
>
> I am also using a data source called soap_source.
>
> The problem I have is that I dont have any idea where to put the
> TriadAPI file so that it gets loaded. The reason I want to do this is
> that I dont want to repeat the generic query and connection info. It
> makes senses to me that the hierarchy should look like this:
>
> AppModel -> TriadAPI -> Subscriber
>
> I cant modify AppModel as that will screw up the models that need to
> use the DB. At least I think thats that would happen. I have pasted my
> model classes below for reference. Thanks for any advice.
>
> /app/models/triad_api.php
> class TriadApi extends AppModel
> {
> /**
> * @var useDbConfig
> * @description The name of the DataSource connection that this
> Model uses. Defined in core/database.php
> */
> public $useDbConfig = 'soap';
> public $useTable = false;
>
> public $TransactionParams = array ();
>
> public function __construct()
> {
> parent::__construct();
>
> $api_config = Configure::read('API');
>
> $this->TransactionParams['loginName'] = $api_config
> ['loginName'];
> $this->TransactionParams['loginPassword'] = $api_config
> ['loginPassword'];
> $this->TransactionParams['orgName'] = $api_config['orgName'];
>
> $this->TransactionParams['transaction']['id'] = date('d-m-y-
> i:s:a').' - ';
> $this->TransactionParams['transaction']['wait'] = $api_config
> ['wait'];
> $this->TransactionParams['transaction']['version'] =
> $api_config['version'];
> $this->TransactionParams['transaction']
> ['TransactionCommandList'] = array ();
> }
>
> public function formatResult($result)
> {
> return $result->transactionResult;
> }
>
> public function queryDatabase()
> {
> //stub
> }
>
> }
>
> /app/models/subscriber.php
> class Subscriber extends TriadApi
> {
> public function __construct()
> {
> parent::__construct();
> }
>
> public function QuerySub($SubscriberId)
> {
> $this->TransactionParams['transaction']['id'].'QuerySub';
> $this->TransactionParams['transaction']
> ['TransactionCommandList']['TransactionCommand']['QuerySub']
> ['SubscriberId'] = $SubscriberId;
> return $this->formatResult($this->query('SendTransaction',
> $this->TransactionParams));
> }
>
> /*
> * <QuerySubNRC>
> * <SubscriberId> subscriber_id </SubscriberId>
> * </QuerySubNRC>
> */
> public function QuerySubNRC($SubscriberId)
> {
> $this->TransactionParams['transaction']['id'].'QuerySubNRC';
> $this->TransactionParams['transaction']
> ['TransactionCommandList']['TransactionCommand']['QuerySubNRC']
> ['SubscriberId'] = $SubscriberId;
> return $this->formatResult($this->query('SendTransaction', $this->TransactionParams));
>
> }
>
> /*
> * <PerformSubOp>
> * <SubscriberId> subscriber_id </SubscriberId>
> * <Operation> operation </Operation>
> * </PerformSubOp>
> */
> public function PerformSubOp($SubscriberId)
> {
> $this->TransactionParams['transaction']['id'].'PerformSubOp';
> $this->TransactionParams['transaction']
> ['TransactionCommandList']['TransactionCommand']['PerformSubOp']
> ['SubscriberId'] = $SubscriberId;
> $this->TransactionParams['transaction']
> ['TransactionCommandList']['TransactionCommand']['PerformSubOp']
> ['Operation'] = 'Refresh';
> return $this->query('SendTransaction', $this-
>
>
>
> >TransactionParams);
> }
> }
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to cake-php+unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---
No comments:
Post a Comment