namibia
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
<?php
namespace Workspace\Service;
use Zend\ServiceManager\ServiceLocatorAwareInterface;
use Zend\ServiceManager\ServiceLocatorInterface;
/**
* Abstract service node to provide global functionality to all workspace services.
* @author andre.fourie
*/
abstract class Node implements ServiceLocatorAwareInterface
{
/**
* @var ServiceLocatorInterface
*/
protected $services;
/**
* @var \Workspace\Workflow
*/
protected $workflow;
/**
* @var array
*/
protected $entityMap = array();
/**
* @see \Zend\ServiceManager\ServiceLocatorAwareInterface::setServiceLocator()
*/
public function setServiceLocator(ServiceLocatorInterface $serviceLocator)
{
$this->services = $serviceLocator;
$this->workflow->setServiceLocator($serviceLocator);
}
/**
* @see \Zend\ServiceManager\ServiceLocatorAwareInterface::getServiceLocator()
*/
public function getServiceLocator()
{
return $this->services;
}
/**
* Retrieve Doctrine Entity Manager.
* @return \Doctrine\ORM\EntityManager
*/
public function getEntityManager()
{
return $this->services->get('doctrine.entitymanager.orm_default');
}
/**
* Validate unique value for a specified field.
* @param \Workspace\Utility\ServiceInputParams $contract
* @return multitype:string unknown NULL
*/
public function fieldIsUnique(\Workspace\Utility\ServiceInputParams $contract)
{
if (!isset($this->entityMap[$contract->Group]))
{
return $contract->error(
'Invalid `Group` specified.',
'System Error.'
);
}
$entityName = $this->entityMap[$contract->Group];
$entry = $this->getEntityManager()
->getRepository($entityName)
->findOneBy(array($contract->Field => $contract->Value));
return is_null($entry)
? $contract->success()
: $contract->error('Value already used.', 'Value already used.');
}
/**
* List available tasks.
* @param string $state
* @return array
*/
public function listTasks($state = 'Global')
{
return $this->workflow->listStateTasks($state);
}
}
|
Revision |
Author |
Commited |
Message |
df0489 ...
|
Mark |
Fri 14 Oct, 2016 10:01:00 +0000 |
|