From 826f47f6b6729d744b04d9f5e16ce46643fd1a2c Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Tue, 28 Feb 2023 16:07:25 +0100 Subject: [PATCH 01/75] feat: borrowed the behaviour pattern from october/extension package to ushahidi which allows classes to act as traits. --- src/Ushahidi/Core/Extension/Extendable.php | 58 ++ .../Core/Extension/ExtendableTrait.php | 632 ++++++++++++++++++ src/Ushahidi/Core/Extension/ExtensionBase.php | 17 + .../Core/Extension/ExtensionTrait.php | 84 +++ src/Ushahidi/Core/Extension/README.md | 177 +++++ 5 files changed, 968 insertions(+) create mode 100644 src/Ushahidi/Core/Extension/Extendable.php create mode 100644 src/Ushahidi/Core/Extension/ExtendableTrait.php create mode 100644 src/Ushahidi/Core/Extension/ExtensionBase.php create mode 100644 src/Ushahidi/Core/Extension/ExtensionTrait.php create mode 100644 src/Ushahidi/Core/Extension/README.md diff --git a/src/Ushahidi/Core/Extension/Extendable.php b/src/Ushahidi/Core/Extension/Extendable.php new file mode 100644 index 0000000000..e175488c83 --- /dev/null +++ b/src/Ushahidi/Core/Extension/Extendable.php @@ -0,0 +1,58 @@ +extendableConstruct(); + } + + public function __get($name) + { + return $this->extendableGet($name); + } + + public function __set($name, $value) + { + $this->extendableSet($name, $value); + } + + public function __call($name, $params) + { + return $this->extendableCall($name, $params); + } + + public static function __callStatic($name, $params) + { + return self::extendableCallStatic($name, $params); + } + + public static function extend(callable $callback) + { + self::extendableExtendCallback($callback); + } +} diff --git a/src/Ushahidi/Core/Extension/ExtendableTrait.php b/src/Ushahidi/Core/Extension/ExtendableTrait.php new file mode 100644 index 0000000000..8bdc2ee466 --- /dev/null +++ b/src/Ushahidi/Core/Extension/ExtendableTrait.php @@ -0,0 +1,632 @@ + [], + 'methods' => [], + 'dynamicMethods' => [], + 'dynamicProperties' => [] + ]; + + /** + * @var array extendableCallbacks is used to extend the constructor of an extendable class. Eg: + * + * Class::extend(function($obj) { }) + * + */ + protected static $extendableCallbacks = []; + + /** + * @var array extendableStaticMethods is a collection of static methods used by behaviors + */ + protected static $extendableStaticMethods = []; + + /** + * @var bool extendableGuardProperties indicates if dynamic properties can be created + */ + protected static $extendableGuardProperties = true; + + /** + * extendableConstruct should be called as part of the constructor + */ + public function extendableConstruct() + { + /* + * Apply init callbacks + */ + $classes = array_merge([get_class($this)], class_parents($this)); + foreach ($classes as $class) { + if (isset(self::$extendableCallbacks[$class]) && is_array(self::$extendableCallbacks[$class])) { + foreach (self::$extendableCallbacks[$class] as $callback) { + call_user_func($callback, $this); + } + } + } + + /* + * Apply extensions + */ + foreach ($this->extensionExtractImplements() as $useClass) { + /* + * Soft implement + */ + if (substr($useClass, 0, 1) === '@') { + $useClass = substr($useClass, 1); + if (!class_exists($useClass)) { + continue; + } + } + + $this->extendClassWith($useClass); + } + } + + /** + * extendableExtendCallback is a helper method for `::extend()` static method + * @param callable $callback + * @return void + */ + public static function extendableExtendCallback($callback) + { + $class = get_called_class(); + if ( + !isset(self::$extendableCallbacks[$class]) || + !is_array(self::$extendableCallbacks[$class]) + ) { + self::$extendableCallbacks[$class] = []; + } + + self::$extendableCallbacks[$class][] = $callback; + } + + /** + * clearExtendedClasses clears the list of extended classes so they will be re-extended + */ + public static function clearExtendedClasses() + { + self::$extendableCallbacks = []; + } + + /** + * extensionExtractImplements will return classes to implement. + */ + protected function extensionExtractImplements(): array + { + if (!$this->implement) { + return []; + } + + if (is_string($this->implement)) { + $uses = explode(',', $this->implement); + } elseif (is_array($this->implement)) { + $uses = $this->implement; + } else { + throw new Exception(sprintf('Class %s contains an invalid $implement value', get_class($this))); + } + + foreach ($uses as &$use) { + $use = str_replace('.', '\\', trim($use)); + } + + return $uses; + } + + /** + * extensionExtractMethods extracts the available methods from a behavior and adds it + * to the list of callable methods + * @param string $extensionName + * @param object $extensionObject + * @return void + */ + protected function extensionExtractMethods($extensionName, $extensionObject) + { + if (!method_exists($extensionObject, 'extensionIsHiddenMethod')) { + throw new Exception( + sprintf( + 'Extension %s should inherit Ushahidi\Core\Extension\ExtensionBase or implement Ushahidi\Core\Extension\ExtensionTrait.', + $extensionName + ) + ); + } + + $extensionMethods = get_class_methods($extensionName); + foreach ($extensionMethods as $methodName) { + if ( + $methodName === '__construct' || + $extensionObject->extensionIsHiddenMethod($methodName) + ) { + continue; + } + + $this->extensionData['methods'][$methodName] = $extensionName; + } + } + + /** + * addDynamicMethod programmatically adds a method to the extendable class + * @param string $dynamicName + * @param callable $method + * @param string $extension + */ + public function addDynamicMethod($dynamicName, $method, $extension = null) + { + if ( + is_string($method) && + $extension && + ($extensionObj = $this->getClassExtension($extension)) + ) { + $method = [$extensionObj, $method]; + } + + $this->extensionData['dynamicMethods'][$dynamicName] = $method; + } + + /** + * addDynamicProperty programmatically adds a property to the extendable class + * @param string $dynamicName + * @param string $value + */ + public function addDynamicProperty($dynamicName, $value = null) + { + if (property_exists($this, $dynamicName)) { + return; + } + + self::$extendableGuardProperties = false; + + $this->{$dynamicName} = $value; + + self::$extendableGuardProperties = true; + + $this->extensionData['dynamicProperties'][] = $dynamicName; + } + + /** + * extendableIsSettingDynamicProperty returns true if a dynamic + * property action is taking place + */ + protected function extendableIsSettingDynamicProperty(): bool + { + return self::$extendableGuardProperties === false; + } + + /** + * extendClassWith dynamically extends a class with a specified behavior + * @param string $extensionName + * @return void + */ + public function extendClassWith($extensionName) + { + if (!strlen($extensionName)) { + return; + } + + $extensionName = str_replace('.', '\\', trim($extensionName)); + + if (isset($this->extensionData['extensions'][$extensionName])) { + throw new Exception( + sprintf( + 'Class %s has already been extended with %s', + get_class($this), + $extensionName + ) + ); + } + + $this->extensionData['extensions'][$extensionName] = $extensionObject = new $extensionName($this); + $this->extensionExtractMethods($extensionName, $extensionObject); + $extensionObject->extensionApplyInitCallbacks(); + } + + /** + * isClassExtendedWith checks if extendable class is extended with a behavior object + * @param string $name Fully qualified behavior name + * @return boolean + */ + public function isClassExtendedWith($name) + { + $name = str_replace('.', '\\', trim($name)); + return isset($this->extensionData['extensions'][$name]); + } + + /** + * implementClassWith will implement an extension using non-interference and should + * be used with the static extend() method. + */ + public function implementClassWith($extensionName) + { + $extensionName = str_replace('.', '\\', trim($extensionName)); + + if (in_array($extensionName, $this->extensionExtractImplements())) { + return; + } + + $this->implement[] = $extensionName; + } + + /** + * isClassInstanceOf checks if the class implements the supplied interface methods. + */ + public function isClassInstanceOf($interface): bool + { + $classMethods = $this->getClassMethods(); + + if (is_string($interface) && !interface_exists($interface)) { + throw new Exception( + sprintf( + 'Interface %s does not exist', + $interface + ) + ); + } + + $interfaceMethods = (array) get_class_methods($interface); + foreach ($interfaceMethods as $methodName) { + if (!in_array($methodName, $classMethods)) { + return false; + } + } + + return true; + } + + /** + * getClassExtension returns a behavior object from an extendable class, example: + * + * $this->getClassExtension('Backend.Behaviors.FormController') + * + * @param string $name Fully qualified behavior name + * @return mixed + */ + public function getClassExtension($name) + { + $name = str_replace('.', '\\', trim($name)); + return $this->extensionData['extensions'][$name] ?? null; + } + + /** + * asExtension is short hand for `getClassExtension()` method, except takes the short + * extension name, example: + * + * $this->asExtension('FormController') + * + * @param string $shortName + * @return mixed + */ + public function asExtension($shortName) + { + foreach ($this->extensionData['extensions'] as $class => $obj) { + if ( + preg_match('@\\\\([\w]+)$@', $class, $matches) && + $matches[1] === $shortName + ) { + return $obj; + } + } + + return $this->getClassExtension($shortName); + } + + /** + * methodExists checks if a method exists, extension equivalent of method_exists() + * @param string $name + * @return boolean + */ + public function methodExists($name) + { + return ( + method_exists($this, $name) || + isset($this->extensionData['methods'][$name]) || + isset($this->extensionData['dynamicMethods'][$name]) + ); + } + + /** + * getClassMethods gets a list of class methods, extension equivalent of get_class_methods() + * @return array + */ + public function getClassMethods() + { + return array_values(array_unique( + array_merge( + get_class_methods($this), + array_keys($this->extensionData['methods']), + array_keys($this->extensionData['dynamicMethods']) + ) + )); + } + + /** + * getClassMethodAsReflector + */ + public function getClassMethodAsReflector(string $name): ReflectionFunctionAbstract + { + $extandableMethod = $this->getExtendableMethodFromExtensions($name); + if ($extandableMethod !== null) { + return new ReflectionMethod($extandableMethod[0], $extandableMethod[1]); + } + + $extandableDynamicMethod = $this->getExtendableMethodFromDynamicMethods($name); + if ($extandableDynamicMethod !== null) { + return new ReflectionFunction($extandableDynamicMethod); + } + + return new ReflectionMethod($this, $name); + } + + /** + * getDynamicProperties returns all dynamic properties and their values + * @return array ['property' => 'value'] + */ + public function getDynamicProperties() + { + $result = []; + + foreach ($this->extensionData['dynamicProperties'] as $propName) { + $result[$propName] = $this->{$propName}; + } + + return $result; + } + + /** + * propertyExists checks if a property exists, extension equivalent of `property_exists()` + * @param string $name + * @return boolean + */ + public function propertyExists($name) + { + if (property_exists($this, $name)) { + return true; + } + + foreach ($this->extensionData['extensions'] as $extensionObject) { + if ( + property_exists($extensionObject, $name) && + $this->extendableIsAccessible($extensionObject, $name) + ) { + return true; + } + } + + return false; + } + + /** + * extendableIsAccessible checks if a property is accessible, property equivalent + * of `is_callable()` + * @param mixed $class + * @param string $propertyName + * @return boolean + */ + protected function extendableIsAccessible($class, $propertyName) + { + $reflector = new ReflectionClass($class); + $property = $reflector->getProperty($propertyName); + return $property->isPublic(); + } + + /** + * extendableGet magic method for `__get()` + * @param string $name + * @return string + */ + public function extendableGet($name) + { + foreach ($this->extensionData['extensions'] as $extensionObject) { + if ( + property_exists($extensionObject, $name) && + $this->extendableIsAccessible($extensionObject, $name) + ) { + return $extensionObject->{$name}; + } + } + + $parent = get_parent_class(); + if ($parent !== false && method_exists($parent, '__get')) { + return parent::__get($name); + } + } + + /** + * extendableSet magic method for `__set()` + * @param string $name + * @param string $value + * @return string + */ + public function extendableSet($name, $value) + { + $found = false; + + // Spin over each extension to find it + foreach ($this->extensionData['extensions'] as $extensionObject) { + if (!property_exists($extensionObject, $name)) { + continue; + } + + $extensionObject->{$name} = $value; + $found = true; + } + + // Setting an undefined property, magic ends here since the property now exists + if (!self::$extendableGuardProperties) { + $this->{$name} = $value; + return; + } + + // This targets trait usage in particular + $parent = get_parent_class(); + if ($parent !== false && method_exists($parent, '__set')) { + parent::__set($name, $value); + $found = true; + } + + // Undefined property, throw an exception to catch it, + // otherwise some PHP versions will segfault + // @todo Restore if year >= 2023 + // if (!$found) { + // throw new BadMethodCallException(sprintf( + // 'Call to undefined property %s::%s', + // get_class($this), + // $name + // )); + // } + } + + /** + * extendableCall magic method for `__call()` + * @param string $name + * @param array $params + * @return mixed + */ + public function extendableCall($name, $params = null) + { + $callable = $this->getExtendableMethodFromExtensions($name); + + if ($callable === null) { + $callable = $this->getExtendableMethodFromDynamicMethods($name); + } + + if ($callable !== null) { + return call_user_func_array($callable, $params); + } + + $parent = get_parent_class(); + if ($parent !== false && method_exists($parent, '__call')) { + return parent::__call($name, $params); + } + + throw new BadMethodCallException( + sprintf( + 'Call to undefined method %s::%s()', + get_class($this), + $name + ) + ); + } + + /** + * extendableCallStatic magic method for `__callStatic()` + * @param string $name + * @param array $params + * @return mixed + */ + public static function extendableCallStatic($name, $params = null) + { + $className = get_called_class(); + + if (!array_key_exists($className, self::$extendableStaticMethods)) { + self::$extendableStaticMethods[$className] = []; + + $class = new ReflectionClass($className); + $defaultProperties = $class->getDefaultProperties(); + if ( + array_key_exists('implement', $defaultProperties) && + ($implement = $defaultProperties['implement']) + ) { + /* + * Apply extensions + */ + if (is_string($implement)) { + $uses = explode(',', $implement); + } elseif (is_array($implement)) { + $uses = $implement; + } else { + throw new Exception(sprintf('Class %s contains an invalid $implement value', $className)); + } + + foreach ($uses as $use) { + $useClassName = str_replace('.', '\\', trim($use)); + + $useClass = new ReflectionClass($useClassName); + $staticMethods = $useClass->getMethods(ReflectionMethod::IS_STATIC); + foreach ($staticMethods as $method) { + self::$extendableStaticMethods[$className][$method->getName()] = $useClassName; + } + } + } + } + + if (isset(self::$extendableStaticMethods[$className][$name])) { + $extension = self::$extendableStaticMethods[$className][$name]; + + if (method_exists($extension, $name) && is_callable([$extension, $name])) { + $extension::$extendableStaticCalledClass = $className; + $result = forward_static_call_array(array($extension, $name), $params); + $extension::$extendableStaticCalledClass = null; + return $result; + } + } + + // $parent = get_parent_class($className); + // if ($parent !== false && method_exists($parent, '__callStatic')) { + // return parent::__callStatic($name, $params); + // } + + throw new BadMethodCallException( + sprintf( + 'Call to undefined method %s::%s()', + $className, + $name + ) + ); + } + + /** + * getExtendableMethodFromExtensions + */ + protected function getExtendableMethodFromExtensions(string $name): ?array + { + if (!isset($this->extensionData['methods'][$name])) { + return null; + } + + $extension = $this->extensionData['methods'][$name]; + $extensionObject = $this->extensionData['extensions'][$extension]; + + if (!method_exists($extension, $name) || !is_callable([$extensionObject, $name])) { + return null; + } + + return [$extensionObject, $name]; + } + + /** + * getExtendableMethodFromDynamicMethods + */ + protected function getExtendableMethodFromDynamicMethods(string $name): ?callable + { + if (!isset($this->extensionData['dynamicMethods'][$name])) { + return null; + } + + $dynamicCallable = $this->extensionData['dynamicMethods'][$name]; + + if (!is_callable($dynamicCallable)) { + return null; + } + + return $dynamicCallable; + } +} diff --git a/src/Ushahidi/Core/Extension/ExtensionBase.php b/src/Ushahidi/Core/Extension/ExtensionBase.php new file mode 100644 index 0000000000..f78e7bb9c5 --- /dev/null +++ b/src/Ushahidi/Core/Extension/ExtensionBase.php @@ -0,0 +1,17 @@ + [], + 'methods' => ['extensionIsHiddenField', 'extensionIsHiddenMethod'] + ]; + + public function extensionApplyInitCallbacks() + { + $classes = array_merge([get_class($this)], class_parents($this)); + foreach ($classes as $class) { + if (isset(self::$extensionCallbacks[$class]) && is_array(self::$extensionCallbacks[$class])) { + foreach (self::$extensionCallbacks[$class] as $callback) { + call_user_func($callback, $this); + } + } + } + } + + /** + * Helper method for `::extend()` static method + * @param callable $callback + * @return void + */ + public static function extensionExtendCallback($callback) + { + $class = get_called_class(); + if ( + !isset(self::$extensionCallbacks[$class]) || + !is_array(self::$extensionCallbacks[$class]) + ) { + self::$extensionCallbacks[$class] = []; + } + + self::$extensionCallbacks[$class][] = $callback; + } + + protected function extensionHideField($name) + { + $this->extensionHidden['fields'][] = $name; + } + + protected function extensionHideMethod($name) + { + $this->extensionHidden['methods'][] = $name; + } + + public function extensionIsHiddenField($name) + { + return in_array($name, $this->extensionHidden['fields']); + } + + public function extensionIsHiddenMethod($name) + { + return in_array($name, $this->extensionHidden['methods']); + } + + public static function getCalledExtensionClass() + { + return self::$extendableStaticCalledClass; + } +} diff --git a/src/Ushahidi/Core/Extension/README.md b/src/Ushahidi/Core/Extension/README.md new file mode 100644 index 0000000000..9f0fe5f443 --- /dev/null +++ b/src/Ushahidi/Core/Extension/README.md @@ -0,0 +1,177 @@ +## Rain Extensions + +Adds the ability for classes to have *private traits*, also known as Behaviors. These are similar to native PHP Traits except they have some distinct benefits: + +1. Behaviors have their own constructor. +1. Behaviors can have private or protected methods. +1. Methods and property names can conflict safely. +1. Class can be extended with behaviors dynamically. + +Where you might use a trait like this: + + class MyClass + { + use \Ushahidi\Core\UtilityFunctions; + use \Ushahidi\Core\DeferredBinding; + } + +A behavior is used in a similar fashion: + + class MyClass extends \Ushahidi\Core\Extension\Extendable + { + public $implement = [ + 'October.Rain.UtilityFunctions', + 'October.Rain.DeferredBinding', + ]; + } + +Where you might define a trait like this: + + trait UtilityFunctions + { + public function sayHello() + { + echo "Hello from " . get_class($this); + } + } + +A behavior is defined like this: + + class UtilityFunctions extends \Ushahidi\Core\Extension\ExtensionBase + { + protected $parent; + + public function __construct($parent) + { + $this->parent = $parent; + } + + public function sayHello() + { + echo "Hello from " . get_class($this->parent); + } + } + +The extended object is always passed as the first parameter to the Behavior's constructor. + +### Usage example + +#### Behavior / Extension class + + controller = $controller; + } + + public function someMethod() + { + return "I come from the FormController Behavior!"; + } + + public function otherMethod() + { + return "You might not see me..."; + } + } + +#### Extending a class + +This `Controller` class will implement the `FormController` behavior and then the methods will become available (mixed in) to the class. We will override the `otherMethod` method. + + someMethod(); + + // Prints: I come from the main Controller! + echo $controller->otherMethod(); + + // Prints: You might not see me... + echo $controller->asExtension('FormController')->otherMethod(); + +### Dynamically using a behavior / Constructor extension + +Any class that uses the `Extendable` or `ExtendableTrait` can have its constructor extended with the static `extend()` method. The argument should pass a closure that will be called as part of the class constructor. For example: + + /** + * Extend the Pizza Shop to include the Master Splinter behavior too + */ + MyNamespace\Controller::extend(function($controller){ + + // Implement the list controller behavior dynamically + $controller->implement[] = 'MyNamespace.Behaviors.ListController'; + }); + +### Dynamically creating methods +Methods can be added to a `Model` through the use of `addDynamicMethod`. + + Post::extend(function($model) { + $model->addDynamicMethod('getTagsAttribute', function() use ($model) { + return $model->tags()->lists('name'); + }); + }); + +### Soft definition + +If a behavior class does not exist, like a trait, an *Class not found* error will be thrown. In some cases you may wish to suppress this error, for conditional implementation if a module is present in the system. You can do this by placing an `@` symbol at the beginning of the class name. + + class User extends \Ushahidi\Core\Extension\Extendable + { + public $implement = ['@RainLab.Translate.Behaviors.TranslatableModel']; + } + +If the class name `RainLab\Translate\Behaviors\TranslatableModel` does not exist, no error will be thrown. This is the equivalent of the following code: + + class User extends \Ushahidi\Core\Extension\Extendable + { + public $implement = []; + + public function __construct() + { + if (class_exists('RainLab\Translate\Behaviors\TranslatableModel')) { + $controller->implement[] = 'RainLab.Translate.Behaviors.TranslatableModel'; + } + + parent::__construct(); + } + } + +### Using Traits instead of base classes + +In some cases you may not wish to extend the `ExtensionBase` or `Extendable` classes, due to other needs. So you can use the traits instead, although obviously the behavior methods will not be available to the parent class. + +- When using the `ExtensionTrait` the methods from `ExtensionBase` should be applied to the class. + +- When using the `ExtendableTrait` the methods from `Extendable` should be applied to the class. From 4342fc8ef2c7180e3687b3389db7d0a84a169238 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Tue, 28 Feb 2023 16:08:45 +0100 Subject: [PATCH 02/75] test: ability for classes to have behaviours --- tests/Unit/Core/Extension/ExtendableTest.php | 427 +++++++++++++++++++ tests/Unit/Core/Extension/ExtensionTest.php | 37 ++ 2 files changed, 464 insertions(+) create mode 100644 tests/Unit/Core/Extension/ExtendableTest.php create mode 100644 tests/Unit/Core/Extension/ExtensionTest.php diff --git a/tests/Unit/Core/Extension/ExtendableTest.php b/tests/Unit/Core/Extension/ExtendableTest.php new file mode 100644 index 0000000000..3fab5606ed --- /dev/null +++ b/tests/Unit/Core/Extension/ExtendableTest.php @@ -0,0 +1,427 @@ +assertNull($subject->classAttribute); + + ExtendableTestExampleExtendableClass::extend(function ($extension) { + $extension->classAttribute = 'bar'; + }); + + $subject = new ExtendableTestExampleExtendableClass; + $this->assertEquals('bar', $subject->classAttribute); + } + + public function testSettingDeclaredPropertyOnClass() + { + $subject = new ExtendableTestExampleExtendableClass; + $subject->classAttribute = 'Test'; + $this->assertEquals('Test', $subject->classAttribute); + } + + // public function testSettingUndeclaredPropertyOnClass() + // { + // $this->expectException(\BadMethodCallException::class); + // $this->expectExceptionMessage("Call to undefined property ExtendableTestExampleExtendableClass::newAttribute"); + + // $subject = new ExtendableTestExampleExtendableClass; + // $subject->newAttribute = 'Test'; + // } + + public function testSettingDeclaredPropertyOnBehavior() + { + $subject = new ExtendableTestExampleExtendableClass; + $behavior = $subject->getClassExtension('ExtendableTestExampleBehaviorClass1'); + + $subject->behaviorAttribute = 'Test'; + $this->assertEquals('Test', $subject->behaviorAttribute); + $this->assertEquals('Test', $behavior->behaviorAttribute); + $this->assertTrue($subject->isClassExtendedWith('ExtendableTestExampleBehaviorClass1')); + } + + public function testDynamicPropertyOnClass() + { + $subject = new ExtendableTestExampleExtendableClass; + $this->assertFalse(property_exists($subject, 'newAttribute')); + $subject->addDynamicProperty('dynamicAttribute', 'Test'); + $this->assertEquals('Test', $subject->dynamicAttribute); + $this->assertTrue(property_exists($subject, 'dynamicAttribute')); + } + + public function testDynamicallyImplementingClass() + { + ExtendableTestExampleImplementableClass::extend(function($obj) { + $obj->implementClassWith('ExtendableTestExampleBehaviorClass2'); + $obj->implementClassWith('ExtendableTestExampleBehaviorClass2'); + $obj->implementClassWith('ExtendableTestExampleBehaviorClass2'); + }); + + $subject = new ExtendableTestExampleImplementableClass; + $this->assertTrue($subject->isClassExtendedWith('ExtendableTestExampleBehaviorClass1')); + $this->assertTrue($subject->isClassExtendedWith('ExtendableTestExampleBehaviorClass2')); + } + + public function testDynamicallyExtendingClass() + { + $subject = new ExtendableTestExampleExtendableClass; + $subject->extendClassWith('ExtendableTestExampleBehaviorClass2'); + + $this->assertTrue($subject->isClassExtendedWith('ExtendableTestExampleBehaviorClass1')); + $this->assertTrue($subject->isClassExtendedWith('ExtendableTestExampleBehaviorClass2')); + } + + public function testDynamicMethodOnClass() + { + $subject = new ExtendableTestExampleExtendableClass; + $subject->addDynamicMethod('getFooAnotherWay', 'getFoo', 'ExtendableTestExampleBehaviorClass1'); + + $this->assertEquals('foo', $subject->getFoo()); + $this->assertEquals('foo', $subject->getFooAnotherWay()); + } + + public function testDynamicExtendAndMethodOnClass() + { + $subject = new ExtendableTestExampleExtendableClass; + $subject->extendClassWith('ExtendableTestExampleBehaviorClass2'); + $subject->addDynamicMethod('getOriginalFoo', 'getFoo', 'ExtendableTestExampleBehaviorClass1'); + + $this->assertTrue($subject->isClassExtendedWith('ExtendableTestExampleBehaviorClass1')); + $this->assertTrue($subject->isClassExtendedWith('ExtendableTestExampleBehaviorClass2')); + $this->assertEquals('bar', $subject->getFoo()); + $this->assertEquals('foo', $subject->getOriginalFoo()); + } + + public function testDynamicClosureOnClass() + { + $subject = new ExtendableTestExampleExtendableClass; + $subject->addDynamicMethod('sayHello', function () { + return 'Hello world'; + }); + + $this->assertEquals('Hello world', $subject->sayHello()); + } + + public function testDynamicCallableOnClass() + { + $subject = new ExtendableTestExampleExtendableClass; + $subject->addDynamicMethod('getAppName', ['ExtendableTestExampleClass', 'getName']); + + $this->assertEquals('october', $subject->getAppName()); + } + + public function testCallingStaticMethod() + { + $result = ExtendableTestExampleExtendableClass::getStaticBar(); + $this->assertEquals('bar', $result); + + $result = ExtendableTestExampleExtendableClass::vanillaIceIce(); + $this->assertEquals('baby', $result); + } + + public function testCallingUndefinedStaticMethod() + { + $this->expectException(BadMethodCallException::class); + $this->expectExceptionMessage('Call to undefined method ExtendableTestExampleExtendableClass::undefinedMethod()'); + + $result = ExtendableTestExampleExtendableClass::undefinedMethod(); + $this->assertEquals('bar', $result); + } + + // public function testAccessingProtectedProperty() + // { + // $this->expectException(BadMethodCallException::class); + // $this->expectExceptionMessage('Call to undefined property ExtendableTestExampleExtendableClass::protectedFoo'); + + // $subject = new ExtendableTestExampleExtendableClass; + // $this->assertEmpty($subject->protectedFoo); + + // $subject->protectedFoo = 'snickers'; + // $this->assertEquals('bar', $subject->getProtectedFooAttribute()); + // } + + public function testAccessingProtectedMethod() + { + $this->expectException(BadMethodCallException::class); + $this->expectExceptionMessage('Call to undefined method ExtendableTestExampleExtendableClass::protectedBar()'); + + $subject = new ExtendableTestExampleExtendableClass; + echo $subject->protectedBar(); + } + + public function testAccessingProtectedStaticMethod() + { + $this->expectException(BadMethodCallException::class); + $this->expectExceptionMessage('Call to undefined method ExtendableTestExampleExtendableClass::protectedMars()'); + + echo ExtendableTestExampleExtendableClass::protectedMars(); + } + + public function testInvalidImplementValue() + { + $this->expectException(Exception::class); + $this->expectExceptionMessage('Class ExtendableTestInvalidExtendableClass contains an invalid $implement value'); + + $result = new ExtendableTestInvalidExtendableClass; + } + + public function testSoftImplementFake() + { + $result = new ExtendableTestExampleExtendableSoftImplementFakeClass; + $this->assertFalse($result->isClassExtendedWith('RabbleRabbleRabble')); + $this->assertEquals('working', $result->getStatus()); + } + + public function testSoftImplementReal() + { + $result = new ExtendableTestExampleExtendableSoftImplementRealClass; + $this->assertTrue($result->isClassExtendedWith('ExtendableTestExampleBehaviorClass1')); + $this->assertEquals('foo', $result->getFoo()); + } + + public function testSoftImplementCombo() + { + $result = new ExtendableTestExampleExtendableSoftImplementComboClass; + $this->assertFalse($result->isClassExtendedWith('RabbleRabbleRabble')); + $this->assertTrue($result->isClassExtendedWith('ExtendableTestExampleBehaviorClass1')); + $this->assertTrue($result->isClassExtendedWith('ExtendableTestExampleBehaviorClass2')); + $this->assertEquals('bar', $result->getFoo()); // ExtendableTestExampleBehaviorClass2 takes priority, defined last + } + + public function testDotNotation() + { + $subject = new ExtendableTestExampleExtendableClassDotNotation(); + $subject->extendClassWith('ExtendableTest.ExampleBehaviorClass2'); + + $this->assertTrue($subject->isClassExtendedWith('ExtendableTest.ExampleBehaviorClass1')); + $this->assertTrue($subject->isClassExtendedWith('ExtendableTest.ExampleBehaviorClass2')); + } + + public function testMethodExists() + { + $subject = new ExtendableTestExampleExtendableClass; + $this->assertTrue($subject->methodExists('extend')); + } + + public function testMethodNotExists() + { + $subject = new ExtendableTestExampleExtendableClass; + $this->assertFalse($subject->methodExists('missingFunction')); + } + + public function testDynamicMethodExists() + { + $subject = new ExtendableTestExampleExtendableClass; + $subject->addDynamicMethod('getFooAnotherWay', 'getFoo', 'ExtendableTestExampleBehaviorClass1'); + + $this->assertTrue($subject->methodExists('getFooAnotherWay')); + } + + public function testGetClassMethods() + { + $subject = new ExtendableTestExampleExtendableClass; + $subject->addDynamicMethod('getFooAnotherWay', 'getFoo', 'ExtendableTestExampleBehaviorClass1'); + $methods = $subject->getClassMethods(); + + $this->assertContains('extend', $methods); + $this->assertContains('getFoo', $methods); + $this->assertContains('getFooAnotherWay', $methods); + $this->assertNotContains('missingFunction', $methods); + } + + public function testIsInstanceOf() + { + $subject1 = new ExtendableTestExampleExtendableClass; + $subject2 = new ExtendableTestExampleExtendableSoftImplementFakeClass; + $subject3 = new ExtendableTestExampleExtendableSoftImplementRealClass; + + $this->assertTrue($subject1->isClassInstanceOf(ExampleExtendableInterface::class)); + $this->assertFalse($subject2->isClassInstanceOf(ExampleExtendableInterface::class)); + $this->assertTrue($subject3->isClassInstanceOf(ExampleExtendableInterface::class)); + } +} + +// +// Test classes +// + +interface ExampleExtendableInterface +{ + public function hasPanda(); +} + +/** + * Example behavior classes + */ +class ExtendableTestExampleBehaviorClass1 extends ExtensionBase +{ + public $behaviorAttribute; + + public function getFoo() + { + return 'foo'; + } + + public static function getStaticBar() + { + return 'bar'; + } + + public static function vanillaIceIce() + { + return 'cream'; + } + + public function hasPanda() + { + return true; + } +} + +class ExtendableTestExampleBehaviorClass2 extends ExtensionBase +{ + public $behaviorAttribute; + + public function getFoo() + { + return 'bar'; + } +} + +/* + * Example class that has an invalid implementation + */ +class ExtendableTestInvalidExtendableClass extends Extendable +{ + public $implement = 24; + + public $classAttribute; +} + +/* + * Example class that has extensions enabled + */ +class ExtendableTestExampleExtendableClass extends Extendable +{ + public $implement = ['ExtendableTestExampleBehaviorClass1']; + + public $classAttribute; + + protected $protectedFoo = 'bar'; + + public static function vanillaIceIce() + { + return 'baby'; + } + + protected function protectedBar() + { + return 'foo'; + } + + protected static function protectedMars() + { + return 'bar'; + } + + public function getProtectedFooAttribute() + { + return $this->protectedFoo; + } +} + +/** + * ExtendableTestExampleImplementableClass + */ +class ExtendableTestExampleImplementableClass extends Extendable +{ + public $implement = ['ExtendableTestExampleBehaviorClass1']; +} + +/** + * A normal class without extensions enabled + */ +class ExtendableTestExampleClass +{ + public static function getName() + { + return 'october'; + } +} + +/* + * Example class with soft implement failure + */ +class ExtendableTestExampleExtendableSoftImplementFakeClass extends Extendable +{ + public $implement = ['@RabbleRabbleRabble']; + + public static function getStatus() + { + return 'working'; + } +} + +/* + * Example class with soft implement success + */ +class ExtendableTestExampleExtendableSoftImplementRealClass extends Extendable +{ + public $implement = ['@ExtendableTestExampleBehaviorClass1']; +} + +/* + * Example class with soft implement hybrid + */ +class ExtendableTestExampleExtendableSoftImplementComboClass extends Extendable +{ + public $implement = [ + 'ExtendableTestExampleBehaviorClass1', + '@ExtendableTestExampleBehaviorClass2', + '@RabbleRabbleRabble' + ]; +} + +/* + * Example class that has extensions enabled using dot notation + */ +class ExtendableTestExampleExtendableClassDotNotation extends Extendable +{ + public $implement = ['ExtendableTest.ExampleBehaviorClass1']; + + public $classAttribute; + + protected $protectedFoo = 'bar'; + + public static function vanillaIceIce() + { + return 'baby'; + } + + protected function protectedBar() + { + return 'foo'; + } + + protected static function protectedMars() + { + return 'bar'; + } + + public function getProtectedFooAttribute() + { + return $this->protectedFoo; + } +} + +/* + * Add namespaced aliases for dot notation test + */ +class_alias('ExtendableTestExampleBehaviorClass1', 'ExtendableTest\\ExampleBehaviorClass1'); +class_alias('ExtendableTestExampleBehaviorClass2', 'ExtendableTest\\ExampleBehaviorClass2'); diff --git a/tests/Unit/Core/Extension/ExtensionTest.php b/tests/Unit/Core/Extension/ExtensionTest.php new file mode 100644 index 0000000000..afe4d7ca24 --- /dev/null +++ b/tests/Unit/Core/Extension/ExtensionTest.php @@ -0,0 +1,37 @@ +assertEquals('foo', $subject->behaviorAttribute); + + ExtensionTestExampleBehaviorClass1::extend(function ($extension) { + $extension->behaviorAttribute = 'bar'; + }); + + $subject = new ExtensionTestExampleExtendableClass; + $this->assertEquals('bar', $subject->behaviorAttribute); + } +} + +/* + * Example class that has extensions enabled + */ +class ExtensionTestExampleExtendableClass extends Extendable +{ + public $implement = ['ExtensionTestExampleBehaviorClass1']; +} + +/** + * Example behavior classes + */ +class ExtensionTestExampleBehaviorClass1 extends ExtensionBase +{ + public $behaviorAttribute = 'foo'; +} From 999af36f37d4d4cb43a3922816c0d44a35950267 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Tue, 28 Feb 2023 17:09:50 +0100 Subject: [PATCH 03/75] chore: move repository interfaces from contracts dir back to the core entity dir --- .../Repository => Core}/Entity/ApiKeyRepository.php | 2 +- .../Repository => Core}/Entity/CSVRepository.php | 2 +- .../Repository => Core}/Entity/ConfigRepository.php | 2 +- .../Repository => Core}/Entity/ContactRepository.php | 2 +- .../Entity/CountryCodeRepository.php | 2 +- .../Entity/DataProviderRepository.php | 2 +- .../Entity/ExportBatchRepository.php | 2 +- .../Repository => Core}/Entity/ExportJobRepository.php | 2 +- .../Entity/FormAttributeRepository.php | 10 +++++----- .../Entity/FormContactRepository.php | 10 +++++----- .../Repository => Core}/Entity/FormRepository.php | 2 +- .../Repository => Core}/Entity/FormRoleRepository.php | 2 +- .../Repository => Core}/Entity/FormStageRepository.php | 8 ++++---- .../Repository => Core}/Entity/FormStatsRepository.php | 2 +- .../Entity/HXL}/HXLAttributeRepository.php | 2 +- .../HXL}/HXLFormAttributeHXLAttributeTagRepository.php | 2 +- .../Entity/HXL}/HXLLicenseRepository.php | 2 +- .../Entity/HXL}/HXLMetadataRepository.php | 2 +- .../Entity => Core/Entity/HXL}/HXLTagRepository.php | 2 +- .../Repository => Core}/Entity/MediaRepository.php | 2 +- .../Repository => Core}/Entity/MessageRepository.php | 2 +- .../Entity/NotificationQueueRepository.php | 2 +- .../Entity/NotificationRepository.php | 2 +- .../Entity/PermissionRepository.php | 2 +- .../Entity/PostExportRepository.php | 2 +- .../Repository => Core}/Entity/PostLockRepository.php | 2 +- .../Repository => Core}/Entity/PostRepository.php | 2 +- .../Repository => Core}/Entity/PostValueRepository.php | 4 ++-- .../Repository => Core}/Entity/ReadTosRepository.php | 2 +- .../Repository => Core}/Entity/RoleRepository.php | 2 +- .../Repository => Core}/Entity/SetRepository.php | 2 +- .../Repository => Core}/Entity/TagRepository.php | 2 +- .../Entity/TargetedSurveyStateRepository.php | 2 +- .../Repository => Core}/Entity/TosRepository.php | 3 +-- .../Repository => Core}/Entity/UserRepository.php | 2 +- .../Entity/UserSettingRepository.php | 4 ++-- .../Entity/WebhookJobRepository.php | 2 +- .../Repository => Core}/Entity/WebhookRepository.php | 2 +- 38 files changed, 51 insertions(+), 52 deletions(-) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/ApiKeyRepository.php (89%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/CSVRepository.php (89%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/ConfigRepository.php (92%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/ContactRepository.php (95%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/CountryCodeRepository.php (88%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/DataProviderRepository.php (88%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/ExportBatchRepository.php (93%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/ExportJobRepository.php (95%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/FormAttributeRepository.php (82%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/FormContactRepository.php (67%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/FormRepository.php (94%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/FormRoleRepository.php (94%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/FormStageRepository.php (79%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/FormStatsRepository.php (89%) rename src/Ushahidi/{Contracts/Repository/Entity => Core/Entity/HXL}/HXLAttributeRepository.php (88%) rename src/Ushahidi/{Contracts/Repository/Entity => Core/Entity/HXL}/HXLFormAttributeHXLAttributeTagRepository.php (88%) rename src/Ushahidi/{Contracts/Repository/Entity => Core/Entity/HXL}/HXLLicenseRepository.php (91%) rename src/Ushahidi/{Contracts/Repository/Entity => Core/Entity/HXL}/HXLMetadataRepository.php (91%) rename src/Ushahidi/{Contracts/Repository/Entity => Core/Entity/HXL}/HXLTagRepository.php (87%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/MediaRepository.php (90%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/MessageRepository.php (97%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/NotificationQueueRepository.php (93%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/NotificationRepository.php (89%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/PermissionRepository.php (89%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/PostExportRepository.php (92%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/PostLockRepository.php (92%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/PostRepository.php (95%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/PostValueRepository.php (88%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/ReadTosRepository.php (89%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/RoleRepository.php (93%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/SetRepository.php (95%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/TagRepository.php (92%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/TargetedSurveyStateRepository.php (94%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/TosRepository.php (85%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/UserRepository.php (95%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/UserSettingRepository.php (81%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/WebhookJobRepository.php (92%) rename src/Ushahidi/{Contracts/Repository => Core}/Entity/WebhookRepository.php (89%) diff --git a/src/Ushahidi/Contracts/Repository/Entity/ApiKeyRepository.php b/src/Ushahidi/Core/Entity/ApiKeyRepository.php similarity index 89% rename from src/Ushahidi/Contracts/Repository/Entity/ApiKeyRepository.php rename to src/Ushahidi/Core/Entity/ApiKeyRepository.php index 38306a20a3..173e62d2a1 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/ApiKeyRepository.php +++ b/src/Ushahidi/Core/Entity/ApiKeyRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityExists; use Ushahidi\Contracts\Repository\CreateRepository; diff --git a/src/Ushahidi/Contracts/Repository/Entity/CSVRepository.php b/src/Ushahidi/Core/Entity/CSVRepository.php similarity index 89% rename from src/Ushahidi/Contracts/Repository/Entity/CSVRepository.php rename to src/Ushahidi/Core/Entity/CSVRepository.php index 8f85986606..4cd729d153 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/CSVRepository.php +++ b/src/Ushahidi/Core/Entity/CSVRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityGet; use Ushahidi\Contracts\EntityExists; diff --git a/src/Ushahidi/Contracts/Repository/Entity/ConfigRepository.php b/src/Ushahidi/Core/Entity/ConfigRepository.php similarity index 92% rename from src/Ushahidi/Contracts/Repository/Entity/ConfigRepository.php rename to src/Ushahidi/Core/Entity/ConfigRepository.php index 51bd24c88d..1a189fc33d 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/ConfigRepository.php +++ b/src/Ushahidi/Core/Entity/ConfigRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\Repository\ReadRepository; use Ushahidi\Contracts\Repository\UpdateRepository; diff --git a/src/Ushahidi/Contracts/Repository/Entity/ContactRepository.php b/src/Ushahidi/Core/Entity/ContactRepository.php similarity index 95% rename from src/Ushahidi/Contracts/Repository/Entity/ContactRepository.php rename to src/Ushahidi/Core/Entity/ContactRepository.php index eaa390383f..d9da053e18 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/ContactRepository.php +++ b/src/Ushahidi/Core/Entity/ContactRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityCreate; use Ushahidi\Contracts\EntityCreateMany; diff --git a/src/Ushahidi/Contracts/Repository/Entity/CountryCodeRepository.php b/src/Ushahidi/Core/Entity/CountryCodeRepository.php similarity index 88% rename from src/Ushahidi/Contracts/Repository/Entity/CountryCodeRepository.php rename to src/Ushahidi/Core/Entity/CountryCodeRepository.php index 0d519047ec..acd3a8ffdc 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/CountryCodeRepository.php +++ b/src/Ushahidi/Core/Entity/CountryCodeRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityGet; diff --git a/src/Ushahidi/Contracts/Repository/Entity/DataProviderRepository.php b/src/Ushahidi/Core/Entity/DataProviderRepository.php similarity index 88% rename from src/Ushahidi/Contracts/Repository/Entity/DataProviderRepository.php rename to src/Ushahidi/Core/Entity/DataProviderRepository.php index f5ba3e7bb3..793ba5b0ff 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/DataProviderRepository.php +++ b/src/Ushahidi/Core/Entity/DataProviderRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityGet; diff --git a/src/Ushahidi/Contracts/Repository/Entity/ExportBatchRepository.php b/src/Ushahidi/Core/Entity/ExportBatchRepository.php similarity index 93% rename from src/Ushahidi/Contracts/Repository/Entity/ExportBatchRepository.php rename to src/Ushahidi/Core/Entity/ExportBatchRepository.php index b924f31fe8..45274290de 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/ExportBatchRepository.php +++ b/src/Ushahidi/Core/Entity/ExportBatchRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\Repository\CreateRepository; use Ushahidi\Contracts\Repository\SearchRepository; diff --git a/src/Ushahidi/Contracts/Repository/Entity/ExportJobRepository.php b/src/Ushahidi/Core/Entity/ExportJobRepository.php similarity index 95% rename from src/Ushahidi/Contracts/Repository/Entity/ExportJobRepository.php rename to src/Ushahidi/Core/Entity/ExportJobRepository.php index 5f3c5b7e51..64966687a3 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/ExportJobRepository.php +++ b/src/Ushahidi/Core/Entity/ExportJobRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityExists; use Ushahidi\Contracts\Repository\ReadRepository; diff --git a/src/Ushahidi/Contracts/Repository/Entity/FormAttributeRepository.php b/src/Ushahidi/Core/Entity/FormAttributeRepository.php similarity index 82% rename from src/Ushahidi/Contracts/Repository/Entity/FormAttributeRepository.php rename to src/Ushahidi/Core/Entity/FormAttributeRepository.php index 3f8776d207..85bdedcf1b 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/FormAttributeRepository.php +++ b/src/Ushahidi/Core/Entity/FormAttributeRepository.php @@ -10,7 +10,7 @@ * GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\EntityGet; @@ -34,24 +34,24 @@ public function getByKey($key, $form_id = null, $include_no_form = false); /** * @param int $form_id - * @return [Ushahidi\Contracts\Repository\Entity\FormAttribute, ...] + * @return [Ushahidi\Core\Entity\FormAttribute, ...] */ public function getByForm($form_id); /** * @param int $form_id - * @return [Ushahidi\Contracts\Repository\Entity\FormAttribute, ...] + * @return [Ushahidi\Core\Entity\FormAttribute, ...] */ public function getFirstNonDefaultByForm($form_id); /** - * @return [Ushahidi\Contracts\Repository\Entity\FormAttribute, ...] + * @return [Ushahidi\Core\Entity\FormAttribute, ...] */ public function getAll(); /** * @param int $stage_id - * @return [Ushahidi\Contracts\Repository\Entity\FormAttribute, ...] + * @return [Ushahidi\Core\Entity\FormAttribute, ...] */ public function getRequired($stage_id); diff --git a/src/Ushahidi/Contracts/Repository/Entity/FormContactRepository.php b/src/Ushahidi/Core/Entity/FormContactRepository.php similarity index 67% rename from src/Ushahidi/Contracts/Repository/Entity/FormContactRepository.php rename to src/Ushahidi/Core/Entity/FormContactRepository.php index 2ec4dc1c5e..d07229022e 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/FormContactRepository.php +++ b/src/Ushahidi/Core/Entity/FormContactRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityGet; use Ushahidi\Contracts\EntityExists; @@ -21,20 +21,20 @@ interface FormContactRepository extends /** * @param int $form_id - * @return [Ushahidi\Contracts\Repository\Entity\FormContact, ...] + * @return [Ushahidi\Core\Entity\FormContact, ...] */ public function getByForm($form_id); /** * @param int $contact_id * @param int $form_id - * @return [Ushahidi\Contracts\Repository\Entity\FormContact, ...] + * @return [Ushahidi\Core\Entity\FormContact, ...] */ public function existsInFormContact($contact_id, $form_id); /** - * @param [Ushahidi\Contracts\Repository\Entity\FormContact, ...] $entities - * @return [Ushahidi\Contracts\Repository\Entity\FormContact, ...] + * @param [Ushahidi\Core\Entity\FormContact, ...] $entities + * @return [Ushahidi\Core\Entity\FormContact, ...] */ public function updateCollection(array $entities); } diff --git a/src/Ushahidi/Contracts/Repository/Entity/FormRepository.php b/src/Ushahidi/Core/Entity/FormRepository.php similarity index 94% rename from src/Ushahidi/Contracts/Repository/Entity/FormRepository.php rename to src/Ushahidi/Core/Entity/FormRepository.php index f1a59ad225..c60cdf5d8b 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/FormRepository.php +++ b/src/Ushahidi/Core/Entity/FormRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityCreate; use Ushahidi\Contracts\EntityCreateMany; diff --git a/src/Ushahidi/Contracts/Repository/Entity/FormRoleRepository.php b/src/Ushahidi/Core/Entity/FormRoleRepository.php similarity index 94% rename from src/Ushahidi/Contracts/Repository/Entity/FormRoleRepository.php rename to src/Ushahidi/Core/Entity/FormRoleRepository.php index 285b6a1c22..d0628615fc 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/FormRoleRepository.php +++ b/src/Ushahidi/Core/Entity/FormRoleRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityGet; use Ushahidi\Contracts\EntityExists; diff --git a/src/Ushahidi/Contracts/Repository/Entity/FormStageRepository.php b/src/Ushahidi/Core/Entity/FormStageRepository.php similarity index 79% rename from src/Ushahidi/Contracts/Repository/Entity/FormStageRepository.php rename to src/Ushahidi/Core/Entity/FormStageRepository.php index d1775cacea..79b560e4d4 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/FormStageRepository.php +++ b/src/Ushahidi/Core/Entity/FormStageRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityCreate; use Ushahidi\Contracts\EntityGet; @@ -23,14 +23,14 @@ interface FormStageRepository extends /** * @param int $form_id - * @return [Ushahidi\Contracts\Repository\Entity\FormStage, ...] + * @return [Ushahidi\Core\Entity\FormStage, ...] */ public function getByForm($form_id); /** * @param int $id * @param int $form_id - * @return [Ushahidi\Contracts\Repository\Entity\FormStage, ...] + * @return [Ushahidi\Core\Entity\FormStage, ...] */ public function existsInForm($id, $form_id); @@ -38,7 +38,7 @@ public function existsInForm($id, $form_id); * Get required stages for form * * @param int $form_id - * @return [Ushahidi\Contracts\Repository\Entity\FormAttribute, ...] + * @return [Ushahidi\Core\Entity\FormAttribute, ...] */ public function getRequired($form_id); diff --git a/src/Ushahidi/Contracts/Repository/Entity/FormStatsRepository.php b/src/Ushahidi/Core/Entity/FormStatsRepository.php similarity index 89% rename from src/Ushahidi/Contracts/Repository/Entity/FormStatsRepository.php rename to src/Ushahidi/Core/Entity/FormStatsRepository.php index 1872401d31..9b7b8e309d 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/FormStatsRepository.php +++ b/src/Ushahidi/Core/Entity/FormStatsRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityGet; use Ushahidi\Contracts\EntityExists; diff --git a/src/Ushahidi/Contracts/Repository/Entity/HXLAttributeRepository.php b/src/Ushahidi/Core/Entity/HXL/HXLAttributeRepository.php similarity index 88% rename from src/Ushahidi/Contracts/Repository/Entity/HXLAttributeRepository.php rename to src/Ushahidi/Core/Entity/HXL/HXLAttributeRepository.php index 944659ea6a..9de95c2e57 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/HXLAttributeRepository.php +++ b/src/Ushahidi/Core/Entity/HXL/HXLAttributeRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity\HXL; use Ushahidi\Contracts\EntityGet; diff --git a/src/Ushahidi/Contracts/Repository/Entity/HXLFormAttributeHXLAttributeTagRepository.php b/src/Ushahidi/Core/Entity/HXL/HXLFormAttributeHXLAttributeTagRepository.php similarity index 88% rename from src/Ushahidi/Contracts/Repository/Entity/HXLFormAttributeHXLAttributeTagRepository.php rename to src/Ushahidi/Core/Entity/HXL/HXLFormAttributeHXLAttributeTagRepository.php index 70ac479e51..a9116329fe 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/HXLFormAttributeHXLAttributeTagRepository.php +++ b/src/Ushahidi/Core/Entity/HXL/HXLFormAttributeHXLAttributeTagRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity\HXL; use Ushahidi\Contracts\EntityGet; diff --git a/src/Ushahidi/Contracts/Repository/Entity/HXLLicenseRepository.php b/src/Ushahidi/Core/Entity/HXL/HXLLicenseRepository.php similarity index 91% rename from src/Ushahidi/Contracts/Repository/Entity/HXLLicenseRepository.php rename to src/Ushahidi/Core/Entity/HXL/HXLLicenseRepository.php index ef63191a19..0476454109 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/HXLLicenseRepository.php +++ b/src/Ushahidi/Core/Entity/HXL/HXLLicenseRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity\HXL; use Ushahidi\Contracts\EntityGet; use Ushahidi\Contracts\Repository\ReadRepository; diff --git a/src/Ushahidi/Contracts/Repository/Entity/HXLMetadataRepository.php b/src/Ushahidi/Core/Entity/HXL/HXLMetadataRepository.php similarity index 91% rename from src/Ushahidi/Contracts/Repository/Entity/HXLMetadataRepository.php rename to src/Ushahidi/Core/Entity/HXL/HXLMetadataRepository.php index 32eeaf7d0b..34b7aa9379 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/HXLMetadataRepository.php +++ b/src/Ushahidi/Core/Entity/HXL/HXLMetadataRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity\HXL; use Ushahidi\Contracts\EntityGet; use Ushahidi\Contracts\Repository\ReadRepository; diff --git a/src/Ushahidi/Contracts/Repository/Entity/HXLTagRepository.php b/src/Ushahidi/Core/Entity/HXL/HXLTagRepository.php similarity index 87% rename from src/Ushahidi/Contracts/Repository/Entity/HXLTagRepository.php rename to src/Ushahidi/Core/Entity/HXL/HXLTagRepository.php index 39d731bb36..d0dda82954 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/HXLTagRepository.php +++ b/src/Ushahidi/Core/Entity/HXL/HXLTagRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity\HXL; use Ushahidi\Contracts\EntityGet; diff --git a/src/Ushahidi/Contracts/Repository/Entity/MediaRepository.php b/src/Ushahidi/Core/Entity/MediaRepository.php similarity index 90% rename from src/Ushahidi/Contracts/Repository/Entity/MediaRepository.php rename to src/Ushahidi/Core/Entity/MediaRepository.php index 9694f065e9..ba57825f61 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/MediaRepository.php +++ b/src/Ushahidi/Core/Entity/MediaRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityGet; use Ushahidi\Contracts\EntityExists; diff --git a/src/Ushahidi/Contracts/Repository/Entity/MessageRepository.php b/src/Ushahidi/Core/Entity/MessageRepository.php similarity index 97% rename from src/Ushahidi/Contracts/Repository/Entity/MessageRepository.php rename to src/Ushahidi/Core/Entity/MessageRepository.php index 44c47786c2..d2992f1478 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/MessageRepository.php +++ b/src/Ushahidi/Core/Entity/MessageRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\EntityCreate; diff --git a/src/Ushahidi/Contracts/Repository/Entity/NotificationQueueRepository.php b/src/Ushahidi/Core/Entity/NotificationQueueRepository.php similarity index 93% rename from src/Ushahidi/Contracts/Repository/Entity/NotificationQueueRepository.php rename to src/Ushahidi/Core/Entity/NotificationQueueRepository.php index df5748a480..935703ac28 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/NotificationQueueRepository.php +++ b/src/Ushahidi/Core/Entity/NotificationQueueRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityGet; use Ushahidi\Contracts\EntityExists; diff --git a/src/Ushahidi/Contracts/Repository/Entity/NotificationRepository.php b/src/Ushahidi/Core/Entity/NotificationRepository.php similarity index 89% rename from src/Ushahidi/Contracts/Repository/Entity/NotificationRepository.php rename to src/Ushahidi/Core/Entity/NotificationRepository.php index 691238e028..a9fd05e174 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/NotificationRepository.php +++ b/src/Ushahidi/Core/Entity/NotificationRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityGet; use Ushahidi\Contracts\EntityExists; diff --git a/src/Ushahidi/Contracts/Repository/Entity/PermissionRepository.php b/src/Ushahidi/Core/Entity/PermissionRepository.php similarity index 89% rename from src/Ushahidi/Contracts/Repository/Entity/PermissionRepository.php rename to src/Ushahidi/Core/Entity/PermissionRepository.php index 7f62c15cd5..de5ff63ab4 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/PermissionRepository.php +++ b/src/Ushahidi/Core/Entity/PermissionRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityGet; use Ushahidi\Contracts\EntityExists; diff --git a/src/Ushahidi/Contracts/Repository/Entity/PostExportRepository.php b/src/Ushahidi/Core/Entity/PostExportRepository.php similarity index 92% rename from src/Ushahidi/Contracts/Repository/Entity/PostExportRepository.php rename to src/Ushahidi/Core/Entity/PostExportRepository.php index e39f8d58e4..2ed5975587 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/PostExportRepository.php +++ b/src/Ushahidi/Core/Entity/PostExportRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; interface PostExportRepository { diff --git a/src/Ushahidi/Contracts/Repository/Entity/PostLockRepository.php b/src/Ushahidi/Core/Entity/PostLockRepository.php similarity index 92% rename from src/Ushahidi/Contracts/Repository/Entity/PostLockRepository.php rename to src/Ushahidi/Core/Entity/PostLockRepository.php index df9b393636..94c06dba35 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/PostLockRepository.php +++ b/src/Ushahidi/Core/Entity/PostLockRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityGet; diff --git a/src/Ushahidi/Contracts/Repository/Entity/PostRepository.php b/src/Ushahidi/Core/Entity/PostRepository.php similarity index 95% rename from src/Ushahidi/Contracts/Repository/Entity/PostRepository.php rename to src/Ushahidi/Core/Entity/PostRepository.php index 9c33c267e4..b52f1e8e9a 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/PostRepository.php +++ b/src/Ushahidi/Core/Entity/PostRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityCreate; use Ushahidi\Contracts\EntityCreateMany; diff --git a/src/Ushahidi/Contracts/Repository/Entity/PostValueRepository.php b/src/Ushahidi/Core/Entity/PostValueRepository.php similarity index 88% rename from src/Ushahidi/Contracts/Repository/Entity/PostValueRepository.php rename to src/Ushahidi/Core/Entity/PostValueRepository.php index 3727c41439..9e269966f4 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/PostValueRepository.php +++ b/src/Ushahidi/Core/Entity/PostValueRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; interface PostValueRepository { @@ -17,7 +17,7 @@ interface PostValueRepository * @param int $id * @param int $post_id * @param int $form_attribute_id - * @return Ushahidi\Contracts\Repository\Entity\PostValue + * @return Ushahidi\Core\Entity\PostValue */ public function get($id, $post_id = null, $form_attribute_id = null); diff --git a/src/Ushahidi/Contracts/Repository/Entity/ReadTosRepository.php b/src/Ushahidi/Core/Entity/ReadTosRepository.php similarity index 89% rename from src/Ushahidi/Contracts/Repository/Entity/ReadTosRepository.php rename to src/Ushahidi/Core/Entity/ReadTosRepository.php index 4e6c93c6f7..b1f2a5853b 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/ReadTosRepository.php +++ b/src/Ushahidi/Core/Entity/ReadTosRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; interface ReadTosRepository { diff --git a/src/Ushahidi/Contracts/Repository/Entity/RoleRepository.php b/src/Ushahidi/Core/Entity/RoleRepository.php similarity index 93% rename from src/Ushahidi/Contracts/Repository/Entity/RoleRepository.php rename to src/Ushahidi/Core/Entity/RoleRepository.php index b6f619556d..5b20620b04 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/RoleRepository.php +++ b/src/Ushahidi/Core/Entity/RoleRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityGet; use Ushahidi\Contracts\EntityExists; diff --git a/src/Ushahidi/Contracts/Repository/Entity/SetRepository.php b/src/Ushahidi/Core/Entity/SetRepository.php similarity index 95% rename from src/Ushahidi/Contracts/Repository/Entity/SetRepository.php rename to src/Ushahidi/Core/Entity/SetRepository.php index 5549d63ed4..5f75f11571 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/SetRepository.php +++ b/src/Ushahidi/Core/Entity/SetRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityGet; use Ushahidi\Contracts\EntityExists; diff --git a/src/Ushahidi/Contracts/Repository/Entity/TagRepository.php b/src/Ushahidi/Core/Entity/TagRepository.php similarity index 92% rename from src/Ushahidi/Contracts/Repository/Entity/TagRepository.php rename to src/Ushahidi/Core/Entity/TagRepository.php index 08dbf6db31..f40db94945 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/TagRepository.php +++ b/src/Ushahidi/Core/Entity/TagRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityCreate; use Ushahidi\Contracts\EntityCreateMany; diff --git a/src/Ushahidi/Contracts/Repository/Entity/TargetedSurveyStateRepository.php b/src/Ushahidi/Core/Entity/TargetedSurveyStateRepository.php similarity index 94% rename from src/Ushahidi/Contracts/Repository/Entity/TargetedSurveyStateRepository.php rename to src/Ushahidi/Core/Entity/TargetedSurveyStateRepository.php index 28e6bbc3a2..ebdbc61d98 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/TargetedSurveyStateRepository.php +++ b/src/Ushahidi/Core/Entity/TargetedSurveyStateRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityGet; use Ushahidi\Contracts\EntityExists; diff --git a/src/Ushahidi/Contracts/Repository/Entity/TosRepository.php b/src/Ushahidi/Core/Entity/TosRepository.php similarity index 85% rename from src/Ushahidi/Contracts/Repository/Entity/TosRepository.php rename to src/Ushahidi/Core/Entity/TosRepository.php index 82719346a6..610285782c 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/TosRepository.php +++ b/src/Ushahidi/Core/Entity/TosRepository.php @@ -9,9 +9,8 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\EntityCreate; use Ushahidi\Contracts\EntityGet; use Ushahidi\Contracts\EntityExists; diff --git a/src/Ushahidi/Contracts/Repository/Entity/UserRepository.php b/src/Ushahidi/Core/Entity/UserRepository.php similarity index 95% rename from src/Ushahidi/Contracts/Repository/Entity/UserRepository.php rename to src/Ushahidi/Core/Entity/UserRepository.php index 26a407663b..71776d95ee 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/UserRepository.php +++ b/src/Ushahidi/Core/Entity/UserRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\EntityCreate; diff --git a/src/Ushahidi/Contracts/Repository/Entity/UserSettingRepository.php b/src/Ushahidi/Core/Entity/UserSettingRepository.php similarity index 81% rename from src/Ushahidi/Contracts/Repository/Entity/UserSettingRepository.php rename to src/Ushahidi/Core/Entity/UserSettingRepository.php index b50c90f48a..e293894532 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/UserSettingRepository.php +++ b/src/Ushahidi/Core/Entity/UserSettingRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityGet; use Ushahidi\Contracts\EntityExists; @@ -22,7 +22,7 @@ interface UserSettingRepository extends /** * @param int $form_id * - * @return [Ushahidi\Contracts\Repository\Entity\UserSetting, ...] + * @return [Ushahidi\Core\Entity\UserSetting, ...] */ public function getByUser($user_id); } diff --git a/src/Ushahidi/Contracts/Repository/Entity/WebhookJobRepository.php b/src/Ushahidi/Core/Entity/WebhookJobRepository.php similarity index 92% rename from src/Ushahidi/Contracts/Repository/Entity/WebhookJobRepository.php rename to src/Ushahidi/Core/Entity/WebhookJobRepository.php index 3cdcae6ebf..d74713cef0 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/WebhookJobRepository.php +++ b/src/Ushahidi/Core/Entity/WebhookJobRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityGet; use Ushahidi\Contracts\EntityExists; diff --git a/src/Ushahidi/Contracts/Repository/Entity/WebhookRepository.php b/src/Ushahidi/Core/Entity/WebhookRepository.php similarity index 89% rename from src/Ushahidi/Contracts/Repository/Entity/WebhookRepository.php rename to src/Ushahidi/Core/Entity/WebhookRepository.php index 98e293f56f..851d926597 100644 --- a/src/Ushahidi/Contracts/Repository/Entity/WebhookRepository.php +++ b/src/Ushahidi/Core/Entity/WebhookRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository\Entity; +namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\EntityGet; use Ushahidi\Contracts\EntityExists; From 16d6beeb3fd987e4276df6515d6c0984cd401591 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Tue, 28 Feb 2023 17:16:01 +0100 Subject: [PATCH 04/75] chore: modify refrences and implementations of the repositiory interfaces to use the new namespace --- app/Console/Commands/ApikeySetCommand.php | 2 +- app/Console/Commands/ConfigGetCommand.php | 2 +- app/Console/Commands/ConfigSetCommand.php | 2 +- app/Console/Commands/SavedSearchCommand.php | 4 ++-- app/Console/Commands/UserCreateCommand.php | 4 ++-- app/Console/Commands/UserDeleteCommand.php | 2 +- app/Jobs/TestMultisiteJob.php | 4 ++-- app/Passport/TokenGuard.php | 2 +- app/Passport/UserRepository.php | 2 +- app/Providers/AppServiceProvider.php | 2 +- app/Providers/PassportServiceProvider.php | 2 +- .../Usecase/UserResetPasswordRepository.php | 3 +-- .../Core/Concerns/RecordsExportJobFailure.php | 2 +- src/Ushahidi/Core/Tool/Acl.php | 2 +- .../Authorizer/FormAttributeAuthorizer.php | 2 +- .../Core/Tool/Authorizer/FormAuthorizer.php | 2 +- .../Tool/Authorizer/FormContactAuthorizer.php | 2 +- .../Tool/Authorizer/FormRoleAuthorizer.php | 2 +- .../Tool/Authorizer/FormStageAuthorizer.php | 2 +- .../Core/Tool/Authorizer/PostAuthorizer.php | 8 +++---- src/Ushahidi/Core/Tool/Features.php | 2 +- .../Core/Tool/Permissions/PostPermissions.php | 8 +++---- .../Usecase/Concerns/VerifyFormLoaded.php | 4 ++-- .../Usecase/Concerns/VerifyStageLoaded.php | 2 +- .../Core/Usecase/Config/SearchConfig.php | 2 +- .../Core/Usecase/HXL/SendHXLUsecase.php | 10 ++++---- .../Core/Usecase/Message/ReceiveMessage.php | 4 ++-- .../Core/Usecase/Post/Concerns/FindPost.php | 2 +- .../Core/Usecase/Post/Concerns/PostLock.php | 2 +- src/Ushahidi/Core/Usecase/Post/ExportPost.php | 4 ++-- .../Core/Usecase/Set/SetRepositoryTrait.php | 2 +- src/Ushahidi/Core/Usecase/User/LoginUser.php | 4 ++-- src/Ushahidi/DataSource/DataSourceManager.php | 8 +++---- .../DataSource/DataSourceServiceProvider.php | 6 ++--- src/Ushahidi/DataSource/DataSourceStorage.php | 4 ++-- src/Ushahidi/DataSource/Email/Email.php | 2 +- src/Ushahidi/DataSource/Twitter/Twitter.php | 2 +- .../V2/Console/ImportFromV2Command.php | 2 +- .../Modules/V2/Jobs/CreateDefaultSurvey.php | 2 +- .../Modules/V2/Jobs/ImportCategories.php | 2 +- src/Ushahidi/Modules/V2/Jobs/ImportForms.php | 6 ++--- .../Modules/V2/Jobs/ImportIncidents.php | 2 +- .../Modules/V2/Jobs/ImportMessages.php | 2 +- .../Modules/V2/Jobs/ImportReporters.php | 2 +- src/Ushahidi/Modules/V2/Jobs/ImportUsers.php | 2 +- .../V2/Mappers/FormFieldAttributeMapper.php | 2 +- .../Modules/V2/Mappers/IncidentPostMapper.php | 2 +- .../Modules/V2/Mappers/MessageMapper.php | 2 +- .../Modules/V3/Console/ImportMediaCommand.php | 2 +- .../Modules/V3/Console/WebhookCommand.php | 6 ++--- .../Controllers/API/MessagesController.php | 2 +- .../V3/Jobs/CombineExportedPostBatchesJob.php | 4 ++-- .../Modules/V3/Jobs/ExportPostsBatchJob.php | 2 +- .../Modules/V3/Jobs/ExportPostsJob.php | 2 +- .../Modules/V3/Listener/ContactListener.php | 12 +++++----- .../V3/Listener/CreatePostFromMessage.php | 6 ++--- .../Listener/HandleTargetedSurveyResponse.php | 6 ++--- .../Modules/V3/Listener/PostListener.php | 4 ++-- .../Modules/V3/Listener/PostSetListener.php | 2 +- .../V3/Repository/ApiKeyRepository.php | 2 +- .../Modules/V3/Repository/CSVRepository.php | 2 +- .../V3/Repository/ConfigRepository.php | 2 +- .../V3/Repository/ContactRepository.php | 2 +- .../V3/Repository/CountryCodeRepository.php | 2 +- .../V3/Repository/DataProviderRepository.php | 2 +- .../V3/Repository/ExportBatchRepository.php | 2 +- .../V3/Repository/ExportJobRepository.php | 4 ++-- .../Repository/Form/AttributeRepository.php | 6 ++--- .../V3/Repository/Form/ContactRepository.php | 8 +++---- .../V3/Repository/Form/RoleRepository.php | 2 +- .../V3/Repository/Form/StageRepository.php | 4 ++-- .../V3/Repository/Form/StatsRepository.php | 2 +- .../Modules/V3/Repository/FormRepository.php | 2 +- .../Repository/HXL/HXLAttributeRepository.php | 2 +- ...FormAttributeHXLAttributeTagRepository.php | 2 +- .../Repository/HXL/HXLLicenseRepository.php | 2 +- .../Repository/HXL/HXLMetadataRepository.php | 2 +- .../V3/Repository/HXL/HXLTagRepository.php | 2 +- .../Modules/V3/Repository/MediaRepository.php | 2 +- .../V3/Repository/MessageRepository.php | 2 +- .../Notification/QueueRepository.php | 2 +- .../V3/Repository/NotificationRepository.php | 2 +- .../V3/Repository/PermissionRepository.php | 2 +- .../V3/Repository/Post/ExportRepository.php | 8 +++---- .../V3/Repository/Post/LockRepository.php | 2 +- .../V3/Repository/Post/ValueFactory.php | 2 +- .../V3/Repository/Post/ValueRepository.php | 2 +- .../Modules/V3/Repository/PostRepository.php | 12 +++++----- .../Modules/V3/Repository/RoleRepository.php | 2 +- .../Modules/V3/Repository/SetRepository.php | 2 +- .../Modules/V3/Repository/TagRepository.php | 2 +- .../TargetedSurveyStateRepository.php | 2 +- .../Modules/V3/Repository/TosRepository.php | 2 +- .../V3/Repository/User/SettingRepository.php | 2 +- .../Modules/V3/Repository/UserRepository.php | 2 +- .../V3/Repository/Webhook/JobRepository.php | 2 +- .../V3/Repository/WebhookRepository.php | 2 +- src/Ushahidi/Modules/V3/ServiceProvider.php | 24 +++++++++---------- .../V3/Transformer/CSVPostTransformer.php | 2 +- .../Modules/V3/Validator/CSV/Create.php | 2 +- .../Modules/V3/Validator/Contact/Update.php | 2 +- .../Modules/V3/Validator/ExportJob/Update.php | 6 ++--- .../V3/Validator/Form/Attribute/Update.php | 4 ++-- .../V3/Validator/Form/Contact/Update.php | 6 ++--- .../Modules/V3/Validator/Form/Role/Update.php | 4 ++-- .../V3/Validator/Form/Stage/Update.php | 2 +- .../Modules/V3/Validator/Form/Update.php | 2 +- .../Create.php | 10 ++++---- .../V3/Validator/HXL/Metadata/Create.php | 6 ++--- .../Modules/V3/Validator/Layer/Update.php | 2 +- .../Modules/V3/Validator/Message/Create.php | 2 +- .../V3/Validator/Notification/Update.php | 4 ++-- .../Modules/V3/Validator/Post/Create.php | 12 +++++----- .../Modules/V3/Validator/Post/Lock/Update.php | 2 +- .../Modules/V3/Validator/Post/Media.php | 2 +- .../Modules/V3/Validator/Post/Tags.php | 2 +- .../Modules/V3/Validator/Role/Update.php | 2 +- .../Modules/V3/Validator/Set/Post/Create.php | 2 +- .../Modules/V3/Validator/Set/Update.php | 4 ++-- .../Modules/V3/Validator/Tag/Update.php | 2 +- .../Modules/V3/Validator/Tos/Create.php | 2 +- .../Modules/V3/Validator/User/Reset.php | 2 +- .../V3/Validator/User/Setting/Update.php | 4 ++-- .../Modules/V3/Validator/User/Update.php | 4 ++-- .../Modules/V3/Validator/Webhook/Update.php | 2 +- .../Modules/V5/Repository/UserRepository.php | 2 +- src/Ushahidi/Modules/V5/ServiceProvider.php | 2 +- src/Ushahidi/Multisite/Site.php | 2 +- tests/Unit/Core/Tool/VerifierTest.php | 2 +- .../Core/Usecase/ExportJob/PostCountTest.php | 2 +- .../Unit/Core/Usecase/ReceiveMessageTest.php | 12 +++++----- .../Console/IncomingCommandTest.php | 2 +- .../DataSource/Console/ListCommandTest.php | 2 +- .../Console/OutgoingCommandTest.php | 2 +- .../Unit/DataSource/DataSourceManagerTest.php | 2 +- .../Unit/DataSource/DataSourceStorageTest.php | 4 ++-- tests/Unit/DataSource/EmailDataSourceTest.php | 2 +- .../Mappers/FormFieldAttributeMapperTest.php | 2 +- .../V2/Mappers/IncidentPostMapperTest.php | 2 +- .../Modules/V2/Mappers/MessageMapperTest.php | 2 +- .../CombineExportedPostBatchesJobTest.php | 4 ++-- .../V3/Jobs/ExportPostsBatchJobTest.php | 2 +- .../Modules/V3/Jobs/ExportPostsJobTest.php | 2 +- .../V3/Listener/CreatePostFromMessageTest.php | 6 ++--- .../HandleTargetedSurveyResponseTest.php | 6 ++--- .../V3/Repository/PostRepositoryTest.php | 10 ++++---- .../Modules/V3/Validator/Role/UpdateTest.php | 2 +- tests/Unit/Multisite/SiteTest.php | 2 +- tests/spec/Core/Tool/DateSpec.php | 2 +- .../Usecase/Message/ReceiveMessageSpec.php | 2 +- .../spec/Core/Usecase/User/LoginUserSpec.php | 2 +- 151 files changed, 251 insertions(+), 252 deletions(-) diff --git a/app/Console/Commands/ApikeySetCommand.php b/app/Console/Commands/ApikeySetCommand.php index 9bf26732d2..ec48b644d5 100644 --- a/app/Console/Commands/ApikeySetCommand.php +++ b/app/Console/Commands/ApikeySetCommand.php @@ -15,7 +15,7 @@ use Illuminate\Contracts\Events\Dispatcher; use App\Console\Commands\Concerns\ConsoleFormatter; use Ushahidi\Core\Tool\Authorizer\ConsoleAuthorizer; -use Ushahidi\Contracts\Repository\Entity\ApiKeyRepository as EntityApiKeyRepository; +use Ushahidi\Core\Entity\ApiKeyRepository as EntityApiKeyRepository; class ApikeySetCommand extends Command { diff --git a/app/Console/Commands/ConfigGetCommand.php b/app/Console/Commands/ConfigGetCommand.php index ca985417a9..52e0fee437 100644 --- a/app/Console/Commands/ConfigGetCommand.php +++ b/app/Console/Commands/ConfigGetCommand.php @@ -14,7 +14,7 @@ use Ushahidi\Contracts\Usecase; use Ushahidi\Core\Usecase\ReadUsecase; use App\Console\Commands\Concerns\ConsoleFormatter; -use Ushahidi\Contracts\Repository\Entity\ConfigRepository; +use Ushahidi\Core\Entity\ConfigRepository; use Ushahidi\Core\Tool\Authorizer\ConsoleAuthorizer; class ConfigGetCommand extends Command diff --git a/app/Console/Commands/ConfigSetCommand.php b/app/Console/Commands/ConfigSetCommand.php index 0d258b7dd0..ce3ae26d2c 100644 --- a/app/Console/Commands/ConfigSetCommand.php +++ b/app/Console/Commands/ConfigSetCommand.php @@ -11,7 +11,7 @@ namespace App\Console\Commands; use Illuminate\Console\Command; -use Ushahidi\Contracts\Repository\Entity\ConfigRepository; +use Ushahidi\Core\Entity\ConfigRepository; use Ushahidi\Core\Tool\Authorizer\ConsoleAuthorizer; use Ushahidi\Core\Usecase\UpdateUsecase; use App\Console\Commands\Concerns\ConsoleFormatter; diff --git a/app/Console/Commands/SavedSearchCommand.php b/app/Console/Commands/SavedSearchCommand.php index 7c920f3a12..9495793eac 100644 --- a/app/Console/Commands/SavedSearchCommand.php +++ b/app/Console/Commands/SavedSearchCommand.php @@ -12,8 +12,8 @@ namespace App\Console\Commands; use Illuminate\Console\Command; -use Ushahidi\Contracts\Repository\Entity\PostRepository; -use Ushahidi\Contracts\Repository\Entity\SetRepository; +use Ushahidi\Core\Entity\PostRepository; +use Ushahidi\Core\Entity\SetRepository; use Ushahidi\Core\Tool\SearchData; class SavedSearchCommand extends Command diff --git a/app/Console/Commands/UserCreateCommand.php b/app/Console/Commands/UserCreateCommand.php index 71898f3c67..dc986419a5 100644 --- a/app/Console/Commands/UserCreateCommand.php +++ b/app/Console/Commands/UserCreateCommand.php @@ -14,8 +14,8 @@ use Ushahidi\Core\Facade\Features; use Illuminate\Support\Facades\Validator; use Ushahidi\Core\Exception\ValidatorException; -use Ushahidi\Contracts\Repository\Entity\TosRepository; -use Ushahidi\Contracts\Repository\Entity\UserRepository; +use Ushahidi\Core\Entity\TosRepository; +use Ushahidi\Core\Entity\UserRepository; class UserCreateCommand extends Command { diff --git a/app/Console/Commands/UserDeleteCommand.php b/app/Console/Commands/UserDeleteCommand.php index d14e101d0c..551086fb28 100644 --- a/app/Console/Commands/UserDeleteCommand.php +++ b/app/Console/Commands/UserDeleteCommand.php @@ -11,7 +11,7 @@ namespace App\Console\Commands; use Illuminate\Console\Command; -use Ushahidi\Contracts\Repository\Entity\UserRepository; +use Ushahidi\Core\Entity\UserRepository; use Ushahidi\Core\Exception\NotFoundException; class UserDeleteCommand extends Command diff --git a/app/Jobs/TestMultisiteJob.php b/app/Jobs/TestMultisiteJob.php index d4f1f6d80d..67d3875885 100644 --- a/app/Jobs/TestMultisiteJob.php +++ b/app/Jobs/TestMultisiteJob.php @@ -5,8 +5,8 @@ use Ushahidi\Multisite\MultisiteManager; use Illuminate\Support\Facades\Log; use Ushahidi\Multisite\MultisiteAware; -use Ushahidi\Contracts\Repository\Entity\ConfigRepository; -use Ushahidi\Contracts\Repository\Entity\ExportBatchRepository; +use Ushahidi\Core\Entity\ConfigRepository; +use Ushahidi\Core\Entity\ExportBatchRepository; class TestMultisiteJob extends Job { diff --git a/app/Passport/TokenGuard.php b/app/Passport/TokenGuard.php index 2f2286c2d9..4c8a9e7048 100644 --- a/app/Passport/TokenGuard.php +++ b/app/Passport/TokenGuard.php @@ -18,7 +18,7 @@ use League\OAuth2\Server\Exception\OAuthServerException; use League\OAuth2\Server\ResourceServer; use Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory; -use Ushahidi\Contracts\Repository\Entity\UserRepository; +use Ushahidi\Core\Entity\UserRepository; use App\Auth\GenericUser; class TokenGuard //implements Guard diff --git a/app/Passport/UserRepository.php b/app/Passport/UserRepository.php index f7d904654f..82ae118f9a 100644 --- a/app/Passport/UserRepository.php +++ b/app/Passport/UserRepository.php @@ -7,7 +7,7 @@ use Ushahidi\Core\Usecase\User\LoginUser; use League\OAuth2\Server\Entities\ClientEntityInterface; use League\OAuth2\Server\Repositories\UserRepositoryInterface; -use Ushahidi\Contracts\Repository\Entity\UserRepository as EntityUserRepository; +use Ushahidi\Core\Entity\UserRepository as EntityUserRepository; class UserRepository implements UserRepositoryInterface { diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 6b1ca41556..bafd6ef475 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -7,7 +7,7 @@ use Illuminate\Support\ServiceProvider; use Ushahidi\Core\Tool\OhanzeeResolver; use Ushahidi\Addons\AfricasTalking\AfricasTalkingSource; -use Ushahidi\Contracts\Repository\Entity\ConfigRepository; +use Ushahidi\Core\Entity\ConfigRepository; use Ushahidi\Modules\V5\Repository\CountryCode\CountryCodeRepository; use Ushahidi\Modules\V5\Repository\CountryCode\EloquentCountryCodeRepository; use Ushahidi\Modules\V5\Repository\User; diff --git a/app/Providers/PassportServiceProvider.php b/app/Providers/PassportServiceProvider.php index 5306b15377..30097c8758 100644 --- a/app/Providers/PassportServiceProvider.php +++ b/app/Providers/PassportServiceProvider.php @@ -6,7 +6,7 @@ use Laravel\Passport\TokenRepository; use App\Passport\TokenGuard; use League\OAuth2\Server\ResourceServer; -use Ushahidi\Contracts\Repository\Entity\UserRepository; +use Ushahidi\Core\Entity\UserRepository; use Laravel\Passport\ClientRepository as LaravelPassportClientRepository; use Laravel\Passport\Bridge\UserRepository as LaravelPassportUserRepository; use Laravel\Passport\PassportServiceProvider as LaravelPassportServiceProvider; diff --git a/src/Ushahidi/Contracts/Repository/Usecase/UserResetPasswordRepository.php b/src/Ushahidi/Contracts/Repository/Usecase/UserResetPasswordRepository.php index 7a157f6037..afbcd6240a 100644 --- a/src/Ushahidi/Contracts/Repository/Usecase/UserResetPasswordRepository.php +++ b/src/Ushahidi/Contracts/Repository/Usecase/UserResetPasswordRepository.php @@ -12,9 +12,8 @@ namespace Ushahidi\Contracts\Repository\Usecase; use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Repository\Entity\UserRepository; -interface UserResetPasswordRepository extends UserRepository +interface UserResetPasswordRepository { public function getResetToken(Entity $entity); diff --git a/src/Ushahidi/Core/Concerns/RecordsExportJobFailure.php b/src/Ushahidi/Core/Concerns/RecordsExportJobFailure.php index d971c143ea..5d06bdd6e5 100644 --- a/src/Ushahidi/Core/Concerns/RecordsExportJobFailure.php +++ b/src/Ushahidi/Core/Concerns/RecordsExportJobFailure.php @@ -4,7 +4,7 @@ use Exception; use Ushahidi\Core\Entity\ExportJob; -use Ushahidi\Contracts\Repository\Entity\ExportJobRepository; +use Ushahidi\Core\Entity\ExportJobRepository; trait RecordsExportJobFailure { diff --git a/src/Ushahidi/Core/Tool/Acl.php b/src/Ushahidi/Core/Tool/Acl.php index 3f806b1aac..7459b0e15f 100644 --- a/src/Ushahidi/Core/Tool/Acl.php +++ b/src/Ushahidi/Core/Tool/Acl.php @@ -15,7 +15,7 @@ use Ushahidi\Core\Facade\Features; use Ushahidi\Contracts\Permission; use Ushahidi\Contracts\Acl as AclInterface; -use Ushahidi\Contracts\Repository\Entity\RoleRepository; +use Ushahidi\Core\Entity\RoleRepository; class Acl implements AclInterface { diff --git a/src/Ushahidi/Core/Tool/Authorizer/FormAttributeAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/FormAttributeAuthorizer.php index 86a13dd882..b3d8766f6d 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/FormAttributeAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/FormAttributeAuthorizer.php @@ -14,7 +14,7 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\Authorizer; use Ushahidi\Core\Concerns\UserContext; -use Ushahidi\Contracts\Repository\Entity\FormStageRepository; +use Ushahidi\Core\Entity\FormStageRepository; // The `FormAttributeAuthorizer` class is responsible // for access checks on Form Attributes diff --git a/src/Ushahidi/Core/Tool/Authorizer/FormAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/FormAuthorizer.php index ccc3ea2db6..c6660752b1 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/FormAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/FormAuthorizer.php @@ -20,7 +20,7 @@ use Ushahidi\Core\Concerns\ParentAccess; use Ushahidi\Core\Concerns\PrivateDeployment; use Ushahidi\Core\Concerns\Acl as AccessControlList; -use Ushahidi\Contracts\Repository\Entity\FormRepository; +use Ushahidi\Core\Entity\FormRepository; // The `FormAuthorizer` class is responsible for access checks on `Forms` class FormAuthorizer implements Authorizer diff --git a/src/Ushahidi/Core/Tool/Authorizer/FormContactAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/FormContactAuthorizer.php index ba5515eae8..d3c2eb1923 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/FormContactAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/FormContactAuthorizer.php @@ -15,7 +15,7 @@ use Ushahidi\Contracts\Authorizer; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; -use Ushahidi\Contracts\Repository\Entity\FormRepository; +use Ushahidi\Core\Entity\FormRepository; /** The `FormContactAuthorizer` class is responsible for access checks on `Contacts` that are created for a targetted survey diff --git a/src/Ushahidi/Core/Tool/Authorizer/FormRoleAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/FormRoleAuthorizer.php index 64fbefd1e6..37d5709df2 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/FormRoleAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/FormRoleAuthorizer.php @@ -14,7 +14,7 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\Authorizer; use Ushahidi\Core\Concerns\UserContext; -use Ushahidi\Contracts\Repository\Entity\FormRepository; +use Ushahidi\Core\Entity\FormRepository; // The `FormStageAuthorizer` class is responsible for access checks on `Forms` class FormRoleAuthorizer implements Authorizer diff --git a/src/Ushahidi/Core/Tool/Authorizer/FormStageAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/FormStageAuthorizer.php index 85856694ed..3e034bb9d9 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/FormStageAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/FormStageAuthorizer.php @@ -14,7 +14,7 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\Authorizer; use Ushahidi\Core\Concerns\UserContext; -use Ushahidi\Contracts\Repository\Entity\FormRepository; +use Ushahidi\Core\Entity\FormRepository; // The `FormStageAuthorizer` class is responsible for access checks on `Forms` class FormStageAuthorizer implements Authorizer diff --git a/src/Ushahidi/Core/Tool/Authorizer/PostAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/PostAuthorizer.php index e2ebacb1e6..c8e1c077c1 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/PostAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/PostAuthorizer.php @@ -21,8 +21,8 @@ use Ushahidi\Core\Concerns\ParentAccess; use Ushahidi\Core\Concerns\PrivateDeployment; use Ushahidi\Core\Concerns\Acl as AccessControlList; -use Ushahidi\Contracts\Repository\Entity\FormRepository; -use Ushahidi\Contracts\Repository\Entity\PostRepository; +use Ushahidi\Core\Entity\FormRepository; +use Ushahidi\Core\Entity\PostRepository; // The `PostAuthorizer` class is responsible for access checks on `Post` Entities class PostAuthorizer implements Authorizer @@ -83,7 +83,7 @@ public function isAllowed(Entity $entity, $privilege) if (($privilege !== "delete") && ($this->acl->hasPermission($user, Permission::MANAGE_POSTS))) { return true; } - + if (($privilege === "delete") && ($this->acl->hasPermission($user, Permission::DELETE_POSTS))) { return true; } @@ -150,7 +150,7 @@ public function isAllowed(Entity $entity, $privilege) && $this->acl->hasPermission($user, Permission::EDIT_OWN_POSTS)) { return true; } - + // If the user is the owner of this post & they have delete own posts permission // they are allowed to edit or delete the post. if ($this->isUserOwner($entity, $user) diff --git a/src/Ushahidi/Core/Tool/Features.php b/src/Ushahidi/Core/Tool/Features.php index 43dc01e61e..dc62c4aef1 100644 --- a/src/Ushahidi/Core/Tool/Features.php +++ b/src/Ushahidi/Core/Tool/Features.php @@ -3,7 +3,7 @@ namespace Ushahidi\Core\Tool; use Illuminate\Support\Facades\Cache; -use Ushahidi\Contracts\Repository\Entity\ConfigRepository; +use Ushahidi\Core\Entity\ConfigRepository; class Features { diff --git a/src/Ushahidi/Core/Tool/Permissions/PostPermissions.php b/src/Ushahidi/Core/Tool/Permissions/PostPermissions.php index 074e0d48e1..913bcf122e 100644 --- a/src/Ushahidi/Core/Tool/Permissions/PostPermissions.php +++ b/src/Ushahidi/Core/Tool/Permissions/PostPermissions.php @@ -15,7 +15,7 @@ use Ushahidi\Contracts\Permission; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\Acl as AccessControlList; -use Ushahidi\Contracts\Repository\Entity\FormRepository; +use Ushahidi\Core\Entity\FormRepository; class PostPermissions { @@ -42,7 +42,7 @@ public function canUserSeePostLock(Entity $user, Entity $post) * * @param \Ushahidi\Contracts\Entity $user * @param \Ushahidi\Contracts\Entity $post - * @param \Ushahidi\Contracts\Repository\Entity\FormRepository $form_repo + * @param \Ushahidi\Core\Entity\FormRepository $form_repo * @return boolean */ public function canUserSeeAuthor(Entity $user, Entity $post, FormRepository $form_repo) @@ -70,7 +70,7 @@ public function canUserSeeAuthor(Entity $user, Entity $post, FormRepository $for * * @param \Ushahidi\Contracts\Entity $user * @param \Ushahidi\Contracts\Entity $post - * @param \Ushahidi\Contracts\Repository\Entity\FormRepository $form_repo + * @param \Ushahidi\Core\Entity\FormRepository $form_repo * @return boolean */ public function canUserSeeTime(Entity $user, Entity $post, FormRepository $form_repo) @@ -98,7 +98,7 @@ public function canUserSeeTime(Entity $user, Entity $post, FormRepository $form_ * * @param \Ushahidi\Contracts\Entity $user * @param \Ushahidi\Contracts\Entity $post - * @param \Ushahidi\Contracts\Repository\Entity\FormRepository $form_repo + * @param \Ushahidi\Core\Entity\FormRepository $form_repo * @return boolean */ public function canUserSeeLocation(Entity $user, Entity $post, FormRepository $form_repo) diff --git a/src/Ushahidi/Core/Usecase/Concerns/VerifyFormLoaded.php b/src/Ushahidi/Core/Usecase/Concerns/VerifyFormLoaded.php index fcf87b321f..eedb3afd52 100644 --- a/src/Ushahidi/Core/Usecase/Concerns/VerifyFormLoaded.php +++ b/src/Ushahidi/Core/Usecase/Concerns/VerifyFormLoaded.php @@ -13,8 +13,8 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Core\Exception\ValidatorException; -use Ushahidi\Contracts\Repository\Entity\FormRepository; -use Ushahidi\Contracts\Repository\Entity\FormContactRepository; +use Ushahidi\Core\Entity\FormRepository; +use Ushahidi\Core\Entity\FormContactRepository; trait VerifyFormLoaded { diff --git a/src/Ushahidi/Core/Usecase/Concerns/VerifyStageLoaded.php b/src/Ushahidi/Core/Usecase/Concerns/VerifyStageLoaded.php index 29972c8753..b1ad1e66f0 100644 --- a/src/Ushahidi/Core/Usecase/Concerns/VerifyStageLoaded.php +++ b/src/Ushahidi/Core/Usecase/Concerns/VerifyStageLoaded.php @@ -13,7 +13,7 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Core\Entity\FormAttribute; -use Ushahidi\Contracts\Repository\Entity\FormStageRepository; +use Ushahidi\Core\Entity\FormStageRepository; trait VerifyStageLoaded { diff --git a/src/Ushahidi/Core/Usecase/Config/SearchConfig.php b/src/Ushahidi/Core/Usecase/Config/SearchConfig.php index 2e4668ad38..980aa0a6d2 100644 --- a/src/Ushahidi/Core/Usecase/Config/SearchConfig.php +++ b/src/Ushahidi/Core/Usecase/Config/SearchConfig.php @@ -17,7 +17,7 @@ use Ushahidi\Core\Usecase\Concerns\Authorizer as AuthorizerTrait; use Ushahidi\Core\Usecase\Concerns\Translator as TranslatorTrait; use Ushahidi\Core\Concerns\FilterRecords; -use Ushahidi\Contracts\Repository\Entity\ConfigRepository; +use Ushahidi\Core\Entity\ConfigRepository; class SearchConfig implements Usecase { diff --git a/src/Ushahidi/Core/Usecase/HXL/SendHXLUsecase.php b/src/Ushahidi/Core/Usecase/HXL/SendHXLUsecase.php index 02ca3d8c4f..14c4c089f4 100644 --- a/src/Ushahidi/Core/Usecase/HXL/SendHXLUsecase.php +++ b/src/Ushahidi/Core/Usecase/HXL/SendHXLUsecase.php @@ -18,11 +18,11 @@ use Ushahidi\Core\Usecase\Concerns\Translator as TranslatorTrait; use Ushahidi\Core\Tool\ExternalServices\HDXInterface; use Ushahidi\Core\Usecase\Concerns\IdentifyRecords; -use Ushahidi\Contracts\Repository\Entity\ExportJobRepository; -use Ushahidi\Contracts\Repository\Entity\HXLLicenseRepository; -use Ushahidi\Contracts\Repository\Entity\HXLMetadataRepository; -use Ushahidi\Contracts\Repository\Entity\UserSettingRepository; -use Ushahidi\Contracts\Repository\Entity\HXLFormAttributeHXLAttributeTagRepository; +use Ushahidi\Core\Entity\ExportJobRepository; +use Ushahidi\Core\Entity\HXL\HXLLicenseRepository; +use Ushahidi\Core\Entity\HXL\HXLMetadataRepository; +use Ushahidi\Core\Entity\HXL\UserSettingRepository; +use Ushahidi\Core\Entity\HXL\HXLFormAttributeHXLAttributeTagRepository; class SendHXLUsecase implements Usecase { diff --git a/src/Ushahidi/Core/Usecase/Message/ReceiveMessage.php b/src/Ushahidi/Core/Usecase/Message/ReceiveMessage.php index 82928713bf..fe99b934fc 100644 --- a/src/Ushahidi/Core/Usecase/Message/ReceiveMessage.php +++ b/src/Ushahidi/Core/Usecase/Message/ReceiveMessage.php @@ -22,14 +22,14 @@ use Ushahidi\Core\Usecase\CreateUsecase; use Ushahidi\Core\Concerns\DispatchesEvents; use Ushahidi\Core\Exception\ValidatorException; -use Ushahidi\Contracts\Repository\Entity\ContactRepository; +use Ushahidi\Core\Entity\ContactRepository; class ReceiveMessage extends CreateUsecase { use DispatchesEvents; /** - * @var \Ushahidi\Contracts\Repository\Entity\ContactRepository + * @var \Ushahidi\Core\Entity\ContactRepository */ protected $contactRepo; diff --git a/src/Ushahidi/Core/Usecase/Post/Concerns/FindPost.php b/src/Ushahidi/Core/Usecase/Post/Concerns/FindPost.php index faaf8e925a..3357bbb7ca 100644 --- a/src/Ushahidi/Core/Usecase/Post/Concerns/FindPost.php +++ b/src/Ushahidi/Core/Usecase/Post/Concerns/FindPost.php @@ -12,7 +12,7 @@ namespace Ushahidi\Core\Usecase\Post\Concerns; use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Repository\Entity\PostRepository; +use Ushahidi\Core\Entity\PostRepository; trait FindPost { diff --git a/src/Ushahidi/Core/Usecase/Post/Concerns/PostLock.php b/src/Ushahidi/Core/Usecase/Post/Concerns/PostLock.php index ad10423d7e..433fafcd86 100644 --- a/src/Ushahidi/Core/Usecase/Post/Concerns/PostLock.php +++ b/src/Ushahidi/Core/Usecase/Post/Concerns/PostLock.php @@ -12,7 +12,7 @@ namespace Ushahidi\Core\Usecase\Post\Concerns; use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Repository\Entity\PostRepository; +use Ushahidi\Core\Entity\PostRepository; trait PostLock { diff --git a/src/Ushahidi/Core/Usecase/Post/ExportPost.php b/src/Ushahidi/Core/Usecase/Post/ExportPost.php index 423a1b202a..eec2db53b6 100644 --- a/src/Ushahidi/Core/Usecase/Post/ExportPost.php +++ b/src/Ushahidi/Core/Usecase/Post/ExportPost.php @@ -22,7 +22,7 @@ use Ushahidi\Modules\V3\Repository\Form\AttributeRepository; use Ushahidi\Modules\V3\Repository\HXL\HXLFormAttributeHXLAttributeTagRepository; use Ushahidi\Core\Usecase\Concerns\VerifyParentLoaded; -use Ushahidi\Contracts\Repository\Entity\ExportBatchRepository; +use Ushahidi\Core\Entity\ExportBatchRepository; use Ushahidi\Core\Usecase\Concerns\Formatter as FormatterTrait; use Ushahidi\Core\Usecase\Concerns\Authorizer as AuthorizerTrait; use Ushahidi\Core\Usecase\Concerns\Translator as TranslatorTrait; @@ -49,7 +49,7 @@ class ExportPost implements Usecase private $hxlFromAttributeHxlAttributeTagRepo; /** - * @var \Ushahidi\Contracts\Repository\Entity\ExportBatchRepository + * @var \Ushahidi\Core\Entity\ExportBatchRepository */ protected $repo; diff --git a/src/Ushahidi/Core/Usecase/Set/SetRepositoryTrait.php b/src/Ushahidi/Core/Usecase/Set/SetRepositoryTrait.php index 642e899ee0..67b79de447 100644 --- a/src/Ushahidi/Core/Usecase/Set/SetRepositoryTrait.php +++ b/src/Ushahidi/Core/Usecase/Set/SetRepositoryTrait.php @@ -11,7 +11,7 @@ namespace Ushahidi\Core\Usecase\Set; -use Ushahidi\Contracts\Repository\Entity\SetRepository; +use Ushahidi\Core\Entity\SetRepository; trait SetRepositoryTrait { diff --git a/src/Ushahidi/Core/Usecase/User/LoginUser.php b/src/Ushahidi/Core/Usecase/User/LoginUser.php index 66ad427627..f66470baba 100644 --- a/src/Ushahidi/Core/Usecase/User/LoginUser.php +++ b/src/Ushahidi/Core/Usecase/User/LoginUser.php @@ -14,13 +14,13 @@ use Ushahidi\Contracts\RateLimiter; use Ushahidi\Core\Usecase\ReadUsecase; use Ushahidi\Contracts\PasswordAuthenticator; -use Ushahidi\Contracts\Repository\Entity\UserRepository; +use Ushahidi\Core\Entity\UserRepository; class LoginUser extends ReadUsecase { /** * - * @var \Ushahidi\Contracts\Repository\Entity\UserRepository + * @var \Ushahidi\Core\Entity\UserRepository */ protected $repo; diff --git a/src/Ushahidi/DataSource/DataSourceManager.php b/src/Ushahidi/DataSource/DataSourceManager.php index 00f26b32db..e62287ea69 100644 --- a/src/Ushahidi/DataSource/DataSourceManager.php +++ b/src/Ushahidi/DataSource/DataSourceManager.php @@ -8,8 +8,8 @@ use Illuminate\Support\Facades\Cache; use Ushahidi\DataSource\Contracts\DataSource; use Ushahidi\DataSource\Contracts\CallbackDataSource; -use Ushahidi\Contracts\Repository\Entity\ConfigRepository; -use Ushahidi\Contracts\Repository\Entity\MessageRepository; +use Ushahidi\Core\Entity\ConfigRepository; +use Ushahidi\Core\Entity\MessageRepository; class DataSourceManager { @@ -21,7 +21,7 @@ class DataSourceManager /** * Config repo instance * - * @var \Ushahidi\Contracts\Repository\Entity\ConfigRepository|null; + * @var \Ushahidi\Core\Entity\ConfigRepository|null; */ protected $configRepo; @@ -65,7 +65,7 @@ class DataSourceManager /** * Create a new datasource manager instance. * - * @param \Ushahidi\Contracts\Repository\Entity\ConfigRepository $configRepo + * @param \Ushahidi\Core\Entity\ConfigRepository $configRepo * @return void */ public function __construct(ConfigRepository $configRepo) diff --git a/src/Ushahidi/DataSource/DataSourceServiceProvider.php b/src/Ushahidi/DataSource/DataSourceServiceProvider.php index fa851009d1..ba690c874c 100644 --- a/src/Ushahidi/DataSource/DataSourceServiceProvider.php +++ b/src/Ushahidi/DataSource/DataSourceServiceProvider.php @@ -5,9 +5,9 @@ use Illuminate\Support\Facades\Event; use Illuminate\Support\ServiceProvider; use Ushahidi\Core\Usecase\Message\ReceiveMessage; -use Ushahidi\Contracts\Repository\Entity\ConfigRepository; -use Ushahidi\Contracts\Repository\Entity\ContactRepository; -use Ushahidi\Contracts\Repository\Entity\MessageRepository; +use Ushahidi\Core\Entity\ConfigRepository; +use Ushahidi\Core\Entity\ContactRepository; +use Ushahidi\Core\Entity\MessageRepository; class DataSourceServiceProvider extends ServiceProvider { diff --git a/src/Ushahidi/DataSource/DataSourceStorage.php b/src/Ushahidi/DataSource/DataSourceStorage.php index f336441c44..3608a208ce 100644 --- a/src/Ushahidi/DataSource/DataSourceStorage.php +++ b/src/Ushahidi/DataSource/DataSourceStorage.php @@ -12,8 +12,8 @@ */ use Illuminate\Support\Facades\Log; -use Ushahidi\Contracts\Repository\Entity\ContactRepository; -use Ushahidi\Contracts\Repository\Entity\MessageRepository; +use Ushahidi\Core\Entity\ContactRepository; +use Ushahidi\Core\Entity\MessageRepository; use Ushahidi\Core\Usecase\Message\ReceiveMessage; class DataSourceStorage diff --git a/src/Ushahidi/DataSource/Email/Email.php b/src/Ushahidi/DataSource/Email/Email.php index cc23cace7d..52e2483eec 100644 --- a/src/Ushahidi/DataSource/Email/Email.php +++ b/src/Ushahidi/DataSource/Email/Email.php @@ -16,7 +16,7 @@ use Illuminate\Contracts\Mail\Mailer; use Ushahidi\DataSource\Contracts\IncomingDataSource; use Ushahidi\DataSource\Concerns\MapsInboundFields; -use Ushahidi\Contracts\Repository\Entity\MessageRepository; +use Ushahidi\Core\Entity\MessageRepository; use Ushahidi\DataSource\Contracts\MessageType; class Email extends OutgoingEmail implements IncomingDataSource diff --git a/src/Ushahidi/DataSource/Twitter/Twitter.php b/src/Ushahidi/DataSource/Twitter/Twitter.php index 8c5d5966d3..0558ea2236 100644 --- a/src/Ushahidi/DataSource/Twitter/Twitter.php +++ b/src/Ushahidi/DataSource/Twitter/Twitter.php @@ -22,7 +22,7 @@ use Ushahidi\DataSource\Contracts\IncomingDataSource; use Ushahidi\DataSource\Contracts\OutgoingDataSource; use Ushahidi\DataSource\Concerns\MapsInboundFields; -use Ushahidi\Contracts\Repository\Entity\ConfigRepository; +use Ushahidi\Core\Entity\ConfigRepository; class Twitter implements IncomingDataSource, OutgoingDataSource { diff --git a/src/Ushahidi/Modules/V2/Console/ImportFromV2Command.php b/src/Ushahidi/Modules/V2/Console/ImportFromV2Command.php index dff44ca9b5..cba6c1370c 100644 --- a/src/Ushahidi/Modules/V2/Console/ImportFromV2Command.php +++ b/src/Ushahidi/Modules/V2/Console/ImportFromV2Command.php @@ -17,7 +17,7 @@ use Ushahidi\Core\Tool\ManifestLoader; use Illuminate\Contracts\Bus\Dispatcher; use Ushahidi\Core\Tool\OhanzeeResolver; -use Ushahidi\Contracts\Repository\Entity\PostRepository; +use Ushahidi\Core\Entity\PostRepository; use Ushahidi\Modules\V2\Contracts\ImportRepository; class ImportFromV2Command extends Command diff --git a/src/Ushahidi/Modules/V2/Jobs/CreateDefaultSurvey.php b/src/Ushahidi/Modules/V2/Jobs/CreateDefaultSurvey.php index 961f20022f..8e627649b1 100644 --- a/src/Ushahidi/Modules/V2/Jobs/CreateDefaultSurvey.php +++ b/src/Ushahidi/Modules/V2/Jobs/CreateDefaultSurvey.php @@ -8,7 +8,7 @@ use Illuminate\Support\Facades\Log; use Ushahidi\Core\Entity\FormStage; use Ushahidi\Core\Entity\FormAttribute; -use Ushahidi\Contracts\Repository\Entity; +use Ushahidi\Core\Entity; class CreateDefaultSurvey extends Job { diff --git a/src/Ushahidi/Modules/V2/Jobs/ImportCategories.php b/src/Ushahidi/Modules/V2/Jobs/ImportCategories.php index f2884dd01c..bbeabbf58c 100644 --- a/src/Ushahidi/Modules/V2/Jobs/ImportCategories.php +++ b/src/Ushahidi/Modules/V2/Jobs/ImportCategories.php @@ -4,7 +4,7 @@ use Exception; use Ushahidi\Modules\V2; -use Ushahidi\Contracts\Repository\Entity; +use Ushahidi\Core\Entity; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Log; use Ushahidi\Modules\V2\ManifestSchemas\ImportParameters; diff --git a/src/Ushahidi/Modules/V2/Jobs/ImportForms.php b/src/Ushahidi/Modules/V2/Jobs/ImportForms.php index ffe9dce445..7acc98968b 100644 --- a/src/Ushahidi/Modules/V2/Jobs/ImportForms.php +++ b/src/Ushahidi/Modules/V2/Jobs/ImportForms.php @@ -13,9 +13,9 @@ use Ushahidi\Core\Entity\FormAttribute; use Illuminate\Contracts\Container\Container; use Ushahidi\Modules\V2\ManifestSchemas\ImportParameters; -use Ushahidi\Contracts\Repository\Entity\TagRepository; -use Ushahidi\Contracts\Repository\Entity\FormRepository; -use Ushahidi\Contracts\Repository\Entity\FormAttributeRepository; +use Ushahidi\Core\Entity\TagRepository; +use Ushahidi\Core\Entity\FormRepository; +use Ushahidi\Core\Entity\FormAttributeRepository; class ImportForms extends ImportFromV2Job { diff --git a/src/Ushahidi/Modules/V2/Jobs/ImportIncidents.php b/src/Ushahidi/Modules/V2/Jobs/ImportIncidents.php index 14fdcb2b1a..115616b5d5 100644 --- a/src/Ushahidi/Modules/V2/Jobs/ImportIncidents.php +++ b/src/Ushahidi/Modules/V2/Jobs/ImportIncidents.php @@ -6,7 +6,7 @@ use Ushahidi\Core\Entity; use Ushahidi\Core\Tool\Job; use Illuminate\Support\Facades\DB; -use Ushahidi\Contracts\Repository\Entity\PostRepository; +use Ushahidi\Core\Entity\PostRepository; class ImportIncidents extends ImportFromV2Job { diff --git a/src/Ushahidi/Modules/V2/Jobs/ImportMessages.php b/src/Ushahidi/Modules/V2/Jobs/ImportMessages.php index 4a88fcc895..f5833aaeb1 100644 --- a/src/Ushahidi/Modules/V2/Jobs/ImportMessages.php +++ b/src/Ushahidi/Modules/V2/Jobs/ImportMessages.php @@ -6,7 +6,7 @@ use Ushahidi\Core\Entity; use Ushahidi\Core\Tool\Job; use Illuminate\Support\Facades\DB; -use Ushahidi\Contracts\Repository\Entity\MessageRepository; +use Ushahidi\Core\Entity\MessageRepository; class ImportMessages extends ImportFromV2Job { diff --git a/src/Ushahidi/Modules/V2/Jobs/ImportReporters.php b/src/Ushahidi/Modules/V2/Jobs/ImportReporters.php index 2e274a80fe..46a2568266 100644 --- a/src/Ushahidi/Modules/V2/Jobs/ImportReporters.php +++ b/src/Ushahidi/Modules/V2/Jobs/ImportReporters.php @@ -5,7 +5,7 @@ use Ushahidi\Modules\V2; use Ushahidi\Core\Entity; use Illuminate\Support\Facades\DB; -use Ushahidi\Contracts\Repository\Entity\ContactRepository; +use Ushahidi\Core\Entity\ContactRepository; class ImportReporters extends ImportFromV2Job { diff --git a/src/Ushahidi/Modules/V2/Jobs/ImportUsers.php b/src/Ushahidi/Modules/V2/Jobs/ImportUsers.php index 9c15ebac5e..78c6d5f62c 100644 --- a/src/Ushahidi/Modules/V2/Jobs/ImportUsers.php +++ b/src/Ushahidi/Modules/V2/Jobs/ImportUsers.php @@ -7,7 +7,7 @@ use Illuminate\Support\Collection; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; -use Ushahidi\Contracts\Repository\Entity\UserRepository; +use Ushahidi\Core\Entity\UserRepository; class ImportUsers extends ImportFromV2Job { diff --git a/src/Ushahidi/Modules/V2/Mappers/FormFieldAttributeMapper.php b/src/Ushahidi/Modules/V2/Mappers/FormFieldAttributeMapper.php index a5586255e1..11ae680cf5 100644 --- a/src/Ushahidi/Modules/V2/Mappers/FormFieldAttributeMapper.php +++ b/src/Ushahidi/Modules/V2/Mappers/FormFieldAttributeMapper.php @@ -3,7 +3,7 @@ namespace Ushahidi\Modules\V2\Mappers; use Ushahidi\Core\Entity\FormAttribute; -use Ushahidi\Contracts\Repository\Entity\FormStageRepository; +use Ushahidi\Core\Entity\FormStageRepository; use Ushahidi\Modules\V2\Import; use Ushahidi\Modules\V2\Jobs\ImportForms; use Ushahidi\Modules\V2\Contracts\Mapper; diff --git a/src/Ushahidi/Modules/V2/Mappers/IncidentPostMapper.php b/src/Ushahidi/Modules/V2/Mappers/IncidentPostMapper.php index 7e51bf177a..e8c5f47d30 100644 --- a/src/Ushahidi/Modules/V2/Mappers/IncidentPostMapper.php +++ b/src/Ushahidi/Modules/V2/Mappers/IncidentPostMapper.php @@ -11,7 +11,7 @@ use Ushahidi\Modules\V2\Contracts\Mapper; use Ushahidi\Modules\V2\Contracts\ImportDataTools; use Ushahidi\Modules\V2\Contracts\ImportMappingRepository; -use Ushahidi\Contracts\Repository\Entity\FormAttributeRepository; +use Ushahidi\Core\Entity\FormAttributeRepository; class IncidentPostMapper implements Mapper { diff --git a/src/Ushahidi/Modules/V2/Mappers/MessageMapper.php b/src/Ushahidi/Modules/V2/Mappers/MessageMapper.php index 1bfb818731..8f7f71635e 100644 --- a/src/Ushahidi/Modules/V2/Mappers/MessageMapper.php +++ b/src/Ushahidi/Modules/V2/Mappers/MessageMapper.php @@ -7,7 +7,7 @@ use Ushahidi\Modules\V2\Contracts\Mapper; use Ushahidi\Modules\V2\Contracts\ImportMappingRepository; use Ushahidi\Core\Entity\Message; -use Ushahidi\Contracts\Repository\Entity\ContactRepository; +use Ushahidi\Core\Entity\ContactRepository; class MessageMapper implements Mapper { diff --git a/src/Ushahidi/Modules/V3/Console/ImportMediaCommand.php b/src/Ushahidi/Modules/V3/Console/ImportMediaCommand.php index e23f1522fe..cb7d508641 100644 --- a/src/Ushahidi/Modules/V3/Console/ImportMediaCommand.php +++ b/src/Ushahidi/Modules/V3/Console/ImportMediaCommand.php @@ -6,7 +6,7 @@ use Ushahidi\Core\Tool\SearchData; use Illuminate\Contracts\Bus\Dispatcher; use Ushahidi\Modules\V3\Jobs\ImportMediaJob; -use Ushahidi\Contracts\Repository\Entity\MediaRepository; +use Ushahidi\Core\Entity\MediaRepository; class ImportMediaCommand extends Command { diff --git a/src/Ushahidi/Modules/V3/Console/WebhookCommand.php b/src/Ushahidi/Modules/V3/Console/WebhookCommand.php index c2880f7fde..56858c3d6e 100644 --- a/src/Ushahidi/Modules/V3/Console/WebhookCommand.php +++ b/src/Ushahidi/Modules/V3/Console/WebhookCommand.php @@ -20,19 +20,19 @@ class WebhookCommand extends Command /** * - * @var \Ushahidi\Contracts\Repository\Entity\PostRepository + * @var \Ushahidi\Core\Entity\PostRepository */ private $postRepository; /** * - * @var \Ushahidi\Contracts\Repository\Entity\WebhookRepository + * @var \Ushahidi\Core\Entity\WebhookRepository */ private $webhookRepository; /** * - * @var \Ushahidi\Contracts\Repository\Entity\WebhookJobRepository + * @var \Ushahidi\Core\Entity\WebhookJobRepository */ private $webhookJobRepository; diff --git a/src/Ushahidi/Modules/V3/Http/Controllers/API/MessagesController.php b/src/Ushahidi/Modules/V3/Http/Controllers/API/MessagesController.php index 97cbd4df72..0bcba0f8be 100644 --- a/src/Ushahidi/Modules/V3/Http/Controllers/API/MessagesController.php +++ b/src/Ushahidi/Modules/V3/Http/Controllers/API/MessagesController.php @@ -3,7 +3,7 @@ namespace Ushahidi\Modules\V3\Http\Controllers\API; use Illuminate\Http\Request; -use Ushahidi\Contracts\Repository\Entity\MessageRepository; +use Ushahidi\Core\Entity\MessageRepository; use Ushahidi\Modules\V3\Factory\UsecaseFactory; use Ushahidi\Modules\V3\Http\Controllers\RESTController; use Ushahidi\Multisite\MultisiteManager; diff --git a/src/Ushahidi/Modules/V3/Jobs/CombineExportedPostBatchesJob.php b/src/Ushahidi/Modules/V3/Jobs/CombineExportedPostBatchesJob.php index f40c1fbe38..92bcc76203 100644 --- a/src/Ushahidi/Modules/V3/Jobs/CombineExportedPostBatchesJob.php +++ b/src/Ushahidi/Modules/V3/Jobs/CombineExportedPostBatchesJob.php @@ -13,8 +13,8 @@ use Illuminate\Support\Facades\Storage; use Ushahidi\Core\Concerns\RecordsExportJobFailure; use Illuminate\Support\Facades\File as LocalFilesystem; -use Ushahidi\Contracts\Repository\Entity\ExportJobRepository; -use Ushahidi\Contracts\Repository\Entity\ExportBatchRepository; +use Ushahidi\Core\Entity\ExportJobRepository; +use Ushahidi\Core\Entity\ExportBatchRepository; class CombineExportedPostBatchesJob extends Job { diff --git a/src/Ushahidi/Modules/V3/Jobs/ExportPostsBatchJob.php b/src/Ushahidi/Modules/V3/Jobs/ExportPostsBatchJob.php index e085ec0c18..eeb80f4dbc 100644 --- a/src/Ushahidi/Modules/V3/Jobs/ExportPostsBatchJob.php +++ b/src/Ushahidi/Modules/V3/Jobs/ExportPostsBatchJob.php @@ -6,7 +6,7 @@ use Illuminate\Support\Facades\Log; use Ushahidi\Core\Usecase\Post\ExportPost as Export; use Ushahidi\Core\Concerns\RecordsExportJobFailure; -use Ushahidi\Contracts\Repository\Entity\ExportJobRepository; +use Ushahidi\Core\Entity\ExportJobRepository; class ExportPostsBatchJob extends Job { diff --git a/src/Ushahidi/Modules/V3/Jobs/ExportPostsJob.php b/src/Ushahidi/Modules/V3/Jobs/ExportPostsJob.php index 57591ebbd6..5799fb0f55 100644 --- a/src/Ushahidi/Modules/V3/Jobs/ExportPostsJob.php +++ b/src/Ushahidi/Modules/V3/Jobs/ExportPostsJob.php @@ -7,7 +7,7 @@ use Ushahidi\Core\Entity\ExportJob; use Ushahidi\Core\Usecase\Export\Job\PostCount; use Ushahidi\Core\Concerns\RecordsExportJobFailure; -use Ushahidi\Contracts\Repository\Entity\ExportJobRepository; +use Ushahidi\Core\Entity\ExportJobRepository; class ExportPostsJob extends Job { diff --git a/src/Ushahidi/Modules/V3/Listener/ContactListener.php b/src/Ushahidi/Modules/V3/Listener/ContactListener.php index 3dd61fc63b..45e0a98bea 100644 --- a/src/Ushahidi/Modules/V3/Listener/ContactListener.php +++ b/src/Ushahidi/Modules/V3/Listener/ContactListener.php @@ -16,13 +16,13 @@ use League\Event\EventInterface; use League\Event\AbstractListener; use Illuminate\Support\Facades\Log; -use Ushahidi\Contracts\Repository\Entity\FormRepository; -use Ushahidi\Contracts\Repository\Entity\PostRepository; -use Ushahidi\Contracts\Repository\Entity\ContactRepository; -use Ushahidi\Contracts\Repository\Entity\MessageRepository; +use Ushahidi\Core\Entity\FormRepository; +use Ushahidi\Core\Entity\PostRepository; +use Ushahidi\Core\Entity\ContactRepository; +use Ushahidi\Core\Entity\MessageRepository; use Ushahidi\DataSource\Contracts\MessageType as MessageType; -use Ushahidi\Contracts\Repository\Entity\FormAttributeRepository; -use Ushahidi\Contracts\Repository\Entity\TargetedSurveyStateRepository; +use Ushahidi\Core\Entity\FormAttributeRepository; +use Ushahidi\Core\Entity\TargetedSurveyStateRepository; class ContactListener extends AbstractListener { diff --git a/src/Ushahidi/Modules/V3/Listener/CreatePostFromMessage.php b/src/Ushahidi/Modules/V3/Listener/CreatePostFromMessage.php index 3497cb5ec8..d112f94e10 100644 --- a/src/Ushahidi/Modules/V3/Listener/CreatePostFromMessage.php +++ b/src/Ushahidi/Modules/V3/Listener/CreatePostFromMessage.php @@ -2,9 +2,9 @@ namespace Ushahidi\Modules\V3\Listener; use Ushahidi\Core\Entity\Message; -use Ushahidi\Contracts\Repository\Entity\PostRepository; -use Ushahidi\Contracts\Repository\Entity\MessageRepository; -use Ushahidi\Contracts\Repository\Entity\TargetedSurveyStateRepository; +use Ushahidi\Core\Entity\PostRepository; +use Ushahidi\Core\Entity\MessageRepository; +use Ushahidi\Core\Entity\TargetedSurveyStateRepository; class CreatePostFromMessage { diff --git a/src/Ushahidi/Modules/V3/Listener/HandleTargetedSurveyResponse.php b/src/Ushahidi/Modules/V3/Listener/HandleTargetedSurveyResponse.php index 4a012f6439..406ae0691c 100644 --- a/src/Ushahidi/Modules/V3/Listener/HandleTargetedSurveyResponse.php +++ b/src/Ushahidi/Modules/V3/Listener/HandleTargetedSurveyResponse.php @@ -4,9 +4,9 @@ use Ushahidi\Core\Entity\Message; use Illuminate\Support\Facades\Log; use Ushahidi\Core\Entity\TargetedSurveyState; -use Ushahidi\Contracts\Repository\Entity\MessageRepository; -use Ushahidi\Contracts\Repository\Entity\FormAttributeRepository; -use Ushahidi\Contracts\Repository\Entity\TargetedSurveyStateRepository; +use Ushahidi\Core\Entity\MessageRepository; +use Ushahidi\Core\Entity\FormAttributeRepository; +use Ushahidi\Core\Entity\TargetedSurveyStateRepository; class HandleTargetedSurveyResponse { diff --git a/src/Ushahidi/Modules/V3/Listener/PostListener.php b/src/Ushahidi/Modules/V3/Listener/PostListener.php index 2193eb204f..39b8e9f1a0 100644 --- a/src/Ushahidi/Modules/V3/Listener/PostListener.php +++ b/src/Ushahidi/Modules/V3/Listener/PostListener.php @@ -15,8 +15,8 @@ use League\Event\EventInterface; use League\Event\AbstractListener; -use Ushahidi\Contracts\Repository\Entity\WebhookRepository; -use Ushahidi\Contracts\Repository\Entity\WebhookJobRepository; +use Ushahidi\Core\Entity\WebhookRepository; +use Ushahidi\Core\Entity\WebhookJobRepository; class PostListener extends AbstractListener { diff --git a/src/Ushahidi/Modules/V3/Listener/PostSetListener.php b/src/Ushahidi/Modules/V3/Listener/PostSetListener.php index 712745f17d..e0223a60e9 100644 --- a/src/Ushahidi/Modules/V3/Listener/PostSetListener.php +++ b/src/Ushahidi/Modules/V3/Listener/PostSetListener.php @@ -15,7 +15,7 @@ use League\Event\EventInterface; use League\Event\AbstractListener; -use Ushahidi\Contracts\Repository\Entity\NotificationQueueRepository; +use Ushahidi\Core\Entity\NotificationQueueRepository; class PostSetListener extends AbstractListener { diff --git a/src/Ushahidi/Modules/V3/Repository/ApiKeyRepository.php b/src/Ushahidi/Modules/V3/Repository/ApiKeyRepository.php index 68c4a457b8..a65d9a776b 100644 --- a/src/Ushahidi/Modules/V3/Repository/ApiKeyRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/ApiKeyRepository.php @@ -15,7 +15,7 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Entity\ApiKey; -use Ushahidi\Contracts\Repository\Entity\ApiKeyRepository as ApiKeyRepositoryContract; +use Ushahidi\Core\Entity\ApiKeyRepository as ApiKeyRepositoryContract; use Ushahidi\Core\Concerns\AdminAccess; class ApiKeyRepository extends OhanzeeRepository implements ApiKeyRepositoryContract diff --git a/src/Ushahidi/Modules/V3/Repository/CSVRepository.php b/src/Ushahidi/Modules/V3/Repository/CSVRepository.php index 99a8771d75..dfda5e9a0c 100644 --- a/src/Ushahidi/Modules/V3/Repository/CSVRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/CSVRepository.php @@ -14,7 +14,7 @@ use Ushahidi\Core\Tool\SearchData; use Ushahidi\Contracts\Entity; use Ushahidi\Core\Entity\CSV; -use Ushahidi\Contracts\Repository\Entity\CSVRepository as CSVRepositoryContract; +use Ushahidi\Core\Entity\CSVRepository as CSVRepositoryContract; use Ushahidi\Core\Concerns\Event; class CSVRepository extends OhanzeeRepository implements diff --git a/src/Ushahidi/Modules/V3/Repository/ConfigRepository.php b/src/Ushahidi/Modules/V3/Repository/ConfigRepository.php index 345beb480a..7790020385 100644 --- a/src/Ushahidi/Modules/V3/Repository/ConfigRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/ConfigRepository.php @@ -20,7 +20,7 @@ use Ushahidi\Contracts\Repository\ReadRepository; use Ushahidi\Contracts\Repository\DeleteRepository; use Ushahidi\Contracts\Repository\UpdateRepository; -use Ushahidi\Contracts\Repository\Entity\ConfigRepository as ConfigRepositoryContract; +use Ushahidi\Core\Entity\ConfigRepository as ConfigRepositoryContract; use Ushahidi\Multisite\Facade\Multisite; class ConfigRepository implements diff --git a/src/Ushahidi/Modules/V3/Repository/ContactRepository.php b/src/Ushahidi/Modules/V3/Repository/ContactRepository.php index ec32a9e04f..c4963b6393 100644 --- a/src/Ushahidi/Modules/V3/Repository/ContactRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/ContactRepository.php @@ -21,7 +21,7 @@ use Ushahidi\Contracts\Repository\CreateRepository; use Ushahidi\Contracts\Repository\SearchRepository; use Ushahidi\Contracts\Repository\UpdateRepository; -use Ushahidi\Contracts\Repository\Entity\ContactRepository as ContactRepositoryContract; +use Ushahidi\Core\Entity\ContactRepository as ContactRepositoryContract; class ContactRepository extends OhanzeeRepository implements ContactRepositoryContract, diff --git a/src/Ushahidi/Modules/V3/Repository/CountryCodeRepository.php b/src/Ushahidi/Modules/V3/Repository/CountryCodeRepository.php index 305256dc16..fe5558a74a 100644 --- a/src/Ushahidi/Modules/V3/Repository/CountryCodeRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/CountryCodeRepository.php @@ -15,7 +15,7 @@ use Ushahidi\Core\Entity\CountryCode; use Ushahidi\Contracts\Repository\ReadRepository; use Ushahidi\Contracts\Repository\SearchRepository; -use Ushahidi\Contracts\Repository\Entity\CountryCodeRepository as CountryCodeRepositoryContract; +use Ushahidi\Core\Entity\CountryCodeRepository as CountryCodeRepositoryContract; class CountryCodeRepository extends OhanzeeRepository implements CountryCodeRepositoryContract, diff --git a/src/Ushahidi/Modules/V3/Repository/DataProviderRepository.php b/src/Ushahidi/Modules/V3/Repository/DataProviderRepository.php index 41b543060d..0940fea9f4 100644 --- a/src/Ushahidi/Modules/V3/Repository/DataProviderRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/DataProviderRepository.php @@ -16,7 +16,7 @@ use Ushahidi\Contracts\Repository\ReadRepository; use Ushahidi\Contracts\Repository\SearchRepository; use Ushahidi\Core\Entity\DataProvider as DataProviderEntity; -use Ushahidi\Contracts\Repository\Entity\DataProviderRepository as DataProviderRepositoryContract; +use Ushahidi\Core\Entity\DataProviderRepository as DataProviderRepositoryContract; use Ushahidi\Contracts\Search; class DataProviderRepository implements diff --git a/src/Ushahidi/Modules/V3/Repository/ExportBatchRepository.php b/src/Ushahidi/Modules/V3/Repository/ExportBatchRepository.php index 798fa2f8bb..64108fc50e 100644 --- a/src/Ushahidi/Modules/V3/Repository/ExportBatchRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/ExportBatchRepository.php @@ -12,7 +12,7 @@ namespace Ushahidi\Modules\V3\Repository; use Ushahidi\Core\Entity\ExportBatch; -use Ushahidi\Contracts\Repository\Entity\ExportBatchRepository as ExportBatchRepositoryContract; +use Ushahidi\Core\Entity\ExportBatchRepository as ExportBatchRepositoryContract; use Ushahidi\Contracts\Search; class ExportBatchRepository extends EloquentRepository implements ExportBatchRepositoryContract diff --git a/src/Ushahidi/Modules/V3/Repository/ExportJobRepository.php b/src/Ushahidi/Modules/V3/Repository/ExportJobRepository.php index 5444312efb..ba8dce5095 100644 --- a/src/Ushahidi/Modules/V3/Repository/ExportJobRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/ExportJobRepository.php @@ -22,8 +22,8 @@ use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\FilterRecords; use Ushahidi\Modules\V3\Events\SendToHDXEvent; -use Ushahidi\Contracts\Repository\Entity\PostRepository; -use Ushahidi\Contracts\Repository\Entity\ExportJobRepository as ExportJobRepositoryContract; +use Ushahidi\Core\Entity\PostRepository; +use Ushahidi\Core\Entity\ExportJobRepository as ExportJobRepositoryContract; class ExportJobRepository extends OhanzeeRepository implements ExportJobRepositoryContract { diff --git a/src/Ushahidi/Modules/V3/Repository/Form/AttributeRepository.php b/src/Ushahidi/Modules/V3/Repository/Form/AttributeRepository.php index b10d868d55..01d774c49a 100644 --- a/src/Ushahidi/Modules/V3/Repository/Form/AttributeRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/Form/AttributeRepository.php @@ -26,9 +26,9 @@ use Ushahidi\Modules\V3\Repository\Concerns\JsonTranscode; use Ushahidi\Modules\V3\Repository\Concerns\UsesBulkAutoIncrement; use Ushahidi\Core\Tool\Permissions\InteractsWithFormPermissions; -use Ushahidi\Contracts\Repository\Entity\FormRepository as FormRepositoryContract; -use Ushahidi\Contracts\Repository\Entity\FormStageRepository as FormStageRepositoryContract; -use Ushahidi\Contracts\Repository\Entity\FormAttributeRepository as FormAttributeRepositoryContract; +use Ushahidi\Core\Entity\FormRepository as FormRepositoryContract; +use Ushahidi\Core\Entity\FormStageRepository as FormStageRepositoryContract; +use Ushahidi\Core\Entity\FormAttributeRepository as FormAttributeRepositoryContract; class AttributeRepository extends OhanzeeRepository implements FormAttributeRepositoryContract diff --git a/src/Ushahidi/Modules/V3/Repository/Form/ContactRepository.php b/src/Ushahidi/Modules/V3/Repository/Form/ContactRepository.php index b7cce8111b..56a2f80535 100644 --- a/src/Ushahidi/Modules/V3/Repository/Form/ContactRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/Form/ContactRepository.php @@ -18,10 +18,10 @@ use Ushahidi\Modules\V3\Repository\OhanzeeRepository; use Ushahidi\Core\Tool\OhanzeeResolver; use Ushahidi\Contracts\Repository\SearchRepository; -use Ushahidi\Contracts\Repository\Entity\FormRepository; -use Ushahidi\Contracts\Repository\Entity\MessageRepository; -use Ushahidi\Contracts\Repository\Entity\FormContactRepository; -use Ushahidi\Contracts\Repository\Entity\TargetedSurveyStateRepository; +use Ushahidi\Core\Entity\FormRepository; +use Ushahidi\Core\Entity\MessageRepository; +use Ushahidi\Core\Entity\FormContactRepository; +use Ushahidi\Core\Entity\TargetedSurveyStateRepository; class ContactRepository extends OhanzeeRepository implements FormContactRepository, diff --git a/src/Ushahidi/Modules/V3/Repository/Form/RoleRepository.php b/src/Ushahidi/Modules/V3/Repository/Form/RoleRepository.php index 081565fa8e..d386304b2f 100644 --- a/src/Ushahidi/Modules/V3/Repository/Form/RoleRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/Form/RoleRepository.php @@ -14,7 +14,7 @@ use Ohanzee\DB; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Entity\FormRole; -use Ushahidi\Contracts\Repository\Entity\FormRoleRepository; +use Ushahidi\Core\Entity\FormRoleRepository; use Ushahidi\Modules\V3\Repository\OhanzeeRepository; class RoleRepository extends OhanzeeRepository implements diff --git a/src/Ushahidi/Modules/V3/Repository/Form/StageRepository.php b/src/Ushahidi/Modules/V3/Repository/Form/StageRepository.php index dbf0553c7e..cac639275b 100644 --- a/src/Ushahidi/Modules/V3/Repository/Form/StageRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/Form/StageRepository.php @@ -15,8 +15,8 @@ use Ohanzee\Database; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Entity\FormStage; -use Ushahidi\Contracts\Repository\Entity\FormStageRepository as FormStageRepositoryContract; -use Ushahidi\Contracts\Repository\Entity\FormRepository as FormRepositoryContract; +use Ushahidi\Core\Entity\FormStageRepository as FormStageRepositoryContract; +use Ushahidi\Core\Entity\FormRepository as FormRepositoryContract; use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Tool\Permissions\InteractsWithFormPermissions; use Ushahidi\Modules\V3\Repository\OhanzeeRepository; diff --git a/src/Ushahidi/Modules/V3/Repository/Form/StatsRepository.php b/src/Ushahidi/Modules/V3/Repository/Form/StatsRepository.php index f145d8f223..0f54209709 100644 --- a/src/Ushahidi/Modules/V3/Repository/Form/StatsRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/Form/StatsRepository.php @@ -20,7 +20,7 @@ use Ushahidi\Modules\V3\Repository\FormRepository; use Ushahidi\Modules\V3\Repository\OhanzeeRepository; use Ushahidi\Contracts\Repository\SearchRepository; -use Ushahidi\Contracts\Repository\Entity\FormStatsRepository; +use Ushahidi\Core\Entity\FormStatsRepository; class StatsRepository extends OhanzeeRepository implements FormStatsRepository, diff --git a/src/Ushahidi/Modules/V3/Repository/FormRepository.php b/src/Ushahidi/Modules/V3/Repository/FormRepository.php index 7926bb9e9a..a633cef1ee 100644 --- a/src/Ushahidi/Modules/V3/Repository/FormRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/FormRepository.php @@ -18,7 +18,7 @@ use Illuminate\Support\Collection; use Ushahidi\Contracts\Entity; use Ushahidi\Modules\V3\Repository\Concerns\FormsTags; -use Ushahidi\Contracts\Repository\Entity\FormRepository as FormRepositoryContract; +use Ushahidi\Core\Entity\FormRepository as FormRepositoryContract; class FormRepository extends OhanzeeRepository implements FormRepositoryContract diff --git a/src/Ushahidi/Modules/V3/Repository/HXL/HXLAttributeRepository.php b/src/Ushahidi/Modules/V3/Repository/HXL/HXLAttributeRepository.php index c1216cbb99..d2090d9435 100644 --- a/src/Ushahidi/Modules/V3/Repository/HXL/HXLAttributeRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/HXL/HXLAttributeRepository.php @@ -17,7 +17,7 @@ use Ushahidi\Modules\V3\Repository\OhanzeeRepository; use Ushahidi\Contracts\Repository\ReadRepository; use Ushahidi\Contracts\Repository\SearchRepository; -use Ushahidi\Contracts\Repository\Entity\HXLAttributeRepository as HXLAttributeRepositoryContract; +use Ushahidi\Core\Entity\HXL\HXLAttributeRepository as HXLAttributeRepositoryContract; class HXLAttributeRepository extends OhanzeeRepository implements HXLAttributeRepositoryContract, diff --git a/src/Ushahidi/Modules/V3/Repository/HXL/HXLFormAttributeHXLAttributeTagRepository.php b/src/Ushahidi/Modules/V3/Repository/HXL/HXLFormAttributeHXLAttributeTagRepository.php index 1cee2f0acd..9e9d9f20dd 100644 --- a/src/Ushahidi/Modules/V3/Repository/HXL/HXLFormAttributeHXLAttributeTagRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/HXL/HXLFormAttributeHXLAttributeTagRepository.php @@ -14,7 +14,7 @@ use Ohanzee\DB; use Ushahidi\Core\Entity\HXL\HXLFormAttributeHXLAttributeTag; use Ushahidi\Core\Tool\SearchData; -use Ushahidi\Contracts\Repository\Entity\HXLFormAttributeHXLAttributeTagRepository +use Ushahidi\Core\Entity\HXLFormAttributeHXLAttributeTagRepository as HXLFormAttributeHXLAttributeTagRepositoryContract; use Ushahidi\Contracts\Repository\ReadRepository; use Ushahidi\Contracts\Repository\SearchRepository; diff --git a/src/Ushahidi/Modules/V3/Repository/HXL/HXLLicenseRepository.php b/src/Ushahidi/Modules/V3/Repository/HXL/HXLLicenseRepository.php index b11eafbc88..687af28491 100644 --- a/src/Ushahidi/Modules/V3/Repository/HXL/HXLLicenseRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/HXL/HXLLicenseRepository.php @@ -13,7 +13,7 @@ use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Entity\HXL\HXLLicense; -use Ushahidi\Contracts\Repository\Entity\HXLLicenseRepository as HXLLicenseRepositoryContract; +use Ushahidi\Core\Entity\HXL\HXLLicenseRepository as HXLLicenseRepositoryContract; use Ushahidi\Modules\V3\Repository\OhanzeeRepository; class HXLLicenseRepository extends OhanzeeRepository implements diff --git a/src/Ushahidi/Modules/V3/Repository/HXL/HXLMetadataRepository.php b/src/Ushahidi/Modules/V3/Repository/HXL/HXLMetadataRepository.php index dae82c6d4c..523a675029 100644 --- a/src/Ushahidi/Modules/V3/Repository/HXL/HXLMetadataRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/HXL/HXLMetadataRepository.php @@ -12,7 +12,7 @@ use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Entity\HXL\HXLMetadata; -use Ushahidi\Contracts\Repository\Entity\HXLMetadataRepository as HXLMetadataRepositoryContract; +use Ushahidi\Core\Entity\HXL\HXLMetadataRepository as HXLMetadataRepositoryContract; use Ushahidi\Modules\V3\Repository\OhanzeeRepository; class HXLMetadataRepository extends OhanzeeRepository implements diff --git a/src/Ushahidi/Modules/V3/Repository/HXL/HXLTagRepository.php b/src/Ushahidi/Modules/V3/Repository/HXL/HXLTagRepository.php index b1cc1d3772..cba6a1690a 100644 --- a/src/Ushahidi/Modules/V3/Repository/HXL/HXLTagRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/HXL/HXLTagRepository.php @@ -19,7 +19,7 @@ use Ushahidi\Modules\V3\Repository\OhanzeeRepository; use Ushahidi\Contracts\Repository\ReadRepository; use Ushahidi\Contracts\Repository\SearchRepository; -use Ushahidi\Contracts\Repository\Entity\HXLTagRepository as HXLTagRepositoryContract; +use Ushahidi\Core\Entity\HXLTagRepository as HXLTagRepositoryContract; class HXLTagRepository extends OhanzeeRepository implements HXLTagRepositoryContract, diff --git a/src/Ushahidi/Modules/V3/Repository/MediaRepository.php b/src/Ushahidi/Modules/V3/Repository/MediaRepository.php index fca55a1969..1684530600 100644 --- a/src/Ushahidi/Modules/V3/Repository/MediaRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/MediaRepository.php @@ -13,7 +13,7 @@ use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Entity\Media; -use Ushahidi\Contracts\Repository\Entity\MediaRepository as MediaRepositoryContract; +use Ushahidi\Core\Entity\MediaRepository as MediaRepositoryContract; use Ushahidi\Core\Tool\Uploader; class MediaRepository extends OhanzeeRepository implements diff --git a/src/Ushahidi/Modules/V3/Repository/MessageRepository.php b/src/Ushahidi/Modules/V3/Repository/MessageRepository.php index 994c490389..9a8198c2e3 100644 --- a/src/Ushahidi/Modules/V3/Repository/MessageRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/MessageRepository.php @@ -20,7 +20,7 @@ use Ushahidi\DataSource\Contracts\MessageDirection; use Ushahidi\Contracts\Repository\Usecase\CreateMessageRepository; use Ushahidi\Contracts\Repository\Usecase\UpdateMessageRepository; -use Ushahidi\Contracts\Repository\Entity\MessageRepository as MessageRepositoryContract; +use Ushahidi\Core\Entity\MessageRepository as MessageRepositoryContract; class MessageRepository extends OhanzeeRepository implements MessageRepositoryContract, diff --git a/src/Ushahidi/Modules/V3/Repository/Notification/QueueRepository.php b/src/Ushahidi/Modules/V3/Repository/Notification/QueueRepository.php index fc768b28fd..9d0e0aff3b 100644 --- a/src/Ushahidi/Modules/V3/Repository/Notification/QueueRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/Notification/QueueRepository.php @@ -14,7 +14,7 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Entity\NotificationQueue; -use Ushahidi\Contracts\Repository\Entity\NotificationQueueRepository as NotificationQueueRepositoryContract; +use Ushahidi\Core\Entity\NotificationQueueRepository as NotificationQueueRepositoryContract; use Ushahidi\Modules\V3\Repository\OhanzeeRepository; class QueueRepository extends OhanzeeRepository implements NotificationQueueRepositoryContract diff --git a/src/Ushahidi/Modules/V3/Repository/NotificationRepository.php b/src/Ushahidi/Modules/V3/Repository/NotificationRepository.php index 54c600e124..705326a55b 100644 --- a/src/Ushahidi/Modules/V3/Repository/NotificationRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/NotificationRepository.php @@ -16,7 +16,7 @@ use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Entity\Notification; -use Ushahidi\Contracts\Repository\Entity\NotificationRepository as NotificationRepositoryContract; +use Ushahidi\Core\Entity\NotificationRepository as NotificationRepositoryContract; class NotificationRepository extends OhanzeeRepository implements NotificationRepositoryContract { diff --git a/src/Ushahidi/Modules/V3/Repository/PermissionRepository.php b/src/Ushahidi/Modules/V3/Repository/PermissionRepository.php index e39d82e487..840b772349 100644 --- a/src/Ushahidi/Modules/V3/Repository/PermissionRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/PermissionRepository.php @@ -13,7 +13,7 @@ use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Entity\Permission; -use Ushahidi\Contracts\Repository\Entity\PermissionRepository as PermissionRepositoryContract; +use Ushahidi\Core\Entity\PermissionRepository as PermissionRepositoryContract; class PermissionRepository extends OhanzeeRepository implements PermissionRepositoryContract diff --git a/src/Ushahidi/Modules/V3/Repository/Post/ExportRepository.php b/src/Ushahidi/Modules/V3/Repository/Post/ExportRepository.php index f731c06497..9a8daa18bf 100644 --- a/src/Ushahidi/Modules/V3/Repository/Post/ExportRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/Post/ExportRepository.php @@ -15,10 +15,10 @@ use Ushahidi\Core\Entity\Post; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Modules\V3\Repository\PostRepository; -use Ushahidi\Contracts\Repository\Entity\SetRepository; -use Ushahidi\Contracts\Repository\Entity\TagRepository; -use Ushahidi\Contracts\Repository\Entity\MessageRepository; -use Ushahidi\Contracts\Repository\Entity\PostExportRepository; +use Ushahidi\Core\Entity\SetRepository; +use Ushahidi\Core\Entity\TagRepository; +use Ushahidi\Core\Entity\MessageRepository; +use Ushahidi\Core\Entity\PostExportRepository; class ExportRepository extends PostRepository implements PostExportRepository { diff --git a/src/Ushahidi/Modules/V3/Repository/Post/LockRepository.php b/src/Ushahidi/Modules/V3/Repository/Post/LockRepository.php index 4ab2dcbecc..0cb0080b1a 100644 --- a/src/Ushahidi/Modules/V3/Repository/Post/LockRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/Post/LockRepository.php @@ -19,7 +19,7 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Modules\V3\Repository\OhanzeeRepository; -use Ushahidi\Contracts\Repository\Entity\PostLockRepository; +use Ushahidi\Core\Entity\PostLockRepository; use Ushahidi\Modules\V3\Repository\UserRepository; use Ushahidi\Core\Tool\OhanzeeResolver; diff --git a/src/Ushahidi/Modules/V3/Repository/Post/ValueFactory.php b/src/Ushahidi/Modules/V3/Repository/Post/ValueFactory.php index dfddc5d20f..bb1f3e9640 100644 --- a/src/Ushahidi/Modules/V3/Repository/Post/ValueFactory.php +++ b/src/Ushahidi/Modules/V3/Repository/Post/ValueFactory.php @@ -26,7 +26,7 @@ public function __construct($map = []) * * @param string $type * - * @return \Ushahidi\Contracts\Repository\Entity\PostValueRepository + * @return \Ushahidi\Core\Entity\PostValueRepository */ public function getRepo($type) { diff --git a/src/Ushahidi/Modules/V3/Repository/Post/ValueRepository.php b/src/Ushahidi/Modules/V3/Repository/Post/ValueRepository.php index a800f380ba..415bb1abee 100644 --- a/src/Ushahidi/Modules/V3/Repository/Post/ValueRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/Post/ValueRepository.php @@ -14,7 +14,7 @@ use Ohanzee\DB; use Ushahidi\Core\Entity\PostValue; use Ushahidi\Modules\V3\Repository\OhanzeeRepository; -use Ushahidi\Contracts\Repository\Entity\PostValueRepository; +use Ushahidi\Core\Entity\PostValueRepository; use Ushahidi\Contracts\Repository\Usecase\ValuesForPostRepository; use Ushahidi\Contracts\Repository\Usecase\UpdatePostValueRepository; diff --git a/src/Ushahidi/Modules/V3/Repository/PostRepository.php b/src/Ushahidi/Modules/V3/Repository/PostRepository.php index 35f7fa97e5..66998b74c1 100644 --- a/src/Ushahidi/Modules/V3/Repository/PostRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/PostRepository.php @@ -27,12 +27,12 @@ use Ushahidi\Modules\V3\Repository\Post\ValueFactory as PostValueFactory; use Ushahidi\Contracts\Repository\Usecase\SetPostRepository; use Ushahidi\Contracts\Repository\Usecase\UpdatePostRepository; -use Ushahidi\Contracts\Repository\Entity\ContactRepository; -use Ushahidi\Contracts\Repository\Entity\PostLockRepository; -use Ushahidi\Contracts\Repository\Entity\FormRepository as FormRepositoryContract; -use Ushahidi\Contracts\Repository\Entity\PostRepository as PostRepositoryContract; -use Ushahidi\Contracts\Repository\Entity\FormStageRepository as FormStageRepositoryContract; -use Ushahidi\Contracts\Repository\Entity\FormAttributeRepository as FormAttributeRepositoryContract; +use Ushahidi\Core\Entity\ContactRepository; +use Ushahidi\Core\Entity\PostLockRepository; +use Ushahidi\Core\Entity\FormRepository as FormRepositoryContract; +use Ushahidi\Core\Entity\PostRepository as PostRepositoryContract; +use Ushahidi\Core\Entity\FormStageRepository as FormStageRepositoryContract; +use Ushahidi\Core\Entity\FormAttributeRepository as FormAttributeRepositoryContract; use Ushahidi\Contracts\Search; class PostRepository extends OhanzeeRepository implements diff --git a/src/Ushahidi/Modules/V3/Repository/RoleRepository.php b/src/Ushahidi/Modules/V3/Repository/RoleRepository.php index a8c4e60001..2583cee699 100644 --- a/src/Ushahidi/Modules/V3/Repository/RoleRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/RoleRepository.php @@ -15,7 +15,7 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Entity\Role; -use Ushahidi\Contracts\Repository\Entity\RoleRepository as RoleRepositoryContract; +use Ushahidi\Core\Entity\RoleRepository as RoleRepositoryContract; class RoleRepository extends OhanzeeRepository implements RoleRepositoryContract diff --git a/src/Ushahidi/Modules/V3/Repository/SetRepository.php b/src/Ushahidi/Modules/V3/Repository/SetRepository.php index e346e8428d..4106e6dc90 100644 --- a/src/Ushahidi/Modules/V3/Repository/SetRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/SetRepository.php @@ -17,7 +17,7 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Core\Concerns\Event; use Ushahidi\Core\Entity\SavedSearch; -use Ushahidi\Contracts\Repository\Entity\SetRepository as SetRepositoryContract; +use Ushahidi\Core\Entity\SetRepository as SetRepositoryContract; use Ushahidi\Contracts\Search; class SetRepository extends OhanzeeRepository implements SetRepositoryContract diff --git a/src/Ushahidi/Modules/V3/Repository/TagRepository.php b/src/Ushahidi/Modules/V3/Repository/TagRepository.php index aac5c28186..5eee6dee08 100644 --- a/src/Ushahidi/Modules/V3/Repository/TagRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/TagRepository.php @@ -22,7 +22,7 @@ use Ushahidi\Contracts\Repository\Usecase\DeleteTagRepository; use Ushahidi\Contracts\Repository\Usecase\UpdateTagRepository; use Ushahidi\Contracts\Repository\Usecase\UpdatePostTagRepository; -use Ushahidi\Contracts\Repository\Entity\TagRepository as TagRepositoryContract; +use Ushahidi\Core\Entity\TagRepository as TagRepositoryContract; class TagRepository extends OhanzeeRepository implements UpdateTagRepository, diff --git a/src/Ushahidi/Modules/V3/Repository/TargetedSurveyStateRepository.php b/src/Ushahidi/Modules/V3/Repository/TargetedSurveyStateRepository.php index c99fb1074c..f25f756034 100644 --- a/src/Ushahidi/Modules/V3/Repository/TargetedSurveyStateRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/TargetedSurveyStateRepository.php @@ -13,7 +13,7 @@ use Ohanzee\DB; use Ushahidi\Core\Entity; -use Ushahidi\Contracts\Repository\Entity\TargetedSurveyStateRepository as TargetedSurveyStateRepositoryContract; +use Ushahidi\Core\Entity\TargetedSurveyStateRepository as TargetedSurveyStateRepositoryContract; class TargetedSurveyStateRepository extends OhanzeeRepository implements TargetedSurveyStateRepositoryContract diff --git a/src/Ushahidi/Modules/V3/Repository/TosRepository.php b/src/Ushahidi/Modules/V3/Repository/TosRepository.php index cb92932c28..400646eea8 100644 --- a/src/Ushahidi/Modules/V3/Repository/TosRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/TosRepository.php @@ -16,7 +16,7 @@ use Ushahidi\Core\Tool\SearchData; use Ushahidi\Contracts\Entity; use Ushahidi\Core\Concerns\UserContext; -use Ushahidi\Contracts\Repository\Entity\TosRepository as TosRepositoryContract; +use Ushahidi\Core\Entity\TosRepository as TosRepositoryContract; class TosRepository extends OhanzeeRepository implements TosRepositoryContract diff --git a/src/Ushahidi/Modules/V3/Repository/User/SettingRepository.php b/src/Ushahidi/Modules/V3/Repository/User/SettingRepository.php index 6270df8987..0be1a3d9d1 100644 --- a/src/Ushahidi/Modules/V3/Repository/User/SettingRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/User/SettingRepository.php @@ -14,7 +14,7 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Entity\UserSetting; -use Ushahidi\Contracts\Repository\Entity\UserSettingRepository as UserSettingRepositoryContract; +use Ushahidi\Core\Entity\UserSettingRepository as UserSettingRepositoryContract; use Ushahidi\Modules\V3\Repository\OhanzeeRepository; class SettingRepository extends OhanzeeRepository implements diff --git a/src/Ushahidi/Modules/V3/Repository/UserRepository.php b/src/Ushahidi/Modules/V3/Repository/UserRepository.php index 536b5bfc39..faed0d5175 100644 --- a/src/Ushahidi/Modules/V3/Repository/UserRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/UserRepository.php @@ -25,7 +25,7 @@ use Illuminate\Support\Facades\Hash; use Ushahidi\Contracts\Repository\Usecase\UserRegisterRepository; use Ushahidi\Contracts\Repository\Usecase\UserResetPasswordRepository; -use Ushahidi\Contracts\Repository\Entity\UserRepository as UserRepositoryContract; +use Ushahidi\Core\Entity\UserRepository as UserRepositoryContract; class UserRepository extends OhanzeeRepository implements UserRepositoryContract, diff --git a/src/Ushahidi/Modules/V3/Repository/Webhook/JobRepository.php b/src/Ushahidi/Modules/V3/Repository/Webhook/JobRepository.php index 546d5c8459..5c56c7d767 100644 --- a/src/Ushahidi/Modules/V3/Repository/Webhook/JobRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/Webhook/JobRepository.php @@ -15,7 +15,7 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Core\Entity\WebhookJob; use Ushahidi\Modules\V3\Repository\OhanzeeRepository; -use Ushahidi\Contracts\Repository\Entity\WebhookJobRepository as WebhookJobRepositoryContract; +use Ushahidi\Core\Entity\WebhookJobRepository as WebhookJobRepositoryContract; class JobRepository extends OhanzeeRepository implements WebhookJobRepositoryContract { diff --git a/src/Ushahidi/Modules/V3/Repository/WebhookRepository.php b/src/Ushahidi/Modules/V3/Repository/WebhookRepository.php index f32ec9f8ff..4d332734d9 100644 --- a/src/Ushahidi/Modules/V3/Repository/WebhookRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/WebhookRepository.php @@ -18,7 +18,7 @@ use Ushahidi\Core\Entity\Webhook; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; -use Ushahidi\Contracts\Repository\Entity\WebhookRepository as WebhookRepositoryContract; +use Ushahidi\Core\Entity\WebhookRepository as WebhookRepositoryContract; class WebhookRepository extends OhanzeeRepository implements WebhookRepositoryContract { diff --git a/src/Ushahidi/Modules/V3/ServiceProvider.php b/src/Ushahidi/Modules/V3/ServiceProvider.php index 26c43efca1..ea1717eb49 100644 --- a/src/Ushahidi/Modules/V3/ServiceProvider.php +++ b/src/Ushahidi/Modules/V3/ServiceProvider.php @@ -14,18 +14,18 @@ use Ushahidi\Core\Usecase\Post\ExportPost; use Ushahidi\Core\Usecase\Export\Job\PostCount; use Ushahidi\Core\Usecase\Message\ReceiveMessage; -use Ushahidi\Contracts\Repository\Entity\SetRepository; -use Ushahidi\Contracts\Repository\Entity\PostRepository; -use Ushahidi\Contracts\Repository\Entity\UserRepository; -use Ushahidi\Contracts\Repository\Entity\MediaRepository; -use Ushahidi\Contracts\Repository\Entity\ApiKeyRepository; -use Ushahidi\Contracts\Repository\Entity\ConfigRepository; -use Ushahidi\Contracts\Repository\Entity\ContactRepository; -use Ushahidi\Contracts\Repository\Entity\MessageRepository; -use Ushahidi\Contracts\Repository\Entity\ExportJobRepository; -use Ushahidi\Contracts\Repository\Entity\ExportBatchRepository; -use Ushahidi\Contracts\Repository\Entity\FormAttributeRepository; -use Ushahidi\Contracts\Repository\Entity\TargetedSurveyStateRepository; +use Ushahidi\Core\Entity\SetRepository; +use Ushahidi\Core\Entity\PostRepository; +use Ushahidi\Core\Entity\UserRepository; +use Ushahidi\Core\Entity\MediaRepository; +use Ushahidi\Core\Entity\ApiKeyRepository; +use Ushahidi\Core\Entity\ConfigRepository; +use Ushahidi\Core\Entity\ContactRepository; +use Ushahidi\Core\Entity\MessageRepository; +use Ushahidi\Core\Entity\ExportJobRepository; +use Ushahidi\Core\Entity\ExportBatchRepository; +use Ushahidi\Core\Entity\FormAttributeRepository; +use Ushahidi\Core\Entity\TargetedSurveyStateRepository; class ServiceProvider extends BaseServiceProvider { diff --git a/src/Ushahidi/Modules/V3/Transformer/CSVPostTransformer.php b/src/Ushahidi/Modules/V3/Transformer/CSVPostTransformer.php index 9366cc2ab3..3f896182b6 100644 --- a/src/Ushahidi/Modules/V3/Transformer/CSVPostTransformer.php +++ b/src/Ushahidi/Modules/V3/Transformer/CSVPostTransformer.php @@ -12,7 +12,7 @@ namespace Ushahidi\Modules\V3\Transformer; use Ushahidi\Contracts\MappingTransformer; -use Ushahidi\Contracts\Repository\Entity\PostRepository; +use Ushahidi\Core\Entity\PostRepository; class CSVPostTransformer implements MappingTransformer { diff --git a/src/Ushahidi/Modules/V3/Validator/CSV/Create.php b/src/Ushahidi/Modules/V3/Validator/CSV/Create.php index 6eee0b465f..1fd06123b6 100644 --- a/src/Ushahidi/Modules/V3/Validator/CSV/Create.php +++ b/src/Ushahidi/Modules/V3/Validator/CSV/Create.php @@ -12,7 +12,7 @@ namespace Ushahidi\Modules\V3\Validator\CSV; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Entity\FormRepository; +use Ushahidi\Core\Entity\FormRepository; class Create extends LegacyValidator { diff --git a/src/Ushahidi/Modules/V3/Validator/Contact/Update.php b/src/Ushahidi/Modules/V3/Validator/Contact/Update.php index 25cd89fcf6..2c76ee2738 100644 --- a/src/Ushahidi/Modules/V3/Validator/Contact/Update.php +++ b/src/Ushahidi/Modules/V3/Validator/Contact/Update.php @@ -13,7 +13,7 @@ use Ushahidi\Contracts\Contact; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Entity\UserRepository; +use Ushahidi\Core\Entity\UserRepository; class Update extends LegacyValidator { diff --git a/src/Ushahidi/Modules/V3/Validator/ExportJob/Update.php b/src/Ushahidi/Modules/V3/Validator/ExportJob/Update.php index 0a36f7cf11..ab5ea8d61d 100644 --- a/src/Ushahidi/Modules/V3/Validator/ExportJob/Update.php +++ b/src/Ushahidi/Modules/V3/Validator/ExportJob/Update.php @@ -13,9 +13,9 @@ use Ushahidi\Core\Facade\Features; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Entity\UserRepository; -use Ushahidi\Contracts\Repository\Entity\ExportJobRepository; -use Ushahidi\Contracts\Repository\Entity\HXLMetadataRepository; +use Ushahidi\Core\Entity\UserRepository; +use Ushahidi\Core\Entity\ExportJobRepository; +use Ushahidi\Core\Entity\HXL\HXLMetadataRepository; class Update extends LegacyValidator { diff --git a/src/Ushahidi/Modules/V3/Validator/Form/Attribute/Update.php b/src/Ushahidi/Modules/V3/Validator/Form/Attribute/Update.php index 479c2c8035..2c94b7f1a2 100644 --- a/src/Ushahidi/Modules/V3/Validator/Form/Attribute/Update.php +++ b/src/Ushahidi/Modules/V3/Validator/Form/Attribute/Update.php @@ -13,8 +13,8 @@ use Kohana\Validation\Validation; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Entity\FormStageRepository; -use Ushahidi\Contracts\Repository\Entity\FormAttributeRepository; +use Ushahidi\Core\Entity\FormStageRepository; +use Ushahidi\Core\Entity\FormAttributeRepository; class Update extends LegacyValidator { diff --git a/src/Ushahidi/Modules/V3/Validator/Form/Contact/Update.php b/src/Ushahidi/Modules/V3/Validator/Form/Contact/Update.php index e6006fb7f6..90e19d211a 100644 --- a/src/Ushahidi/Modules/V3/Validator/Form/Contact/Update.php +++ b/src/Ushahidi/Modules/V3/Validator/Form/Contact/Update.php @@ -12,9 +12,9 @@ namespace Ushahidi\Modules\V3\Validator\Form\Contact; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Entity\FormRepository; -use Ushahidi\Contracts\Repository\Entity\ContactRepository; -use Ushahidi\Contracts\Repository\Entity\FormContactRepository; +use Ushahidi\Core\Entity\FormRepository; +use Ushahidi\Core\Entity\ContactRepository; +use Ushahidi\Core\Entity\FormContactRepository; class Update extends LegacyValidator { diff --git a/src/Ushahidi/Modules/V3/Validator/Form/Role/Update.php b/src/Ushahidi/Modules/V3/Validator/Form/Role/Update.php index c79900a19b..d2ba4e8994 100644 --- a/src/Ushahidi/Modules/V3/Validator/Form/Role/Update.php +++ b/src/Ushahidi/Modules/V3/Validator/Form/Role/Update.php @@ -12,8 +12,8 @@ namespace Ushahidi\Modules\V3\Validator\Form\Role; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Entity\FormRepository; -use Ushahidi\Contracts\Repository\Entity\RoleRepository; +use Ushahidi\Core\Entity\FormRepository; +use Ushahidi\Core\Entity\RoleRepository; class Update extends LegacyValidator { diff --git a/src/Ushahidi/Modules/V3/Validator/Form/Stage/Update.php b/src/Ushahidi/Modules/V3/Validator/Form/Stage/Update.php index 94efbe29c1..510092d782 100644 --- a/src/Ushahidi/Modules/V3/Validator/Form/Stage/Update.php +++ b/src/Ushahidi/Modules/V3/Validator/Form/Stage/Update.php @@ -12,7 +12,7 @@ namespace Ushahidi\Modules\V3\Validator\Form\Stage; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Entity\FormRepository; +use Ushahidi\Core\Entity\FormRepository; class Update extends LegacyValidator { diff --git a/src/Ushahidi/Modules/V3/Validator/Form/Update.php b/src/Ushahidi/Modules/V3/Validator/Form/Update.php index 2be109bf3f..9eae26e215 100644 --- a/src/Ushahidi/Modules/V3/Validator/Form/Update.php +++ b/src/Ushahidi/Modules/V3/Validator/Form/Update.php @@ -13,7 +13,7 @@ use Ushahidi\Core\Facade\Features; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Entity\FormRepository; +use Ushahidi\Core\Entity\FormRepository; class Update extends LegacyValidator { diff --git a/src/Ushahidi/Modules/V3/Validator/HXL/HXLFormAttributeHXLAttributeTag/Create.php b/src/Ushahidi/Modules/V3/Validator/HXL/HXLFormAttributeHXLAttributeTag/Create.php index 406ff20082..ebe7e39ef8 100644 --- a/src/Ushahidi/Modules/V3/Validator/HXL/HXLFormAttributeHXLAttributeTag/Create.php +++ b/src/Ushahidi/Modules/V3/Validator/HXL/HXLFormAttributeHXLAttributeTag/Create.php @@ -11,11 +11,11 @@ namespace Ushahidi\Modules\V3\Validator\HXL\HXLFormAttributeHXLAttributeTag; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Entity\HXLTagRepository; -use Ushahidi\Contracts\Repository\Entity\ExportJobRepository; -use Ushahidi\Contracts\Repository\Entity\HXLAttributeRepository; -use Ushahidi\Contracts\Repository\Entity\FormAttributeRepository; -use Ushahidi\Contracts\Repository\Entity\HXLFormAttributeHXLAttributeTagRepository; +use Ushahidi\Core\Entity\HXL\HXLTagRepository; +use Ushahidi\Core\Entity\ExportJobRepository; +use Ushahidi\Core\Entity\HXL\HXLAttributeRepository; +use Ushahidi\Core\Entity\FormAttributeRepository; +use Ushahidi\Core\Entity\HXL\HXLFormAttributeHXLAttributeTagRepository; class Create extends LegacyValidator { diff --git a/src/Ushahidi/Modules/V3/Validator/HXL/Metadata/Create.php b/src/Ushahidi/Modules/V3/Validator/HXL/Metadata/Create.php index 3bfdd199ea..bd58fcf01c 100644 --- a/src/Ushahidi/Modules/V3/Validator/HXL/Metadata/Create.php +++ b/src/Ushahidi/Modules/V3/Validator/HXL/Metadata/Create.php @@ -12,9 +12,9 @@ namespace Ushahidi\Modules\V3\Validator\HXL\Metadata; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Entity\UserRepository; -use Ushahidi\Contracts\Repository\Entity\HXLLicenseRepository; -use Ushahidi\Contracts\Repository\Entity\HXLMetadataRepository; +use Ushahidi\Core\Entity\UserRepository; +use Ushahidi\Core\Entity\HXL\HXLLicenseRepository; +use Ushahidi\Core\Entity\HXL\HXLMetadataRepository; class Create extends LegacyValidator { diff --git a/src/Ushahidi/Modules/V3/Validator/Layer/Update.php b/src/Ushahidi/Modules/V3/Validator/Layer/Update.php index 27e604a762..8b415136b5 100644 --- a/src/Ushahidi/Modules/V3/Validator/Layer/Update.php +++ b/src/Ushahidi/Modules/V3/Validator/Layer/Update.php @@ -12,7 +12,7 @@ namespace Ushahidi\Modules\V3\Validator\Layer; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Entity\MediaRepository; +use Ushahidi\Core\Entity\MediaRepository; class Update extends LegacyValidator { diff --git a/src/Ushahidi/Modules/V3/Validator/Message/Create.php b/src/Ushahidi/Modules/V3/Validator/Message/Create.php index b53e7a6376..be142b9fa7 100644 --- a/src/Ushahidi/Modules/V3/Validator/Message/Create.php +++ b/src/Ushahidi/Modules/V3/Validator/Message/Create.php @@ -13,7 +13,7 @@ use Ushahidi\Modules\V3\Validator\LegacyValidator; use Ushahidi\Contracts\Repository\Usecase\CreateMessageRepository; -use Ushahidi\Contracts\Repository\Entity\UserRepository; +use Ushahidi\Core\Entity\UserRepository; use Ushahidi\DataSource\Contracts\MessageDirection; use Ushahidi\DataSource\Contracts\MessageStatus; diff --git a/src/Ushahidi/Modules/V3/Validator/Notification/Update.php b/src/Ushahidi/Modules/V3/Validator/Notification/Update.php index d13a2165a9..08df39cec9 100644 --- a/src/Ushahidi/Modules/V3/Validator/Notification/Update.php +++ b/src/Ushahidi/Modules/V3/Validator/Notification/Update.php @@ -12,8 +12,8 @@ namespace Ushahidi\Modules\V3\Validator\Notification; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Entity\SetRepository; -use Ushahidi\Contracts\Repository\Entity\UserRepository; +use Ushahidi\Core\Entity\SetRepository; +use Ushahidi\Core\Entity\UserRepository; class Update extends LegacyValidator { diff --git a/src/Ushahidi/Modules/V3/Validator/Post/Create.php b/src/Ushahidi/Modules/V3/Validator/Post/Create.php index b8b6e3762a..d24e012476 100644 --- a/src/Ushahidi/Modules/V3/Validator/Post/Create.php +++ b/src/Ushahidi/Modules/V3/Validator/Post/Create.php @@ -18,13 +18,13 @@ use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Modules\V3\Validator\LegacyValidator; use Ushahidi\Core\Concerns\Acl as AccessControlList; -use Ushahidi\Contracts\Repository\Entity\FormRepository; -use Ushahidi\Contracts\Repository\Entity\RoleRepository; -use Ushahidi\Contracts\Repository\Entity\UserRepository; -use Ushahidi\Contracts\Repository\Entity\PostLockRepository; -use Ushahidi\Contracts\Repository\Entity\FormStageRepository; +use Ushahidi\Core\Entity\FormRepository; +use Ushahidi\Core\Entity\RoleRepository; +use Ushahidi\Core\Entity\UserRepository; +use Ushahidi\Core\Entity\PostLockRepository; +use Ushahidi\Core\Entity\FormStageRepository; use Ushahidi\Contracts\Repository\Usecase\UpdatePostRepository; -use Ushahidi\Contracts\Repository\Entity\FormAttributeRepository; +use Ushahidi\Core\Entity\FormAttributeRepository; use Ushahidi\Contracts\Repository\Usecase\UpdatePostTagRepository; use Ushahidi\Modules\V3\Repository\Post\ValueFactory as PostValueFactory; diff --git a/src/Ushahidi/Modules/V3/Validator/Post/Lock/Update.php b/src/Ushahidi/Modules/V3/Validator/Post/Lock/Update.php index af64b60ba9..2c93d77b82 100644 --- a/src/Ushahidi/Modules/V3/Validator/Post/Lock/Update.php +++ b/src/Ushahidi/Modules/V3/Validator/Post/Lock/Update.php @@ -12,7 +12,7 @@ namespace Ushahidi\Modules\V3\Validator\Post\Lock; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Entity\PostRepository; +use Ushahidi\Core\Entity\PostRepository; class Update extends LegacyValidator { diff --git a/src/Ushahidi/Modules/V3/Validator/Post/Media.php b/src/Ushahidi/Modules/V3/Validator/Post/Media.php index e42320590a..8e39332244 100644 --- a/src/Ushahidi/Modules/V3/Validator/Post/Media.php +++ b/src/Ushahidi/Modules/V3/Validator/Post/Media.php @@ -11,7 +11,7 @@ namespace Ushahidi\Modules\V3\Validator\Post; -use Ushahidi\Contracts\Repository\Entity\MediaRepository; +use Ushahidi\Core\Entity\MediaRepository; class Media extends ValueValidator { diff --git a/src/Ushahidi/Modules/V3/Validator/Post/Tags.php b/src/Ushahidi/Modules/V3/Validator/Post/Tags.php index b3e37ba804..d9d772f5e1 100644 --- a/src/Ushahidi/Modules/V3/Validator/Post/Tags.php +++ b/src/Ushahidi/Modules/V3/Validator/Post/Tags.php @@ -11,7 +11,7 @@ namespace Ushahidi\Modules\V3\Validator\Post; -use Ushahidi\Contracts\Repository\Entity\TagRepository; +use Ushahidi\Core\Entity\TagRepository; class Tags extends ValueValidator { diff --git a/src/Ushahidi/Modules/V3/Validator/Role/Update.php b/src/Ushahidi/Modules/V3/Validator/Role/Update.php index c6895684e1..222126c696 100644 --- a/src/Ushahidi/Modules/V3/Validator/Role/Update.php +++ b/src/Ushahidi/Modules/V3/Validator/Role/Update.php @@ -13,7 +13,7 @@ use Ushahidi\Core\Facade\Features; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Entity\PermissionRepository; +use Ushahidi\Core\Entity\PermissionRepository; class Update extends LegacyValidator { diff --git a/src/Ushahidi/Modules/V3/Validator/Set/Post/Create.php b/src/Ushahidi/Modules/V3/Validator/Set/Post/Create.php index 3540429517..cafd6b39b8 100644 --- a/src/Ushahidi/Modules/V3/Validator/Set/Post/Create.php +++ b/src/Ushahidi/Modules/V3/Validator/Set/Post/Create.php @@ -12,7 +12,7 @@ namespace Ushahidi\Modules\V3\Validator\Set\Post; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Entity\PostRepository; +use Ushahidi\Core\Entity\PostRepository; class Create extends LegacyValidator { diff --git a/src/Ushahidi/Modules/V3/Validator/Set/Update.php b/src/Ushahidi/Modules/V3/Validator/Set/Update.php index 464acb9ab0..b256aaa5e1 100644 --- a/src/Ushahidi/Modules/V3/Validator/Set/Update.php +++ b/src/Ushahidi/Modules/V3/Validator/Set/Update.php @@ -13,8 +13,8 @@ use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Entity\RoleRepository; -use Ushahidi\Contracts\Repository\Entity\UserRepository; +use Ushahidi\Core\Entity\RoleRepository; +use Ushahidi\Core\Entity\UserRepository; class Update extends LegacyValidator { diff --git a/src/Ushahidi/Modules/V3/Validator/Tag/Update.php b/src/Ushahidi/Modules/V3/Validator/Tag/Update.php index 2e4200e588..d103625c80 100644 --- a/src/Ushahidi/Modules/V3/Validator/Tag/Update.php +++ b/src/Ushahidi/Modules/V3/Validator/Tag/Update.php @@ -12,7 +12,7 @@ namespace Ushahidi\Modules\V3\Validator\Tag; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Entity\RoleRepository; +use Ushahidi\Core\Entity\RoleRepository; use Ushahidi\Contracts\Repository\Usecase\UpdateTagRepository; class Update extends LegacyValidator diff --git a/src/Ushahidi/Modules/V3/Validator/Tos/Create.php b/src/Ushahidi/Modules/V3/Validator/Tos/Create.php index ccd1cb59eb..a2f2370bfc 100644 --- a/src/Ushahidi/Modules/V3/Validator/Tos/Create.php +++ b/src/Ushahidi/Modules/V3/Validator/Tos/Create.php @@ -11,7 +11,7 @@ namespace Ushahidi\Modules\V3\Validator\Tos; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Entity\UserRepository; +use Ushahidi\Core\Entity\UserRepository; class Create extends LegacyValidator { diff --git a/src/Ushahidi/Modules/V3/Validator/User/Reset.php b/src/Ushahidi/Modules/V3/Validator/User/Reset.php index f3d0bbde26..9eb2e7c561 100644 --- a/src/Ushahidi/Modules/V3/Validator/User/Reset.php +++ b/src/Ushahidi/Modules/V3/Validator/User/Reset.php @@ -12,7 +12,7 @@ namespace Ushahidi\Modules\V3\Validator\User; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Entity\UserRepository; +use Ushahidi\Core\Entity\UserRepository; class Reset extends LegacyValidator { diff --git a/src/Ushahidi/Modules/V3/Validator/User/Setting/Update.php b/src/Ushahidi/Modules/V3/Validator/User/Setting/Update.php index 3ed488497c..ebec737d6d 100644 --- a/src/Ushahidi/Modules/V3/Validator/User/Setting/Update.php +++ b/src/Ushahidi/Modules/V3/Validator/User/Setting/Update.php @@ -12,8 +12,8 @@ namespace Ushahidi\Modules\V3\Validator\User\Setting; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Entity\UserRepository; -use Ushahidi\Contracts\Repository\Entity\UserSettingRepository; +use Ushahidi\Core\Entity\UserRepository; +use Ushahidi\Core\Entity\UserSettingRepository; class Update extends LegacyValidator { diff --git a/src/Ushahidi/Modules/V3/Validator/User/Update.php b/src/Ushahidi/Modules/V3/Validator/User/Update.php index df17d057e7..28b483712b 100644 --- a/src/Ushahidi/Modules/V3/Validator/User/Update.php +++ b/src/Ushahidi/Modules/V3/Validator/User/Update.php @@ -14,8 +14,8 @@ use Ushahidi\Core\Facade\Features; use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Entity\RoleRepository; -use Ushahidi\Contracts\Repository\Entity\UserRepository; +use Ushahidi\Core\Entity\RoleRepository; +use Ushahidi\Core\Entity\UserRepository; class Update extends LegacyValidator { diff --git a/src/Ushahidi/Modules/V3/Validator/Webhook/Update.php b/src/Ushahidi/Modules/V3/Validator/Webhook/Update.php index fb6d715b71..fb805dacd0 100644 --- a/src/Ushahidi/Modules/V3/Validator/Webhook/Update.php +++ b/src/Ushahidi/Modules/V3/Validator/Webhook/Update.php @@ -12,7 +12,7 @@ namespace Ushahidi\Modules\V3\Validator\Webhook; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Entity\UserRepository; +use Ushahidi\Core\Entity\UserRepository; class Update extends LegacyValidator { diff --git a/src/Ushahidi/Modules/V5/Repository/UserRepository.php b/src/Ushahidi/Modules/V5/Repository/UserRepository.php index 69a24c376e..d5991ab89f 100644 --- a/src/Ushahidi/Modules/V5/Repository/UserRepository.php +++ b/src/Ushahidi/Modules/V5/Repository/UserRepository.php @@ -4,7 +4,7 @@ use Ushahidi\Contracts\Entity; use Illuminate\Support\Collection; -use Ushahidi\Contracts\Repository\Entity\UserRepository as EntityUserRepository; +use Ushahidi\Core\Entity\UserRepository as EntityUserRepository; class UserRepository implements EntityUserRepository { diff --git a/src/Ushahidi/Modules/V5/ServiceProvider.php b/src/Ushahidi/Modules/V5/ServiceProvider.php index 5898074ad1..b1c6b214b8 100644 --- a/src/Ushahidi/Modules/V5/ServiceProvider.php +++ b/src/Ushahidi/Modules/V5/ServiceProvider.php @@ -5,7 +5,7 @@ use Illuminate\Support\Facades\Route; use Illuminate\Support\AggregateServiceProvider; use Ushahidi\Modules\V5\Repository\UserRepository as RepositoryUserRepository; -use Ushahidi\Contracts\Repository\Entity\UserRepository; +use Ushahidi\Core\Entity\UserRepository; class ServiceProvider extends AggregateServiceProvider { diff --git a/src/Ushahidi/Multisite/Site.php b/src/Ushahidi/Multisite/Site.php index e2d6cba783..0e2efae78b 100644 --- a/src/Ushahidi/Multisite/Site.php +++ b/src/Ushahidi/Multisite/Site.php @@ -16,7 +16,7 @@ use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Request; use League\Flysystem\Config; -use Ushahidi\Contracts\Repository\Entity\ConfigRepository; +use Ushahidi\Core\Entity\ConfigRepository; // @todo consider just an Eloquent model? or ushahidi entity class Site diff --git a/tests/Unit/Core/Tool/VerifierTest.php b/tests/Unit/Core/Tool/VerifierTest.php index 90a0eb01f0..fe67c8f764 100644 --- a/tests/Unit/Core/Tool/VerifierTest.php +++ b/tests/Unit/Core/Tool/VerifierTest.php @@ -12,7 +12,7 @@ use Mockery as M; use Ushahidi\Tests\TestCase; -use Ushahidi\Contracts\Repository\Entity\ApiKeyRepository; +use Ushahidi\Core\Entity\ApiKeyRepository; use Ushahidi\Core\Tool\Verifier; /** diff --git a/tests/Unit/Core/Usecase/ExportJob/PostCountTest.php b/tests/Unit/Core/Usecase/ExportJob/PostCountTest.php index f5b73de9dd..9dc45b39da 100644 --- a/tests/Unit/Core/Usecase/ExportJob/PostCountTest.php +++ b/tests/Unit/Core/Usecase/ExportJob/PostCountTest.php @@ -5,7 +5,7 @@ use Faker; use Mockery as M; use Ushahidi\Tests\TestCase; -use Ushahidi\Contracts\Repository\Entity\ExportJobRepository; +use Ushahidi\Core\Entity\ExportJobRepository; use Ushahidi\Contracts\Session; use Ushahidi\Core\Entity\ExportJob; use Ushahidi\Core\Usecase\Export\Job\PostCount; diff --git a/tests/Unit/Core/Usecase/ReceiveMessageTest.php b/tests/Unit/Core/Usecase/ReceiveMessageTest.php index 38f9916c6a..de3562a8aa 100644 --- a/tests/Unit/Core/Usecase/ReceiveMessageTest.php +++ b/tests/Unit/Core/Usecase/ReceiveMessageTest.php @@ -8,12 +8,12 @@ use Mockery as M; use Ushahidi\Tests\TestCase; -use Ushahidi\Contracts\Repository\Entity\ConfigRepository; -use Ushahidi\Contracts\Repository\Entity\ContactRepository; -use Ushahidi\Contracts\Repository\Entity\FormAttributeRepository; -use Ushahidi\Contracts\Repository\Entity\MessageRepository; -use Ushahidi\Contracts\Repository\Entity\PostRepository; -use Ushahidi\Contracts\Repository\Entity\TargetedSurveyStateRepository; +use Ushahidi\Core\Entity\ConfigRepository; +use Ushahidi\Core\Entity\ContactRepository; +use Ushahidi\Core\Entity\FormAttributeRepository; +use Ushahidi\Core\Entity\MessageRepository; +use Ushahidi\Core\Entity\PostRepository; +use Ushahidi\Core\Entity\TargetedSurveyStateRepository; use Ushahidi\Core\Entity\Config; use Ushahidi\Core\Entity\Contact; use Ushahidi\Core\Entity\Message; diff --git a/tests/Unit/DataSource/Console/IncomingCommandTest.php b/tests/Unit/DataSource/Console/IncomingCommandTest.php index 48e3eed713..360b62a202 100644 --- a/tests/Unit/DataSource/Console/IncomingCommandTest.php +++ b/tests/Unit/DataSource/Console/IncomingCommandTest.php @@ -14,7 +14,7 @@ use Mockery as M; use phpmock\mockery\PHPMockery; use Ushahidi\Tests\TestCase; -use Ushahidi\Contracts\Repository\Entity\ConfigRepository; +use Ushahidi\Core\Entity\ConfigRepository; use Ushahidi\Core\Entity\Config; use Ushahidi\DataSource\Console\IncomingCommand; use Ushahidi\DataSource\DataSourceManager; diff --git a/tests/Unit/DataSource/Console/ListCommandTest.php b/tests/Unit/DataSource/Console/ListCommandTest.php index a15dbf5598..26c9dfdd3d 100644 --- a/tests/Unit/DataSource/Console/ListCommandTest.php +++ b/tests/Unit/DataSource/Console/ListCommandTest.php @@ -13,7 +13,7 @@ use Illuminate\Console\Application as Artisan; use Mockery as M; use Ushahidi\Tests\TestCase; -use Ushahidi\Contracts\Repository\Entity\ConfigRepository; +use Ushahidi\Core\Entity\ConfigRepository; use Ushahidi\Core\Entity\Config; use Ushahidi\DataSource\Console\ListCommand; use Ushahidi\DataSource\DataSourceManager; diff --git a/tests/Unit/DataSource/Console/OutgoingCommandTest.php b/tests/Unit/DataSource/Console/OutgoingCommandTest.php index 2cd7fb6e07..acd5f1f24a 100644 --- a/tests/Unit/DataSource/Console/OutgoingCommandTest.php +++ b/tests/Unit/DataSource/Console/OutgoingCommandTest.php @@ -13,7 +13,7 @@ use Illuminate\Console\Application as Artisan; use Mockery as M; use Ushahidi\Tests\TestCase; -use Ushahidi\Contracts\Repository\Entity\ConfigRepository; +use Ushahidi\Core\Entity\ConfigRepository; use Ushahidi\Core\Entity\Config; use Ushahidi\DataSource\Console\OutgoingCommand; use Ushahidi\DataSource\DataSourceManager; diff --git a/tests/Unit/DataSource/DataSourceManagerTest.php b/tests/Unit/DataSource/DataSourceManagerTest.php index ffa1785cfd..b95f6eebdb 100644 --- a/tests/Unit/DataSource/DataSourceManagerTest.php +++ b/tests/Unit/DataSource/DataSourceManagerTest.php @@ -13,7 +13,7 @@ use Mockery as M; use Ushahidi\Tests\TestCase; use Ushahidi\DataSource\Contracts\IncomingDataSource; -use Ushahidi\Contracts\Repository\Entity\ConfigRepository; +use Ushahidi\Core\Entity\ConfigRepository; use Ushahidi\Core\Entity\Config; use Ushahidi\DataSource\DataSourceManager; use Ushahidi\DataSource\Email\Email; diff --git a/tests/Unit/DataSource/DataSourceStorageTest.php b/tests/Unit/DataSource/DataSourceStorageTest.php index 59972c55fc..074aa503dd 100644 --- a/tests/Unit/DataSource/DataSourceStorageTest.php +++ b/tests/Unit/DataSource/DataSourceStorageTest.php @@ -12,9 +12,9 @@ use Illuminate\Support\Facades\Log; use Mockery as M; -use Ushahidi\Contracts\Repository\Entity\ContactRepository; +use Ushahidi\Core\Entity\ContactRepository; use Ushahidi\Tests\TestCase; -use Ushahidi\Contracts\Repository\Entity\MessageRepository; +use Ushahidi\Core\Entity\MessageRepository; use Ushahidi\Contracts\Usecase; use Ushahidi\Core\Entity\Message; use Ushahidi\Core\Exception\NotFoundException; diff --git a/tests/Unit/DataSource/EmailDataSourceTest.php b/tests/Unit/DataSource/EmailDataSourceTest.php index 0c95e26b0a..138c1d3705 100644 --- a/tests/Unit/DataSource/EmailDataSourceTest.php +++ b/tests/Unit/DataSource/EmailDataSourceTest.php @@ -15,7 +15,7 @@ use Mockery as M; use phpmock\mockery\PHPMockery; use Ushahidi\Tests\TestCase; -use Ushahidi\Contracts\Repository\Entity\MessageRepository; +use Ushahidi\Core\Entity\MessageRepository; use Ushahidi\DataSource\Email\Email; use Ushahidi\Multisite\Site; diff --git a/tests/Unit/Modules/V2/Mappers/FormFieldAttributeMapperTest.php b/tests/Unit/Modules/V2/Mappers/FormFieldAttributeMapperTest.php index 8204a2aef4..7351da7f8a 100644 --- a/tests/Unit/Modules/V2/Mappers/FormFieldAttributeMapperTest.php +++ b/tests/Unit/Modules/V2/Mappers/FormFieldAttributeMapperTest.php @@ -8,7 +8,7 @@ use Ushahidi\Modules\V2\Contracts\ImportDataTools; use Ushahidi\Core\Entity\FormAttribute; use Ushahidi\Core\Entity\FormStage; -use Ushahidi\Contracts\Repository\Entity\FormStageRepository; +use Ushahidi\Core\Entity\FormStageRepository; use Ushahidi\Tests\Unit\Modules\V2\ImportMock; use Ushahidi\Tests\TestCase; use Mockery as M; diff --git a/tests/Unit/Modules/V2/Mappers/IncidentPostMapperTest.php b/tests/Unit/Modules/V2/Mappers/IncidentPostMapperTest.php index 28f9a49d3f..840d441928 100644 --- a/tests/Unit/Modules/V2/Mappers/IncidentPostMapperTest.php +++ b/tests/Unit/Modules/V2/Mappers/IncidentPostMapperTest.php @@ -7,7 +7,7 @@ use Ushahidi\Modules\V2\Contracts\ImportDataTools; use Ushahidi\Core\Entity\Post; use Ushahidi\Core\Entity\FormAttribute; -use Ushahidi\Contracts\Repository\Entity\FormAttributeRepository; +use Ushahidi\Core\Entity\FormAttributeRepository; use Ushahidi\Tests\Unit\Modules\V2\ImportMock; use Ushahidi\Tests\TestCase; use Mockery as M; diff --git a/tests/Unit/Modules/V2/Mappers/MessageMapperTest.php b/tests/Unit/Modules/V2/Mappers/MessageMapperTest.php index 6f24dbe010..d4b332fa85 100644 --- a/tests/Unit/Modules/V2/Mappers/MessageMapperTest.php +++ b/tests/Unit/Modules/V2/Mappers/MessageMapperTest.php @@ -6,7 +6,7 @@ use Ushahidi\Modules\V2\Contracts\ImportMappingRepository; use Ushahidi\Core\Entity\Message; use Ushahidi\Core\Entity\Contact; -use Ushahidi\Contracts\Repository\Entity\ContactRepository; +use Ushahidi\Core\Entity\ContactRepository; use Ushahidi\Tests\Unit\Modules\V2\ImportMock; use Ushahidi\Tests\TestCase; use Mockery as M; diff --git a/tests/Unit/Modules/V3/Jobs/CombineExportedPostBatchesJobTest.php b/tests/Unit/Modules/V3/Jobs/CombineExportedPostBatchesJobTest.php index b4b733a580..1f04943829 100644 --- a/tests/Unit/Modules/V3/Jobs/CombineExportedPostBatchesJobTest.php +++ b/tests/Unit/Modules/V3/Jobs/CombineExportedPostBatchesJobTest.php @@ -8,8 +8,8 @@ use Ushahidi\Core\Entity\ExportBatch; use Illuminate\Support\Facades\Storage; use Ushahidi\Modules\V3\Jobs\CombineExportedPostBatchesJob; -use Ushahidi\Contracts\Repository\Entity\ExportJobRepository; -use Ushahidi\Contracts\Repository\Entity\ExportBatchRepository; +use Ushahidi\Core\Entity\ExportJobRepository; +use Ushahidi\Core\Entity\ExportBatchRepository; /** * @group api diff --git a/tests/Unit/Modules/V3/Jobs/ExportPostsBatchJobTest.php b/tests/Unit/Modules/V3/Jobs/ExportPostsBatchJobTest.php index be571ca783..6052ec6d4c 100644 --- a/tests/Unit/Modules/V3/Jobs/ExportPostsBatchJobTest.php +++ b/tests/Unit/Modules/V3/Jobs/ExportPostsBatchJobTest.php @@ -6,7 +6,7 @@ use Ushahidi\Core\Usecase\Post\ExportPost; use Ushahidi\Modules\V3\Jobs\ExportPostsBatchJob; use Ushahidi\Modules\V3\Jobs\CombineExportedPostBatchesJob; -use Ushahidi\Contracts\Repository\Entity\ExportJobRepository; +use Ushahidi\Core\Entity\ExportJobRepository; /** * @group api diff --git a/tests/Unit/Modules/V3/Jobs/ExportPostsJobTest.php b/tests/Unit/Modules/V3/Jobs/ExportPostsJobTest.php index 8d704a0594..12a2241dde 100644 --- a/tests/Unit/Modules/V3/Jobs/ExportPostsJobTest.php +++ b/tests/Unit/Modules/V3/Jobs/ExportPostsJobTest.php @@ -7,7 +7,7 @@ use Ushahidi\Modules\V3\Jobs\ExportPostsJob; use Ushahidi\Modules\V3\Jobs\ExportPostsBatchJob; use Ushahidi\Core\Usecase\Export\Job\PostCount; -use Ushahidi\Contracts\Repository\Entity\ExportJobRepository; +use Ushahidi\Core\Entity\ExportJobRepository; /** * @group api diff --git a/tests/Unit/Modules/V3/Listener/CreatePostFromMessageTest.php b/tests/Unit/Modules/V3/Listener/CreatePostFromMessageTest.php index 5548a2ee45..15046a8803 100644 --- a/tests/Unit/Modules/V3/Listener/CreatePostFromMessageTest.php +++ b/tests/Unit/Modules/V3/Listener/CreatePostFromMessageTest.php @@ -4,9 +4,9 @@ use Mockery as M; use Ushahidi\Tests\TestCase; -use Ushahidi\Contracts\Repository\Entity\MessageRepository; -use Ushahidi\Contracts\Repository\Entity\PostRepository; -use Ushahidi\Contracts\Repository\Entity\TargetedSurveyStateRepository; +use Ushahidi\Core\Entity\MessageRepository; +use Ushahidi\Core\Entity\PostRepository; +use Ushahidi\Core\Entity\TargetedSurveyStateRepository; use Ushahidi\Core\Entity\Message; use Ushahidi\Core\Entity\Post; use Ushahidi\Modules\V3\Listener\CreatePostFromMessage; diff --git a/tests/Unit/Modules/V3/Listener/HandleTargetedSurveyResponseTest.php b/tests/Unit/Modules/V3/Listener/HandleTargetedSurveyResponseTest.php index 6a75b940de..4955090590 100644 --- a/tests/Unit/Modules/V3/Listener/HandleTargetedSurveyResponseTest.php +++ b/tests/Unit/Modules/V3/Listener/HandleTargetedSurveyResponseTest.php @@ -3,9 +3,9 @@ use Mockery as M; use Ushahidi\Tests\TestCase; -use Ushahidi\Contracts\Repository\Entity\FormAttributeRepository; -use Ushahidi\Contracts\Repository\Entity\MessageRepository; -use Ushahidi\Contracts\Repository\Entity\TargetedSurveyStateRepository; +use Ushahidi\Core\Entity\FormAttributeRepository; +use Ushahidi\Core\Entity\MessageRepository; +use Ushahidi\Core\Entity\TargetedSurveyStateRepository; use Ushahidi\Core\Entity\FormAttribute; use Ushahidi\Core\Entity\Message; use Ushahidi\Core\Entity\TargetedSurveyState; diff --git a/tests/Unit/Modules/V3/Repository/PostRepositoryTest.php b/tests/Unit/Modules/V3/Repository/PostRepositoryTest.php index a6151ea496..6d468fc904 100644 --- a/tests/Unit/Modules/V3/Repository/PostRepositoryTest.php +++ b/tests/Unit/Modules/V3/Repository/PostRepositoryTest.php @@ -18,11 +18,11 @@ use Ushahidi\Modules\V3\Repository\PostRepository; use Ushahidi\Modules\V3\Repository\Post\ValueFactory; use Ushahidi\Core\Tool\Permissions\PostPermissions; -use Ushahidi\Contracts\Repository\Entity\FormRepository; -use Ushahidi\Contracts\Repository\Entity\ContactRepository; -use Ushahidi\Contracts\Repository\Entity\PostLockRepository; -use Ushahidi\Contracts\Repository\Entity\FormStageRepository; -use Ushahidi\Contracts\Repository\Entity\FormAttributeRepository; +use Ushahidi\Core\Entity\FormRepository; +use Ushahidi\Core\Entity\ContactRepository; +use Ushahidi\Core\Entity\PostLockRepository; +use Ushahidi\Core\Entity\FormStageRepository; +use Ushahidi\Core\Entity\FormAttributeRepository; /** * @backupGlobals disabled diff --git a/tests/Unit/Modules/V3/Validator/Role/UpdateTest.php b/tests/Unit/Modules/V3/Validator/Role/UpdateTest.php index 79a2ce01f3..9344a0e64b 100644 --- a/tests/Unit/Modules/V3/Validator/Role/UpdateTest.php +++ b/tests/Unit/Modules/V3/Validator/Role/UpdateTest.php @@ -15,7 +15,7 @@ use Ushahidi\Tests\TestCase; use Kohana\Validation\Validation; use Ushahidi\Modules\V3\Validator\Role\Update; -use Ushahidi\Contracts\Repository\Entity\PermissionRepository; +use Ushahidi\Core\Entity\PermissionRepository; /** * @backupGlobals disabled diff --git a/tests/Unit/Multisite/SiteTest.php b/tests/Unit/Multisite/SiteTest.php index 6f275db205..a1e5f4da2d 100644 --- a/tests/Unit/Multisite/SiteTest.php +++ b/tests/Unit/Multisite/SiteTest.php @@ -16,7 +16,7 @@ // use Illuminate\Support\Facades\Mail; use Ushahidi\Multisite\Site; use Ushahidi\Core\Entity\Config; -use Ushahidi\Contracts\Repository\Entity\ConfigRepository; +use Ushahidi\Core\Entity\ConfigRepository; /** * @backupGlobals disabled diff --git a/tests/spec/Core/Tool/DateSpec.php b/tests/spec/Core/Tool/DateSpec.php index f47d4b1eb4..f5e98a6667 100644 --- a/tests/spec/Core/Tool/DateSpec.php +++ b/tests/spec/Core/Tool/DateSpec.php @@ -3,7 +3,7 @@ use PhpSpec\ObjectBehavior; use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Repository\Entity\ConfigRepository; +use Ushahidi\Core\Entity\ConfigRepository; use Ushahidi\Core\Tool\Date; class DateSpec extends ObjectBehavior diff --git a/tests/spec/Core/Usecase/Message/ReceiveMessageSpec.php b/tests/spec/Core/Usecase/Message/ReceiveMessageSpec.php index 31901f6f2f..1ec9eaf6d7 100644 --- a/tests/spec/Core/Usecase/Message/ReceiveMessageSpec.php +++ b/tests/spec/Core/Usecase/Message/ReceiveMessageSpec.php @@ -10,7 +10,7 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\Formatter; use Ushahidi\Contracts\Repository\CreateRepository; -use Ushahidi\Contracts\Repository\Entity\ContactRepository; +use Ushahidi\Core\Entity\ContactRepository; use Ushahidi\Contracts\Validator; use Ushahidi\Core\Entity\Contact; use Ushahidi\Core\Exception\ValidatorException; diff --git a/tests/spec/Core/Usecase/User/LoginUserSpec.php b/tests/spec/Core/Usecase/User/LoginUserSpec.php index fc27dd1132..fe2c308d28 100644 --- a/tests/spec/Core/Usecase/User/LoginUserSpec.php +++ b/tests/spec/Core/Usecase/User/LoginUserSpec.php @@ -7,7 +7,7 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\Formatter; use Ushahidi\Contracts\RateLimiter; -use Ushahidi\Contracts\Repository\Entity\UserRepository; +use Ushahidi\Core\Entity\UserRepository; use Ushahidi\Contracts\Repository\ReadRepository; use Ushahidi\Contracts\PasswordAuthenticator; From 9f8444e0e1301f32c1c8f5fe07b334dd4361c74f Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Tue, 28 Feb 2023 17:18:39 +0100 Subject: [PATCH 05/75] chore: fix lint --- .../Core/Extension/ExtendableTrait.php | 23 +++++++------------ .../Core/Extension/ExtensionTrait.php | 3 +-- tests/Unit/Core/Extension/ExtendableTest.php | 2 +- 3 files changed, 10 insertions(+), 18 deletions(-) diff --git a/src/Ushahidi/Core/Extension/ExtendableTrait.php b/src/Ushahidi/Core/Extension/ExtendableTrait.php index 8bdc2ee466..193b6bc044 100644 --- a/src/Ushahidi/Core/Extension/ExtendableTrait.php +++ b/src/Ushahidi/Core/Extension/ExtendableTrait.php @@ -90,8 +90,7 @@ public function extendableConstruct() public static function extendableExtendCallback($callback) { $class = get_called_class(); - if ( - !isset(self::$extendableCallbacks[$class]) || + if (!isset(self::$extendableCallbacks[$class]) || !is_array(self::$extendableCallbacks[$class]) ) { self::$extendableCallbacks[$class] = []; @@ -152,8 +151,7 @@ protected function extensionExtractMethods($extensionName, $extensionObject) $extensionMethods = get_class_methods($extensionName); foreach ($extensionMethods as $methodName) { - if ( - $methodName === '__construct' || + if ($methodName === '__construct' || $extensionObject->extensionIsHiddenMethod($methodName) ) { continue; @@ -171,8 +169,7 @@ protected function extensionExtractMethods($extensionName, $extensionObject) */ public function addDynamicMethod($dynamicName, $method, $extension = null) { - if ( - is_string($method) && + if (is_string($method) && $extension && ($extensionObj = $this->getClassExtension($extension)) ) { @@ -317,8 +314,7 @@ public function getClassExtension($name) public function asExtension($shortName) { foreach ($this->extensionData['extensions'] as $class => $obj) { - if ( - preg_match('@\\\\([\w]+)$@', $class, $matches) && + if (preg_match('@\\\\([\w]+)$@', $class, $matches) && $matches[1] === $shortName ) { return $obj; @@ -402,8 +398,7 @@ public function propertyExists($name) } foreach ($this->extensionData['extensions'] as $extensionObject) { - if ( - property_exists($extensionObject, $name) && + if (property_exists($extensionObject, $name) && $this->extendableIsAccessible($extensionObject, $name) ) { return true; @@ -435,8 +430,7 @@ protected function extendableIsAccessible($class, $propertyName) public function extendableGet($name) { foreach ($this->extensionData['extensions'] as $extensionObject) { - if ( - property_exists($extensionObject, $name) && + if (property_exists($extensionObject, $name) && $this->extendableIsAccessible($extensionObject, $name) ) { return $extensionObject->{$name}; @@ -541,8 +535,7 @@ public static function extendableCallStatic($name, $params = null) $class = new ReflectionClass($className); $defaultProperties = $class->getDefaultProperties(); - if ( - array_key_exists('implement', $defaultProperties) && + if (array_key_exists('implement', $defaultProperties) && ($implement = $defaultProperties['implement']) ) { /* @@ -573,7 +566,7 @@ public static function extendableCallStatic($name, $params = null) if (method_exists($extension, $name) && is_callable([$extension, $name])) { $extension::$extendableStaticCalledClass = $className; - $result = forward_static_call_array(array($extension, $name), $params); + $result = forward_static_call_array([$extension, $name], $params); $extension::$extendableStaticCalledClass = null; return $result; } diff --git a/src/Ushahidi/Core/Extension/ExtensionTrait.php b/src/Ushahidi/Core/Extension/ExtensionTrait.php index 9c89312572..b16e32f408 100644 --- a/src/Ushahidi/Core/Extension/ExtensionTrait.php +++ b/src/Ushahidi/Core/Extension/ExtensionTrait.php @@ -47,8 +47,7 @@ public function extensionApplyInitCallbacks() public static function extensionExtendCallback($callback) { $class = get_called_class(); - if ( - !isset(self::$extensionCallbacks[$class]) || + if (!isset(self::$extensionCallbacks[$class]) || !is_array(self::$extensionCallbacks[$class]) ) { self::$extensionCallbacks[$class] = []; diff --git a/tests/Unit/Core/Extension/ExtendableTest.php b/tests/Unit/Core/Extension/ExtendableTest.php index 3fab5606ed..3328357257 100644 --- a/tests/Unit/Core/Extension/ExtendableTest.php +++ b/tests/Unit/Core/Extension/ExtendableTest.php @@ -57,7 +57,7 @@ public function testDynamicPropertyOnClass() public function testDynamicallyImplementingClass() { - ExtendableTestExampleImplementableClass::extend(function($obj) { + ExtendableTestExampleImplementableClass::extend(function ($obj) { $obj->implementClassWith('ExtendableTestExampleBehaviorClass2'); $obj->implementClassWith('ExtendableTestExampleBehaviorClass2'); $obj->implementClassWith('ExtendableTestExampleBehaviorClass2'); From 4609f019fa4b9fd81089d1408cc1fd619e9a2cf4 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Tue, 28 Feb 2023 17:26:12 +0100 Subject: [PATCH 06/75] chore: update extension readme --- src/Ushahidi/Core/Extension/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Ushahidi/Core/Extension/README.md b/src/Ushahidi/Core/Extension/README.md index 9f0fe5f443..1f3606631a 100644 --- a/src/Ushahidi/Core/Extension/README.md +++ b/src/Ushahidi/Core/Extension/README.md @@ -1,4 +1,4 @@ -## Rain Extensions +## Extensions Adds the ability for classes to have *private traits*, also known as Behaviors. These are similar to native PHP Traits except they have some distinct benefits: @@ -20,8 +20,8 @@ A behavior is used in a similar fashion: class MyClass extends \Ushahidi\Core\Extension\Extendable { public $implement = [ - 'October.Rain.UtilityFunctions', - 'October.Rain.DeferredBinding', + 'Ushahidi.Core.UtilityFunctions', + 'Ushahidi.Core.DeferredBinding', ]; } From 11126c8f49f27e5978ef39eb61fa292134a73e32 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Wed, 1 Mar 2023 04:18:15 +0100 Subject: [PATCH 07/75] chore: some modifications to the extension lib --- src/Ushahidi/Core/Extension/Extendable.php | 5 +- .../Core/Extension/ExtendableTrait.php | 46 +++++++++---------- src/Ushahidi/Core/Extension/ExtensionBase.php | 1 - .../Core/Extension/ExtensionTrait.php | 1 - src/Ushahidi/Core/Extension/README.md | 14 +++--- tests/Unit/Core/Extension/ExtendableTest.php | 16 +++---- 6 files changed, 39 insertions(+), 44 deletions(-) diff --git a/src/Ushahidi/Core/Extension/Extendable.php b/src/Ushahidi/Core/Extension/Extendable.php index e175488c83..16ae29f9bd 100644 --- a/src/Ushahidi/Core/Extension/Extendable.php +++ b/src/Ushahidi/Core/Extension/Extendable.php @@ -12,16 +12,15 @@ * * See the `ExtensionBase` class for creating extension classes. * - * @package ushahidi\extension */ class Extendable { use ExtendableTrait; /** - * @var array Extensions implemented by this class. + * @var array Behaviours used by this class. */ - public $implement = []; + public $behaviors = []; /** * Constructor diff --git a/src/Ushahidi/Core/Extension/ExtendableTrait.php b/src/Ushahidi/Core/Extension/ExtendableTrait.php index 193b6bc044..b567ac46b1 100644 --- a/src/Ushahidi/Core/Extension/ExtendableTrait.php +++ b/src/Ushahidi/Core/Extension/ExtendableTrait.php @@ -11,10 +11,8 @@ /** * ExtendableTrait trait is used when access to the underlying base class * is not available, such as classes that belong to the foundation - * framework (Laravel). It is currently used by the Controller and - * Model classes. + * framework (Laravel). * - * @package ushahidi\extension * @see \Ushahidi\Core\Extension\Extendable */ trait ExtendableTrait @@ -67,7 +65,7 @@ public function extendableConstruct() /* * Apply extensions */ - foreach ($this->extensionExtractImplements() as $useClass) { + foreach ($this->extensionExtractBehaviors() as $useClass) { /* * Soft implement */ @@ -108,20 +106,20 @@ public static function clearExtendedClasses() } /** - * extensionExtractImplements will return classes to implement. + * extensionExtractBehaviors will return classes to implement. */ - protected function extensionExtractImplements(): array + protected function extensionExtractBehaviors(): array { - if (!$this->implement) { + if (!$this->behaviors) { return []; } - if (is_string($this->implement)) { - $uses = explode(',', $this->implement); - } elseif (is_array($this->implement)) { - $uses = $this->implement; + if (is_string($this->behaviors)) { + $uses = explode(',', $this->behaviors); + } elseif (is_array($this->behaviors)) { + $uses = $this->behaviors; } else { - throw new Exception(sprintf('Class %s contains an invalid $implement value', get_class($this))); + throw new Exception(sprintf('Class %s contains an invalid $Behaviors value', get_class($this))); } foreach ($uses as &$use) { @@ -143,7 +141,7 @@ protected function extensionExtractMethods($extensionName, $extensionObject) if (!method_exists($extensionObject, 'extensionIsHiddenMethod')) { throw new Exception( sprintf( - 'Extension %s should inherit Ushahidi\Core\Extension\ExtensionBase or implement Ushahidi\Core\Extension\ExtensionTrait.', + 'Extension %s should inherit Ushahidi\Core\Extension\ExtensionBase or $this->behaviors Ushahidi\Core\Extension\ExtensionTrait.', $extensionName ) ); @@ -255,11 +253,11 @@ public function implementClassWith($extensionName) { $extensionName = str_replace('.', '\\', trim($extensionName)); - if (in_array($extensionName, $this->extensionExtractImplements())) { + if (in_array($extensionName, $this->extensionExtractBehaviors())) { return; } - $this->implement[] = $extensionName; + $this->behaviors[] = $extensionName; } /** @@ -425,7 +423,7 @@ protected function extendableIsAccessible($class, $propertyName) /** * extendableGet magic method for `__get()` * @param string $name - * @return string + * @return string|void */ public function extendableGet($name) { @@ -447,7 +445,7 @@ public function extendableGet($name) * extendableSet magic method for `__set()` * @param string $name * @param string $value - * @return string + * @return string|void */ public function extendableSet($name, $value) { @@ -535,18 +533,18 @@ public static function extendableCallStatic($name, $params = null) $class = new ReflectionClass($className); $defaultProperties = $class->getDefaultProperties(); - if (array_key_exists('implement', $defaultProperties) && - ($implement = $defaultProperties['implement']) + if (array_key_exists('Behaviors', $defaultProperties) && + ($Behaviors = $defaultProperties['Behaviors']) ) { /* * Apply extensions */ - if (is_string($implement)) { - $uses = explode(',', $implement); - } elseif (is_array($implement)) { - $uses = $implement; + if (is_string($Behaviors)) { + $uses = explode(',', $Behaviors); + } elseif (is_array($Behaviors)) { + $uses = $Behaviors; } else { - throw new Exception(sprintf('Class %s contains an invalid $implement value', $className)); + throw new Exception(sprintf('Class %s contains an invalid $Behaviors value', $className)); } foreach ($uses as $use) { diff --git a/src/Ushahidi/Core/Extension/ExtensionBase.php b/src/Ushahidi/Core/Extension/ExtensionBase.php index f78e7bb9c5..ce54437e31 100644 --- a/src/Ushahidi/Core/Extension/ExtensionBase.php +++ b/src/Ushahidi/Core/Extension/ExtensionBase.php @@ -4,7 +4,6 @@ /** * ExtensionBase allows for "private traits" * - * @package ushahidi\extension */ class ExtensionBase { diff --git a/src/Ushahidi/Core/Extension/ExtensionTrait.php b/src/Ushahidi/Core/Extension/ExtensionTrait.php index b16e32f408..9742723d68 100644 --- a/src/Ushahidi/Core/Extension/ExtensionTrait.php +++ b/src/Ushahidi/Core/Extension/ExtensionTrait.php @@ -4,7 +4,6 @@ /** * ExtensionTrait allows for "private traits" * - * @package ushahidi\extension * @see Ushahidi\Core\Extension\ExtensionBase */ trait ExtensionTrait diff --git a/src/Ushahidi/Core/Extension/README.md b/src/Ushahidi/Core/Extension/README.md index 1f3606631a..12318b44ed 100644 --- a/src/Ushahidi/Core/Extension/README.md +++ b/src/Ushahidi/Core/Extension/README.md @@ -19,7 +19,7 @@ A behavior is used in a similar fashion: class MyClass extends \Ushahidi\Core\Extension\Extendable { - public $implement = [ + public $behaviors = [ 'Ushahidi.Core.UtilityFunctions', 'Ushahidi.Core.DeferredBinding', ]; @@ -98,7 +98,7 @@ This `Controller` class will implement the `FormController` behavior and then th /** * Implement the FormController behavior */ - public $implement = [ + public $behaviors = [ 'MyNamespace.Behaviors.FormController' ]; @@ -149,19 +149,19 @@ If a behavior class does not exist, like a trait, an *Class not found* error wil class User extends \Ushahidi\Core\Extension\Extendable { - public $implement = ['@RainLab.Translate.Behaviors.TranslatableModel']; + public $behaviors = ['@App.Behaviors.TranslatableModel']; } -If the class name `RainLab\Translate\Behaviors\TranslatableModel` does not exist, no error will be thrown. This is the equivalent of the following code: +If the class name `App\Behaviors\TranslatableModel` does not exist, no error will be thrown. This is the equivalent of the following code: class User extends \Ushahidi\Core\Extension\Extendable { - public $implement = []; + public $behaviors = []; public function __construct() { - if (class_exists('RainLab\Translate\Behaviors\TranslatableModel')) { - $controller->implement[] = 'RainLab.Translate.Behaviors.TranslatableModel'; + if (class_exists('App\Behaviors\TranslatableModel')) { + $controller->behaviors[] = 'App.Behaviors.TranslatableModel'; } parent::__construct(); diff --git a/tests/Unit/Core/Extension/ExtendableTest.php b/tests/Unit/Core/Extension/ExtendableTest.php index 3328357257..3cd5e14832 100644 --- a/tests/Unit/Core/Extension/ExtendableTest.php +++ b/tests/Unit/Core/Extension/ExtendableTest.php @@ -166,7 +166,7 @@ public function testAccessingProtectedStaticMethod() public function testInvalidImplementValue() { $this->expectException(Exception::class); - $this->expectExceptionMessage('Class ExtendableTestInvalidExtendableClass contains an invalid $implement value'); + $this->expectExceptionMessage('Class ExtendableTestInvalidExtendableClass contains an invalid $behaviors value'); $result = new ExtendableTestInvalidExtendableClass; } @@ -299,7 +299,7 @@ public function getFoo() */ class ExtendableTestInvalidExtendableClass extends Extendable { - public $implement = 24; + public $behaviors = 24; public $classAttribute; } @@ -309,7 +309,7 @@ class ExtendableTestInvalidExtendableClass extends Extendable */ class ExtendableTestExampleExtendableClass extends Extendable { - public $implement = ['ExtendableTestExampleBehaviorClass1']; + public $behaviors = ['ExtendableTestExampleBehaviorClass1']; public $classAttribute; @@ -341,7 +341,7 @@ public function getProtectedFooAttribute() */ class ExtendableTestExampleImplementableClass extends Extendable { - public $implement = ['ExtendableTestExampleBehaviorClass1']; + public $behaviors = ['ExtendableTestExampleBehaviorClass1']; } /** @@ -360,7 +360,7 @@ public static function getName() */ class ExtendableTestExampleExtendableSoftImplementFakeClass extends Extendable { - public $implement = ['@RabbleRabbleRabble']; + public $behaviors = ['@RabbleRabbleRabble']; public static function getStatus() { @@ -373,7 +373,7 @@ public static function getStatus() */ class ExtendableTestExampleExtendableSoftImplementRealClass extends Extendable { - public $implement = ['@ExtendableTestExampleBehaviorClass1']; + public $behaviors = ['@ExtendableTestExampleBehaviorClass1']; } /* @@ -381,7 +381,7 @@ class ExtendableTestExampleExtendableSoftImplementRealClass extends Extendable */ class ExtendableTestExampleExtendableSoftImplementComboClass extends Extendable { - public $implement = [ + public $behaviors = [ 'ExtendableTestExampleBehaviorClass1', '@ExtendableTestExampleBehaviorClass2', '@RabbleRabbleRabble' @@ -393,7 +393,7 @@ class ExtendableTestExampleExtendableSoftImplementComboClass extends Extendable */ class ExtendableTestExampleExtendableClassDotNotation extends Extendable { - public $implement = ['ExtendableTest.ExampleBehaviorClass1']; + public $behaviors = ['ExtendableTest.ExampleBehaviorClass1']; public $classAttribute; From 69dd2c5dea6367e56ddfef5f9d0f99c7b97930cd Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Wed, 1 Mar 2023 04:23:49 +0100 Subject: [PATCH 08/75] amend --- src/Ushahidi/Core/Extension/ExtendableTrait.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Ushahidi/Core/Extension/ExtendableTrait.php b/src/Ushahidi/Core/Extension/ExtendableTrait.php index b567ac46b1..049c0721e1 100644 --- a/src/Ushahidi/Core/Extension/ExtendableTrait.php +++ b/src/Ushahidi/Core/Extension/ExtendableTrait.php @@ -119,7 +119,7 @@ protected function extensionExtractBehaviors(): array } elseif (is_array($this->behaviors)) { $uses = $this->behaviors; } else { - throw new Exception(sprintf('Class %s contains an invalid $Behaviors value', get_class($this))); + throw new Exception(sprintf('Class %s contains an invalid $behaviors value', get_class($this))); } foreach ($uses as &$use) { @@ -533,18 +533,18 @@ public static function extendableCallStatic($name, $params = null) $class = new ReflectionClass($className); $defaultProperties = $class->getDefaultProperties(); - if (array_key_exists('Behaviors', $defaultProperties) && - ($Behaviors = $defaultProperties['Behaviors']) + if (array_key_exists('behaviors', $defaultProperties) && + ($behaviors = $defaultProperties['behaviors']) ) { /* * Apply extensions */ - if (is_string($Behaviors)) { - $uses = explode(',', $Behaviors); - } elseif (is_array($Behaviors)) { - $uses = $Behaviors; + if (is_string($behaviors)) { + $uses = explode(',', $behaviors); + } elseif (is_array($behaviors)) { + $uses = $behaviors; } else { - throw new Exception(sprintf('Class %s contains an invalid $Behaviors value', $className)); + throw new Exception(sprintf('Class %s contains an invalid $behaviors value', $className)); } foreach ($uses as $use) { From fc87dfe35c53e1b5a86c0cc7f01a9e094fb3b8ca Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Wed, 8 Mar 2023 02:35:35 +0100 Subject: [PATCH 09/75] chore: some minor modifications --- src/Ushahidi/Core/Extension/Extendable.php | 4 ++-- tests/Unit/Core/Extension/ExtensionTest.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Ushahidi/Core/Extension/Extendable.php b/src/Ushahidi/Core/Extension/Extendable.php index 16ae29f9bd..776f2d9121 100644 --- a/src/Ushahidi/Core/Extension/Extendable.php +++ b/src/Ushahidi/Core/Extension/Extendable.php @@ -8,7 +8,7 @@ * * Usage: * - * public $implement = [\Path\To\Some\Namespace\Class::class]; + * protected $behaviors = [\Path\To\Some\Namespace\Class::class]; * * See the `ExtensionBase` class for creating extension classes. * @@ -20,7 +20,7 @@ class Extendable /** * @var array Behaviours used by this class. */ - public $behaviors = []; + protected $behaviors = []; /** * Constructor diff --git a/tests/Unit/Core/Extension/ExtensionTest.php b/tests/Unit/Core/Extension/ExtensionTest.php index afe4d7ca24..645fb289ec 100644 --- a/tests/Unit/Core/Extension/ExtensionTest.php +++ b/tests/Unit/Core/Extension/ExtensionTest.php @@ -25,7 +25,7 @@ public function testExtendingBehavior() */ class ExtensionTestExampleExtendableClass extends Extendable { - public $implement = ['ExtensionTestExampleBehaviorClass1']; + public $behaviors = ['ExtensionTestExampleBehaviorClass1']; } /** From 195aa6513b526748d0383ecb74066038f961e5ee Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Fri, 10 Mar 2023 14:44:47 +0100 Subject: [PATCH 10/75] chore: move interface classes to the repository namespace and update it files they were used --- app/Tools/Session.php | 2 +- src/Ushahidi/Contracts/Repository/CreateRepository.php | 2 +- src/Ushahidi/Contracts/Repository/DeleteRepository.php | 2 +- src/Ushahidi/Contracts/{ => Repository}/EntityCreate.php | 4 +++- .../Contracts/{ => Repository}/EntityCreateMany.php | 6 +++--- src/Ushahidi/Contracts/{ => Repository}/EntityExists.php | 2 +- src/Ushahidi/Contracts/{ => Repository}/EntityGet.php | 5 +++-- src/Ushahidi/Contracts/Repository/ReadRepository.php | 4 ++-- src/Ushahidi/Contracts/Repository/UpdateRepository.php | 2 +- src/Ushahidi/Core/Concerns/EnsureUserEntity.php | 2 +- src/Ushahidi/Core/Entity/ApiKeyRepository.php | 2 +- src/Ushahidi/Core/Entity/CSVRepository.php | 4 ++-- src/Ushahidi/Core/Entity/ContactRepository.php | 8 ++++---- src/Ushahidi/Core/Entity/CountryCodeRepository.php | 2 +- src/Ushahidi/Core/Entity/DataProviderRepository.php | 2 +- src/Ushahidi/Core/Entity/ExportJobRepository.php | 2 +- src/Ushahidi/Core/Entity/FormAttributeRepository.php | 8 ++++---- src/Ushahidi/Core/Entity/FormContactRepository.php | 4 ++-- src/Ushahidi/Core/Entity/FormRepository.php | 8 ++++---- src/Ushahidi/Core/Entity/FormRoleRepository.php | 4 ++-- src/Ushahidi/Core/Entity/FormStageRepository.php | 6 +++--- src/Ushahidi/Core/Entity/FormStatsRepository.php | 4 ++-- src/Ushahidi/Core/Entity/HXL/HXLAttributeRepository.php | 2 +- .../HXL/HXLFormAttributeHXLAttributeTagRepository.php | 2 +- src/Ushahidi/Core/Entity/HXL/HXLLicenseRepository.php | 2 +- src/Ushahidi/Core/Entity/HXL/HXLMetadataRepository.php | 2 +- src/Ushahidi/Core/Entity/HXL/HXLTagRepository.php | 2 +- src/Ushahidi/Core/Entity/MediaRepository.php | 4 ++-- src/Ushahidi/Core/Entity/MessageRepository.php | 8 ++++---- src/Ushahidi/Core/Entity/NotificationQueueRepository.php | 4 ++-- src/Ushahidi/Core/Entity/NotificationRepository.php | 4 ++-- src/Ushahidi/Core/Entity/PermissionRepository.php | 4 ++-- src/Ushahidi/Core/Entity/PostLockRepository.php | 2 +- src/Ushahidi/Core/Entity/PostRepository.php | 4 ++-- src/Ushahidi/Core/Entity/RoleRepository.php | 4 ++-- src/Ushahidi/Core/Entity/SetRepository.php | 4 ++-- src/Ushahidi/Core/Entity/TagRepository.php | 8 ++++---- .../Core/Entity/TargetedSurveyStateRepository.php | 4 ++-- src/Ushahidi/Core/Entity/TosRepository.php | 6 +++--- src/Ushahidi/Core/Entity/UserRepository.php | 4 ++-- src/Ushahidi/Core/Entity/UserSettingRepository.php | 4 ++-- src/Ushahidi/Core/Entity/WebhookJobRepository.php | 4 ++-- src/Ushahidi/Core/Entity/WebhookRepository.php | 4 ++-- src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php | 2 +- src/Ushahidi/Core/Tool/Date.php | 2 +- src/Ushahidi/Modules/V2/Importer.php | 2 +- src/Ushahidi/Modules/V3/Repository/MessageRepository.php | 2 +- tests/Unit/Modules/V2/ImporterTest.php | 2 +- 48 files changed, 90 insertions(+), 87 deletions(-) rename src/Ushahidi/Contracts/{ => Repository}/EntityCreate.php (86%) rename src/Ushahidi/Contracts/{ => Repository}/EntityCreateMany.php (72%) rename src/Ushahidi/Contracts/{ => Repository}/EntityExists.php (91%) rename src/Ushahidi/Contracts/{ => Repository}/EntityGet.php (85%) diff --git a/app/Tools/Session.php b/app/Tools/Session.php index 183aabe72d..701a32ca8a 100644 --- a/app/Tools/Session.php +++ b/app/Tools/Session.php @@ -11,7 +11,7 @@ namespace App\Tools; use Illuminate\Support\Facades\Auth; -use Ushahidi\Contracts\EntityGet; +use Ushahidi\Contracts\Repository\EntityGet; use Ushahidi\Contracts\Session as SessionContract; class Session implements SessionContract diff --git a/src/Ushahidi/Contracts/Repository/CreateRepository.php b/src/Ushahidi/Contracts/Repository/CreateRepository.php index 181d28865c..f454ec308b 100644 --- a/src/Ushahidi/Contracts/Repository/CreateRepository.php +++ b/src/Ushahidi/Contracts/Repository/CreateRepository.php @@ -12,7 +12,7 @@ namespace Ushahidi\Contracts\Repository; use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\EntityGet; +use Ushahidi\Contracts\Repository\EntityGet; interface CreateRepository extends EntityGet { diff --git a/src/Ushahidi/Contracts/Repository/DeleteRepository.php b/src/Ushahidi/Contracts/Repository/DeleteRepository.php index 9013f05879..b83fc45028 100644 --- a/src/Ushahidi/Contracts/Repository/DeleteRepository.php +++ b/src/Ushahidi/Contracts/Repository/DeleteRepository.php @@ -12,7 +12,7 @@ namespace Ushahidi\Contracts\Repository; use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\EntityGet; +use Ushahidi\Contracts\Repository\EntityGet; interface DeleteRepository extends EntityGet { diff --git a/src/Ushahidi/Contracts/EntityCreate.php b/src/Ushahidi/Contracts/Repository/EntityCreate.php similarity index 86% rename from src/Ushahidi/Contracts/EntityCreate.php rename to src/Ushahidi/Contracts/Repository/EntityCreate.php index 5dc13e9a58..6e81310105 100644 --- a/src/Ushahidi/Contracts/EntityCreate.php +++ b/src/Ushahidi/Contracts/Repository/EntityCreate.php @@ -10,7 +10,9 @@ * GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts; +namespace Ushahidi\Contracts\Repository; + +use Ushahidi\Contracts\Entity; interface EntityCreate { diff --git a/src/Ushahidi/Contracts/EntityCreateMany.php b/src/Ushahidi/Contracts/Repository/EntityCreateMany.php similarity index 72% rename from src/Ushahidi/Contracts/EntityCreateMany.php rename to src/Ushahidi/Contracts/Repository/EntityCreateMany.php index 25aa46badd..7c8604e6a2 100644 --- a/src/Ushahidi/Contracts/EntityCreateMany.php +++ b/src/Ushahidi/Contracts/Repository/EntityCreateMany.php @@ -10,15 +10,15 @@ * GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts; +namespace Ushahidi\Contracts\Repository; use Illuminate\Support\Collection; interface EntityCreateMany { /** - * @param \Illuminate\Support\Collection $collection - * @return array|\Illuminate\Support\Collection ids of rows created + * @param \Illuminate\Support\Collection<\Ushahidi\Contracts\Entity> $collection + * @return array ids of rows created */ public function createMany(Collection $collection); } diff --git a/src/Ushahidi/Contracts/EntityExists.php b/src/Ushahidi/Contracts/Repository/EntityExists.php similarity index 91% rename from src/Ushahidi/Contracts/EntityExists.php rename to src/Ushahidi/Contracts/Repository/EntityExists.php index 2804141d68..3e26b3fe2f 100644 --- a/src/Ushahidi/Contracts/EntityExists.php +++ b/src/Ushahidi/Contracts/Repository/EntityExists.php @@ -10,7 +10,7 @@ * GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts; +namespace Ushahidi\Contracts\Repository; interface EntityExists { diff --git a/src/Ushahidi/Contracts/EntityGet.php b/src/Ushahidi/Contracts/Repository/EntityGet.php similarity index 85% rename from src/Ushahidi/Contracts/EntityGet.php rename to src/Ushahidi/Contracts/Repository/EntityGet.php index 8c17d82a67..2ed3e41a92 100644 --- a/src/Ushahidi/Contracts/EntityGet.php +++ b/src/Ushahidi/Contracts/Repository/EntityGet.php @@ -10,7 +10,7 @@ * GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts; +namespace Ushahidi\Contracts\Repository; interface EntityGet { @@ -23,7 +23,8 @@ interface EntityGet public function get($id); /** - * Converts an array of entity data into an object. + * Converts an array of data into an entity object. + * * @param array $data * @return \Ushahidi\Contracts\Entity */ diff --git a/src/Ushahidi/Contracts/Repository/ReadRepository.php b/src/Ushahidi/Contracts/Repository/ReadRepository.php index a4fe40fd21..d15e4ace61 100644 --- a/src/Ushahidi/Contracts/Repository/ReadRepository.php +++ b/src/Ushahidi/Contracts/Repository/ReadRepository.php @@ -11,8 +11,8 @@ namespace Ushahidi\Contracts\Repository; -use Ushahidi\Contracts\EntityExists; -use Ushahidi\Contracts\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; +use Ushahidi\Contracts\Repository\EntityGet; interface ReadRepository extends EntityGet, EntityExists { diff --git a/src/Ushahidi/Contracts/Repository/UpdateRepository.php b/src/Ushahidi/Contracts/Repository/UpdateRepository.php index 3099992165..428dce6589 100644 --- a/src/Ushahidi/Contracts/Repository/UpdateRepository.php +++ b/src/Ushahidi/Contracts/Repository/UpdateRepository.php @@ -12,7 +12,7 @@ namespace Ushahidi\Contracts\Repository; use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\EntityGet; +use Ushahidi\Contracts\Repository\EntityGet; interface UpdateRepository extends EntityGet { diff --git a/src/Ushahidi/Core/Concerns/EnsureUserEntity.php b/src/Ushahidi/Core/Concerns/EnsureUserEntity.php index d2f1f2bb31..007cef413b 100644 --- a/src/Ushahidi/Core/Concerns/EnsureUserEntity.php +++ b/src/Ushahidi/Core/Concerns/EnsureUserEntity.php @@ -17,7 +17,7 @@ namespace Ushahidi\Core\Concerns; -use Ushahidi\Contracts\EntityGet; +use Ushahidi\Contracts\Repository\EntityGet; use Ushahidi\Contracts\Entity; trait EnsureUserEntity diff --git a/src/Ushahidi/Core/Entity/ApiKeyRepository.php b/src/Ushahidi/Core/Entity/ApiKeyRepository.php index 173e62d2a1..63a5ad34c7 100644 --- a/src/Ushahidi/Core/Entity/ApiKeyRepository.php +++ b/src/Ushahidi/Core/Entity/ApiKeyRepository.php @@ -11,7 +11,7 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityExists; +use Ushahidi\Contracts\Repository\EntityExists; use Ushahidi\Contracts\Repository\CreateRepository; interface ApiKeyRepository extends CreateRepository, EntityExists diff --git a/src/Ushahidi/Core/Entity/CSVRepository.php b/src/Ushahidi/Core/Entity/CSVRepository.php index 4cd729d153..120a65393e 100644 --- a/src/Ushahidi/Core/Entity/CSVRepository.php +++ b/src/Ushahidi/Core/Entity/CSVRepository.php @@ -11,8 +11,8 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityGet; -use Ushahidi\Contracts\EntityExists; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; interface CSVRepository extends EntityGet, diff --git a/src/Ushahidi/Core/Entity/ContactRepository.php b/src/Ushahidi/Core/Entity/ContactRepository.php index d9da053e18..78fc22ea1d 100644 --- a/src/Ushahidi/Core/Entity/ContactRepository.php +++ b/src/Ushahidi/Core/Entity/ContactRepository.php @@ -11,10 +11,10 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityCreate; -use Ushahidi\Contracts\EntityCreateMany; -use Ushahidi\Contracts\EntityGet; -use Ushahidi\Contracts\EntityExists; +use Ushahidi\Contracts\Repository\EntityCreate; +use Ushahidi\Contracts\Repository\EntityCreateMany; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; use Ushahidi\Contracts\Repository\CreateRepository; interface ContactRepository extends diff --git a/src/Ushahidi/Core/Entity/CountryCodeRepository.php b/src/Ushahidi/Core/Entity/CountryCodeRepository.php index acd3a8ffdc..b4df9ed2cc 100644 --- a/src/Ushahidi/Core/Entity/CountryCodeRepository.php +++ b/src/Ushahidi/Core/Entity/CountryCodeRepository.php @@ -11,7 +11,7 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityGet; +use Ushahidi\Contracts\Repository\EntityGet; interface CountryCodeRepository extends EntityGet diff --git a/src/Ushahidi/Core/Entity/DataProviderRepository.php b/src/Ushahidi/Core/Entity/DataProviderRepository.php index 793ba5b0ff..fc5b5691d3 100644 --- a/src/Ushahidi/Core/Entity/DataProviderRepository.php +++ b/src/Ushahidi/Core/Entity/DataProviderRepository.php @@ -11,7 +11,7 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityGet; +use Ushahidi\Contracts\Repository\EntityGet; interface DataProviderRepository extends EntityGet diff --git a/src/Ushahidi/Core/Entity/ExportJobRepository.php b/src/Ushahidi/Core/Entity/ExportJobRepository.php index 64966687a3..8d4e45cf1e 100644 --- a/src/Ushahidi/Core/Entity/ExportJobRepository.php +++ b/src/Ushahidi/Core/Entity/ExportJobRepository.php @@ -11,7 +11,7 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityExists; +use Ushahidi\Contracts\Repository\EntityExists; use Ushahidi\Contracts\Repository\ReadRepository; use Ushahidi\Contracts\Repository\CreateRepository; use Ushahidi\Contracts\Repository\UpdateRepository; diff --git a/src/Ushahidi/Core/Entity/FormAttributeRepository.php b/src/Ushahidi/Core/Entity/FormAttributeRepository.php index 85bdedcf1b..903b758b63 100644 --- a/src/Ushahidi/Core/Entity/FormAttributeRepository.php +++ b/src/Ushahidi/Core/Entity/FormAttributeRepository.php @@ -13,10 +13,10 @@ namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\EntityGet; -use Ushahidi\Contracts\EntityCreate; -use Ushahidi\Contracts\EntityExists; -use Ushahidi\Contracts\EntityCreateMany; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityCreate; +use Ushahidi\Contracts\Repository\EntityExists; +use Ushahidi\Contracts\Repository\EntityCreateMany; interface FormAttributeRepository extends EntityGet, diff --git a/src/Ushahidi/Core/Entity/FormContactRepository.php b/src/Ushahidi/Core/Entity/FormContactRepository.php index d07229022e..f81ccc6dd4 100644 --- a/src/Ushahidi/Core/Entity/FormContactRepository.php +++ b/src/Ushahidi/Core/Entity/FormContactRepository.php @@ -11,8 +11,8 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityGet; -use Ushahidi\Contracts\EntityExists; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; interface FormContactRepository extends EntityGet, diff --git a/src/Ushahidi/Core/Entity/FormRepository.php b/src/Ushahidi/Core/Entity/FormRepository.php index c60cdf5d8b..4e9f225663 100644 --- a/src/Ushahidi/Core/Entity/FormRepository.php +++ b/src/Ushahidi/Core/Entity/FormRepository.php @@ -11,10 +11,10 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityCreate; -use Ushahidi\Contracts\EntityCreateMany; -use Ushahidi\Contracts\EntityGet; -use Ushahidi\Contracts\EntityExists; +use Ushahidi\Contracts\Repository\EntityCreate; +use Ushahidi\Contracts\Repository\EntityCreateMany; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; interface FormRepository extends EntityGet, diff --git a/src/Ushahidi/Core/Entity/FormRoleRepository.php b/src/Ushahidi/Core/Entity/FormRoleRepository.php index d0628615fc..aaefee0f42 100644 --- a/src/Ushahidi/Core/Entity/FormRoleRepository.php +++ b/src/Ushahidi/Core/Entity/FormRoleRepository.php @@ -11,8 +11,8 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityGet; -use Ushahidi\Contracts\EntityExists; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; interface FormRoleRepository extends EntityGet, diff --git a/src/Ushahidi/Core/Entity/FormStageRepository.php b/src/Ushahidi/Core/Entity/FormStageRepository.php index 79b560e4d4..f25f463dba 100644 --- a/src/Ushahidi/Core/Entity/FormStageRepository.php +++ b/src/Ushahidi/Core/Entity/FormStageRepository.php @@ -11,9 +11,9 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityCreate; -use Ushahidi\Contracts\EntityGet; -use Ushahidi\Contracts\EntityExists; +use Ushahidi\Contracts\Repository\EntityCreate; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; interface FormStageRepository extends EntityGet, diff --git a/src/Ushahidi/Core/Entity/FormStatsRepository.php b/src/Ushahidi/Core/Entity/FormStatsRepository.php index 9b7b8e309d..79fc2ba417 100644 --- a/src/Ushahidi/Core/Entity/FormStatsRepository.php +++ b/src/Ushahidi/Core/Entity/FormStatsRepository.php @@ -11,8 +11,8 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityGet; -use Ushahidi\Contracts\EntityExists; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; interface FormStatsRepository extends EntityGet, diff --git a/src/Ushahidi/Core/Entity/HXL/HXLAttributeRepository.php b/src/Ushahidi/Core/Entity/HXL/HXLAttributeRepository.php index 9de95c2e57..1696e07cda 100644 --- a/src/Ushahidi/Core/Entity/HXL/HXLAttributeRepository.php +++ b/src/Ushahidi/Core/Entity/HXL/HXLAttributeRepository.php @@ -11,7 +11,7 @@ namespace Ushahidi\Core\Entity\HXL; -use Ushahidi\Contracts\EntityGet; +use Ushahidi\Contracts\Repository\EntityGet; interface HXLAttributeRepository extends EntityGet diff --git a/src/Ushahidi/Core/Entity/HXL/HXLFormAttributeHXLAttributeTagRepository.php b/src/Ushahidi/Core/Entity/HXL/HXLFormAttributeHXLAttributeTagRepository.php index a9116329fe..ca1b8ab0f7 100644 --- a/src/Ushahidi/Core/Entity/HXL/HXLFormAttributeHXLAttributeTagRepository.php +++ b/src/Ushahidi/Core/Entity/HXL/HXLFormAttributeHXLAttributeTagRepository.php @@ -11,7 +11,7 @@ namespace Ushahidi\Core\Entity\HXL; -use Ushahidi\Contracts\EntityGet; +use Ushahidi\Contracts\Repository\EntityGet; interface HXLFormAttributeHXLAttributeTagRepository extends EntityGet diff --git a/src/Ushahidi/Core/Entity/HXL/HXLLicenseRepository.php b/src/Ushahidi/Core/Entity/HXL/HXLLicenseRepository.php index 0476454109..d0ffdd20b7 100644 --- a/src/Ushahidi/Core/Entity/HXL/HXLLicenseRepository.php +++ b/src/Ushahidi/Core/Entity/HXL/HXLLicenseRepository.php @@ -11,7 +11,7 @@ namespace Ushahidi\Core\Entity\HXL; -use Ushahidi\Contracts\EntityGet; +use Ushahidi\Contracts\Repository\EntityGet; use Ushahidi\Contracts\Repository\ReadRepository; use Ushahidi\Contracts\Repository\SearchRepository; diff --git a/src/Ushahidi/Core/Entity/HXL/HXLMetadataRepository.php b/src/Ushahidi/Core/Entity/HXL/HXLMetadataRepository.php index 34b7aa9379..be0e61e918 100644 --- a/src/Ushahidi/Core/Entity/HXL/HXLMetadataRepository.php +++ b/src/Ushahidi/Core/Entity/HXL/HXLMetadataRepository.php @@ -11,7 +11,7 @@ namespace Ushahidi\Core\Entity\HXL; -use Ushahidi\Contracts\EntityGet; +use Ushahidi\Contracts\Repository\EntityGet; use Ushahidi\Contracts\Repository\ReadRepository; use Ushahidi\Contracts\Repository\SearchRepository; diff --git a/src/Ushahidi/Core/Entity/HXL/HXLTagRepository.php b/src/Ushahidi/Core/Entity/HXL/HXLTagRepository.php index d0dda82954..5d9312359e 100644 --- a/src/Ushahidi/Core/Entity/HXL/HXLTagRepository.php +++ b/src/Ushahidi/Core/Entity/HXL/HXLTagRepository.php @@ -11,7 +11,7 @@ namespace Ushahidi\Core\Entity\HXL; -use Ushahidi\Contracts\EntityGet; +use Ushahidi\Contracts\Repository\EntityGet; interface HXLTagRepository extends EntityGet diff --git a/src/Ushahidi/Core/Entity/MediaRepository.php b/src/Ushahidi/Core/Entity/MediaRepository.php index ba57825f61..7492d83eb7 100644 --- a/src/Ushahidi/Core/Entity/MediaRepository.php +++ b/src/Ushahidi/Core/Entity/MediaRepository.php @@ -11,8 +11,8 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityGet; -use Ushahidi\Contracts\EntityExists; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; use Ushahidi\Contracts\Repository\SearchRepository; interface MediaRepository extends diff --git a/src/Ushahidi/Core/Entity/MessageRepository.php b/src/Ushahidi/Core/Entity/MessageRepository.php index d2992f1478..9007aac804 100644 --- a/src/Ushahidi/Core/Entity/MessageRepository.php +++ b/src/Ushahidi/Core/Entity/MessageRepository.php @@ -12,10 +12,10 @@ namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\EntityCreate; -use Ushahidi\Contracts\EntityCreateMany; -use Ushahidi\Contracts\EntityGet; -use Ushahidi\Contracts\EntityExists; +use Ushahidi\Contracts\Repository\EntityCreate; +use Ushahidi\Contracts\Repository\EntityCreateMany; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; use Ushahidi\Contracts\Repository\CreateRepository; use Ushahidi\Contracts\Repository\UpdateRepository; diff --git a/src/Ushahidi/Core/Entity/NotificationQueueRepository.php b/src/Ushahidi/Core/Entity/NotificationQueueRepository.php index 935703ac28..7f57181f8e 100644 --- a/src/Ushahidi/Core/Entity/NotificationQueueRepository.php +++ b/src/Ushahidi/Core/Entity/NotificationQueueRepository.php @@ -11,8 +11,8 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityGet; -use Ushahidi\Contracts\EntityExists; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; use Ushahidi\Contracts\Repository\CreateRepository; interface NotificationQueueRepository extends diff --git a/src/Ushahidi/Core/Entity/NotificationRepository.php b/src/Ushahidi/Core/Entity/NotificationRepository.php index a9fd05e174..872cb779d3 100644 --- a/src/Ushahidi/Core/Entity/NotificationRepository.php +++ b/src/Ushahidi/Core/Entity/NotificationRepository.php @@ -11,8 +11,8 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityGet; -use Ushahidi\Contracts\EntityExists; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; interface NotificationRepository extends EntityGet, diff --git a/src/Ushahidi/Core/Entity/PermissionRepository.php b/src/Ushahidi/Core/Entity/PermissionRepository.php index de5ff63ab4..53260a3afc 100644 --- a/src/Ushahidi/Core/Entity/PermissionRepository.php +++ b/src/Ushahidi/Core/Entity/PermissionRepository.php @@ -11,8 +11,8 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityGet; -use Ushahidi\Contracts\EntityExists; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; interface PermissionRepository extends EntityGet, diff --git a/src/Ushahidi/Core/Entity/PostLockRepository.php b/src/Ushahidi/Core/Entity/PostLockRepository.php index 94c06dba35..ec9e195174 100644 --- a/src/Ushahidi/Core/Entity/PostLockRepository.php +++ b/src/Ushahidi/Core/Entity/PostLockRepository.php @@ -11,7 +11,7 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityGet; +use Ushahidi\Contracts\Repository\EntityGet; interface PostLockRepository extends EntityGet { diff --git a/src/Ushahidi/Core/Entity/PostRepository.php b/src/Ushahidi/Core/Entity/PostRepository.php index b52f1e8e9a..ee7c5a9f9b 100644 --- a/src/Ushahidi/Core/Entity/PostRepository.php +++ b/src/Ushahidi/Core/Entity/PostRepository.php @@ -11,8 +11,8 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityCreate; -use Ushahidi\Contracts\EntityCreateMany; +use Ushahidi\Contracts\Repository\EntityCreate; +use Ushahidi\Contracts\Repository\EntityCreateMany; use Ushahidi\Contracts\Repository\CreateRepository; use Ushahidi\Contracts\Repository\SearchRepository; use Ushahidi\Contracts\Repository\UpdateRepository; diff --git a/src/Ushahidi/Core/Entity/RoleRepository.php b/src/Ushahidi/Core/Entity/RoleRepository.php index 5b20620b04..0d985eb1c1 100644 --- a/src/Ushahidi/Core/Entity/RoleRepository.php +++ b/src/Ushahidi/Core/Entity/RoleRepository.php @@ -11,8 +11,8 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityGet; -use Ushahidi\Contracts\EntityExists; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; interface RoleRepository extends EntityGet, diff --git a/src/Ushahidi/Core/Entity/SetRepository.php b/src/Ushahidi/Core/Entity/SetRepository.php index 5f75f11571..e492ee3f11 100644 --- a/src/Ushahidi/Core/Entity/SetRepository.php +++ b/src/Ushahidi/Core/Entity/SetRepository.php @@ -11,8 +11,8 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityGet; -use Ushahidi\Contracts\EntityExists; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; use Ushahidi\Contracts\Repository\SearchRepository; interface SetRepository extends diff --git a/src/Ushahidi/Core/Entity/TagRepository.php b/src/Ushahidi/Core/Entity/TagRepository.php index f40db94945..e10160a3f3 100644 --- a/src/Ushahidi/Core/Entity/TagRepository.php +++ b/src/Ushahidi/Core/Entity/TagRepository.php @@ -11,10 +11,10 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityCreate; -use Ushahidi\Contracts\EntityCreateMany; -use Ushahidi\Contracts\EntityGet; -use Ushahidi\Contracts\EntityExists; +use Ushahidi\Contracts\Repository\EntityCreate; +use Ushahidi\Contracts\Repository\EntityCreateMany; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; interface TagRepository extends EntityGet, diff --git a/src/Ushahidi/Core/Entity/TargetedSurveyStateRepository.php b/src/Ushahidi/Core/Entity/TargetedSurveyStateRepository.php index ebdbc61d98..653dd8a14f 100644 --- a/src/Ushahidi/Core/Entity/TargetedSurveyStateRepository.php +++ b/src/Ushahidi/Core/Entity/TargetedSurveyStateRepository.php @@ -11,8 +11,8 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityGet; -use Ushahidi\Contracts\EntityExists; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; use Ushahidi\Contracts\Repository\UpdateRepository; interface TargetedSurveyStateRepository extends diff --git a/src/Ushahidi/Core/Entity/TosRepository.php b/src/Ushahidi/Core/Entity/TosRepository.php index 610285782c..b1370781e5 100644 --- a/src/Ushahidi/Core/Entity/TosRepository.php +++ b/src/Ushahidi/Core/Entity/TosRepository.php @@ -11,9 +11,9 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityCreate; -use Ushahidi\Contracts\EntityGet; -use Ushahidi\Contracts\EntityExists; +use Ushahidi\Contracts\Repository\EntityCreate; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; interface TosRepository extends EntityGet, diff --git a/src/Ushahidi/Core/Entity/UserRepository.php b/src/Ushahidi/Core/Entity/UserRepository.php index 71776d95ee..a08e53767a 100644 --- a/src/Ushahidi/Core/Entity/UserRepository.php +++ b/src/Ushahidi/Core/Entity/UserRepository.php @@ -12,8 +12,8 @@ namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\EntityCreate; -use Ushahidi\Contracts\EntityCreateMany; +use Ushahidi\Contracts\Repository\EntityCreate; +use Ushahidi\Contracts\Repository\EntityCreateMany; use Ushahidi\Contracts\Repository\DeleteRepository; use Ushahidi\Contracts\Repository\ReadRepository; diff --git a/src/Ushahidi/Core/Entity/UserSettingRepository.php b/src/Ushahidi/Core/Entity/UserSettingRepository.php index e293894532..ef22f139f7 100644 --- a/src/Ushahidi/Core/Entity/UserSettingRepository.php +++ b/src/Ushahidi/Core/Entity/UserSettingRepository.php @@ -11,8 +11,8 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityGet; -use Ushahidi\Contracts\EntityExists; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; interface UserSettingRepository extends EntityGet, diff --git a/src/Ushahidi/Core/Entity/WebhookJobRepository.php b/src/Ushahidi/Core/Entity/WebhookJobRepository.php index d74713cef0..af0a5d48cd 100644 --- a/src/Ushahidi/Core/Entity/WebhookJobRepository.php +++ b/src/Ushahidi/Core/Entity/WebhookJobRepository.php @@ -11,8 +11,8 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityGet; -use Ushahidi\Contracts\EntityExists; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; use Ushahidi\Contracts\Repository\CreateRepository; interface WebhookJobRepository extends diff --git a/src/Ushahidi/Core/Entity/WebhookRepository.php b/src/Ushahidi/Core/Entity/WebhookRepository.php index 851d926597..8e874e588a 100644 --- a/src/Ushahidi/Core/Entity/WebhookRepository.php +++ b/src/Ushahidi/Core/Entity/WebhookRepository.php @@ -11,8 +11,8 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\EntityGet; -use Ushahidi\Contracts\EntityExists; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; interface WebhookRepository extends EntityGet, diff --git a/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php index c8490cf07b..81723eb51a 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php @@ -13,7 +13,7 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\Authorizer; -use Ushahidi\Contracts\EntityGet; +use Ushahidi\Contracts\Repository\EntityGet; use Ushahidi\Contracts\Permission; use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\AdminAccess; diff --git a/src/Ushahidi/Core/Tool/Date.php b/src/Ushahidi/Core/Tool/Date.php index 456d750d2f..9234c7fda3 100644 --- a/src/Ushahidi/Core/Tool/Date.php +++ b/src/Ushahidi/Core/Tool/Date.php @@ -11,7 +11,7 @@ namespace Ushahidi\Core\Tool; -use Ushahidi\Contracts\EntityGet; +use Ushahidi\Contracts\Repository\EntityGet; class Date { diff --git a/src/Ushahidi/Modules/V2/Importer.php b/src/Ushahidi/Modules/V2/Importer.php index 16f48030d9..57d6c69c86 100644 --- a/src/Ushahidi/Modules/V2/Importer.php +++ b/src/Ushahidi/Modules/V2/Importer.php @@ -5,7 +5,7 @@ use Ushahidi\Modules\V2; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Log; -use Ushahidi\Contracts\EntityCreateMany; +use Ushahidi\Contracts\Repository\EntityCreateMany; class Importer { diff --git a/src/Ushahidi/Modules/V3/Repository/MessageRepository.php b/src/Ushahidi/Modules/V3/Repository/MessageRepository.php index 9a8198c2e3..1a3ec7e4ef 100644 --- a/src/Ushahidi/Modules/V3/Repository/MessageRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/MessageRepository.php @@ -200,7 +200,7 @@ public function create(Entity $entity) return $this->executeInsert($this->removeNullValues($message)); } - public function createMany(Collection $collection) : array + public function createMany(Collection $collection): array { $this->checkAutoIncMode(); diff --git a/tests/Unit/Modules/V2/ImporterTest.php b/tests/Unit/Modules/V2/ImporterTest.php index 55161ad1e1..2c396787a3 100644 --- a/tests/Unit/Modules/V2/ImporterTest.php +++ b/tests/Unit/Modules/V2/ImporterTest.php @@ -5,7 +5,7 @@ use Ushahidi\Modules\V2\Importer; use Ushahidi\Modules\V2\Contracts\ImportMappingRepository; use Ushahidi\Modules\V2\Contracts\Mapper; -use Ushahidi\Contracts\EntityCreateMany; +use Ushahidi\Contracts\Repository\EntityCreateMany; use Ushahidi\Core\Entity; use Illuminate\Support\Collection; use Ushahidi\Tests\TestCase; From 2cb6cc49989ac45a083c896367a1af51f0e00dcb Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Fri, 10 Mar 2023 15:08:00 +0100 Subject: [PATCH 11/75] chore: fix issue with namespace/class not found --- .../HXL/HXLFormAttributeHXLAttributeTagRepository.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Ushahidi/Modules/V3/Repository/HXL/HXLFormAttributeHXLAttributeTagRepository.php b/src/Ushahidi/Modules/V3/Repository/HXL/HXLFormAttributeHXLAttributeTagRepository.php index 9e9d9f20dd..74f38300ef 100644 --- a/src/Ushahidi/Modules/V3/Repository/HXL/HXLFormAttributeHXLAttributeTagRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/HXL/HXLFormAttributeHXLAttributeTagRepository.php @@ -14,7 +14,7 @@ use Ohanzee\DB; use Ushahidi\Core\Entity\HXL\HXLFormAttributeHXLAttributeTag; use Ushahidi\Core\Tool\SearchData; -use Ushahidi\Core\Entity\HXLFormAttributeHXLAttributeTagRepository +use Ushahidi\Core\Entity\HXL\HXLFormAttributeHXLAttributeTagRepository as HXLFormAttributeHXLAttributeTagRepositoryContract; use Ushahidi\Contracts\Repository\ReadRepository; use Ushahidi\Contracts\Repository\SearchRepository; From ee0bebe0b74f79828269dd899e07a86bc1cb4f58 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Thu, 23 Mar 2023 21:18:54 +0100 Subject: [PATCH 12/75] chore: move ohanzee based repositories to the core domain --- .../Repositories}/ApiKeyRepository.php | 10 +- .../Ohanzee/Repositories}/CSVRepository.php | 2 +- .../Repositories}/Concerns/CachesData.php | 2 +- .../Repositories}/Concerns/FormsTags.php | 2 +- .../Repositories}/Concerns/JsonTranscode.php | 2 +- .../Concerns/UsesBulkAutoIncrement.php | 2 +- .../Repositories}/Config/data-provider.php | 0 .../Ohanzee/Repositories}/Config/features.php | 0 .../Ohanzee/Repositories}/Config/map.php | 0 .../Ohanzee/Repositories}/Config/site.php | 0 .../Repositories}/ConfigRepository.php | 2 +- .../Repositories}/ContactRepository.php | 2 +- .../Repositories}/CountryCodeRepository.php | 2 +- .../Repositories}/DataProviderRepository.php | 2 +- .../Repositories}/EloquentRepository.php | 4 +- .../Repositories}/ExportBatchRepository.php | 2 +- .../Repositories}/ExportJobRepository.php | 2 +- .../Form/AttributeRepository.php | 12 +- .../Repositories}/Form/ContactRepository.php | 4 +- .../Repositories}/Form/RoleRepository.php | 4 +- .../Repositories}/Form/StageRepository.php | 4 +- .../Repositories}/Form/StatsRepository.php | 34 ++-- .../Ohanzee/Repositories}/FormRepository.php | 4 +- .../HXL/HXLAttributeRepository.php | 4 +- ...FormAttributeHXLAttributeTagRepository.php | 6 +- .../HXL/HXLLicenseRepository.php | 4 +- .../HXL/HXLMetadataRepository.php | 4 +- .../Repositories}/HXL/HXLTagRepository.php | 6 +- .../Ohanzee/Repositories}/LayerRepository.php | 2 +- .../Ohanzee/Repositories}/MediaRepository.php | 2 +- .../Repositories}/MessageRepository.php | 2 +- .../Notification/QueueRepository.php | 4 +- .../Repositories}/NotificationRepository.php | 2 +- .../Repositories}/OhanzeeRepository.php | 2 +- .../Repositories}/PermissionRepository.php | 2 +- .../Repositories}/Post/DatetimeRepository.php | 2 +- .../Repositories}/Post/DecimalRepository.php | 2 +- .../Post/DescriptionRepository.php | 2 +- .../Repositories}/Post/ExportRepository.php | 4 +- .../Repositories}/Post/GeometryRepository.php | 2 +- .../Repositories}/Post/IntegerRepository.php | 2 +- .../Repositories}/Post/LockRepository.php | 6 +- .../Repositories}/Post/MarkdownRepository.php | 2 +- .../Repositories}/Post/MediaRepository.php | 2 +- .../Repositories}/Post/PointRepository.php | 2 +- .../Repositories}/Post/RelationRepository.php | 2 +- .../Repositories}/Post/TagsRepository.php | 2 +- .../Repositories}/Post/TextRepository.php | 2 +- .../Repositories}/Post/TitleRepository.php | 2 +- .../Repositories}/Post/ValueFactory.php | 2 +- .../Ohanzee/Repositories}/Post/ValueProxy.php | 2 +- .../Repositories}/Post/ValueRepository.php | 4 +- .../Repositories}/Post/VarcharRepository.php | 2 +- .../Ohanzee/Repositories}/PostRepository.php | 4 +- .../Ohanzee/Repositories}/RoleRepository.php | 2 +- .../Ohanzee/Repositories}/SetRepository.php | 2 +- .../Ohanzee/Repositories}/TagRepository.php | 6 +- .../TargetedSurveyStateRepository.php | 2 +- .../Ohanzee/Repositories}/TosRepository.php | 2 +- .../Repositories}/User/SettingRepository.php | 4 +- .../Ohanzee/Repositories}/UserRepository.php | 2 +- .../Repositories}/Webhook/JobRepository.php | 4 +- .../Repositories}/WebhookRepository.php | 2 +- src/Ushahidi/Core/Usecase/Post/ExportPost.php | 8 +- .../Modules/V3/ContainerConfig/AppConfig.php | 172 +++++++++--------- .../Modules/V3/Jobs/ImportMediaJob.php | 2 +- src/Ushahidi/Modules/V3/ServiceProvider.php | 2 +- .../Modules/V3/Validator/CSV/Update.php | 2 +- .../Modules/V3/Validator/Post/Create.php | 2 +- src/Ushahidi/Modules/V5/Models/PostTag.php | 1 - .../Repositories}/ContactRepositoryTest.php | 2 +- .../Repositories}/MessageRepositoryTest.php | 4 +- .../Repositories}/PostRepositoryTest.php | 6 +- .../Repositories}/PostValueRepositoryTest.php | 6 +- .../Repositories}/TagRepositoryTest.php | 4 +- .../Repositories}/UserRepositoryTest.php | 4 +- tests/Unit/Core/Usecase/Post/ExportTest.php | 6 +- .../Unit/DataSource/TwitterDataSourceTest.php | 8 +- 78 files changed, 222 insertions(+), 219 deletions(-) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/ApiKeyRepository.php (89%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/CSVRepository.php (97%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Concerns/CachesData.php (96%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Concerns/FormsTags.php (97%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Concerns/JsonTranscode.php (97%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Concerns/UsesBulkAutoIncrement.php (90%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Config/data-provider.php (100%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Config/features.php (100%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Config/map.php (100%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Config/site.php (100%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/ConfigRepository.php (99%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/ContactRepository.php (99%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/CountryCodeRepository.php (96%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/DataProviderRepository.php (98%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/EloquentRepository.php (98%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/ExportBatchRepository.php (97%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/ExportJobRepository.php (99%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Form/AttributeRepository.php (97%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Form/ContactRepository.php (98%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Form/RoleRepository.php (95%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Form/StageRepository.php (98%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Form/StatsRepository.php (94%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/FormRepository.php (98%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/HXL/HXLAttributeRepository.php (92%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/HXL/HXLFormAttributeHXLAttributeTagRepository.php (94%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/HXL/HXLLicenseRepository.php (92%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/HXL/HXLMetadataRepository.php (91%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/HXL/HXLTagRepository.php (92%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/LayerRepository.php (97%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/MediaRepository.php (97%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/MessageRepository.php (99%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Notification/QueueRepository.php (93%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/NotificationRepository.php (98%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/OhanzeeRepository.php (99%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/PermissionRepository.php (96%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Post/DatetimeRepository.php (95%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Post/DecimalRepository.php (89%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Post/DescriptionRepository.php (94%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Post/ExportRepository.php (97%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Post/GeometryRepository.php (95%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Post/IntegerRepository.php (92%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Post/LockRepository.php (97%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Post/MarkdownRepository.php (89%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Post/MediaRepository.php (95%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Post/PointRepository.php (98%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Post/RelationRepository.php (89%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Post/TagsRepository.php (98%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Post/TextRepository.php (89%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Post/TitleRepository.php (94%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Post/ValueFactory.php (96%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Post/ValueProxy.php (96%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Post/ValueRepository.php (97%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Post/VarcharRepository.php (89%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/PostRepository.php (99%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/RoleRepository.php (98%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/SetRepository.php (99%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/TagRepository.php (97%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/TargetedSurveyStateRepository.php (98%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/TosRepository.php (97%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/User/SettingRepository.php (95%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/UserRepository.php (99%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/Webhook/JobRepository.php (93%) rename src/Ushahidi/{Modules/V3/Repository => Core/Ohanzee/Repositories}/WebhookRepository.php (98%) rename tests/Unit/{Modules/V3/Repository => Core/Ohanzee/Repositories}/ContactRepositoryTest.php (96%) rename tests/Unit/{Modules/V3/Repository => Core/Ohanzee/Repositories}/MessageRepositoryTest.php (96%) rename tests/Unit/{Modules/V3/Repository => Core/Ohanzee/Repositories}/PostRepositoryTest.php (98%) rename tests/Unit/{Modules/V3/Repository => Core/Ohanzee/Repositories}/PostValueRepositoryTest.php (93%) rename tests/Unit/{Modules/V3/Repository => Core/Ohanzee/Repositories}/TagRepositoryTest.php (92%) rename tests/Unit/{Modules/V3/Repository => Core/Ohanzee/Repositories}/UserRepositoryTest.php (97%) diff --git a/src/Ushahidi/Modules/V3/Repository/ApiKeyRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/ApiKeyRepository.php similarity index 89% rename from src/Ushahidi/Modules/V3/Repository/ApiKeyRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/ApiKeyRepository.php index a65d9a776b..487241aebd 100644 --- a/src/Ushahidi/Modules/V3/Repository/ApiKeyRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/ApiKeyRepository.php @@ -9,16 +9,18 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository; +namespace Ushahidi\Core\Ohanzee\Repositories; use Ramsey\Uuid\Uuid; use Ushahidi\Contracts\Entity; -use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Entity\ApiKey; -use Ushahidi\Core\Entity\ApiKeyRepository as ApiKeyRepositoryContract; +use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Concerns\AdminAccess; +use Ushahidi\Contracts\Repository\EntityExists; +use Ushahidi\Contracts\Repository\CreateRepository; +use Ushahidi\Core\Entity\ApiKeyRepository as ApiKeyRepositoryContract; -class ApiKeyRepository extends OhanzeeRepository implements ApiKeyRepositoryContract +class ApiKeyRepository extends OhanzeeRepository implements ApiKeyRepositoryContract, CreateRepository, EntityExists { use AdminAccess; diff --git a/src/Ushahidi/Modules/V3/Repository/CSVRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/CSVRepository.php similarity index 97% rename from src/Ushahidi/Modules/V3/Repository/CSVRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/CSVRepository.php index dfda5e9a0c..ab94cd576b 100644 --- a/src/Ushahidi/Modules/V3/Repository/CSVRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/CSVRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository; +namespace Ushahidi\Core\Ohanzee\Repositories; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Contracts\Entity; diff --git a/src/Ushahidi/Modules/V3/Repository/Concerns/CachesData.php b/src/Ushahidi/Core/Ohanzee/Repositories/Concerns/CachesData.php similarity index 96% rename from src/Ushahidi/Modules/V3/Repository/Concerns/CachesData.php rename to src/Ushahidi/Core/Ohanzee/Repositories/Concerns/CachesData.php index b30cb549a1..024c3700c0 100644 --- a/src/Ushahidi/Modules/V3/Repository/Concerns/CachesData.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Concerns/CachesData.php @@ -1,6 +1,6 @@ join('targeted_survey_state', 'INNER') - ->on('contacts.id', '=', 'targeted_survey_state.contact_id') - ->join('posts', 'INNER') - ->on('posts.id', '=', 'targeted_survey_state.post_id') - ->join('messages') - ->on('messages.post_id', '=', 'targeted_survey_state.post_id'); + ->on('contacts.id', '=', 'targeted_survey_state.contact_id') + ->join('posts', 'INNER') + ->on('posts.id', '=', 'targeted_survey_state.post_id') + ->join('messages') + ->on('messages.post_id', '=', 'targeted_survey_state.post_id'); return $query ->execute($this->db()) ->get('total'); @@ -133,7 +135,7 @@ public function countTotalPending($form_id, $total_sent) { $form_id = intval($form_id); $total_contacts = $this->getTotalContacts($form_id); - $total_attributes =$this->getTotalAttributes($form_id); + $total_attributes = $this->getTotalAttributes($form_id); $total_pending_for_inactive = DB::query(Database::SELECT, $this->getPendingCountQuery()) ->bind(':form_id', $form_id) ->execute($this->db())->get('total'); @@ -227,7 +229,7 @@ public function countOutgoingMessages($form_id, $created_after, $created_before) ->where( 'post_id', 'IN', - DB::expr('(select post_id FROM targeted_survey_state WHERE form_id ='.$form_id.')') + DB::expr('(select post_id FROM targeted_survey_state WHERE form_id =' . $form_id . ')') ) ->where('direction', '=', 'outgoing') ->group_by('status'); @@ -320,7 +322,7 @@ public function getResponseRecipients($form_id, $created_after, $created_before) $query = $this->betweenDates($query, 'created', $created_before, $created_after); $query = DB::select([DB::expr('COUNT(contact_id)'), 'total']) ->distinct(true) - ->from([$query,'targeted_posts']) + ->from([$query, 'targeted_posts']) ->join('messages', 'INNER') ->on('messages.post_id', '=', 'targeted_posts.id') ->where('messages.direction', '=', 'incoming'); @@ -345,8 +347,8 @@ private function targetedSurveyStateJoin($query) public function getSurveyType($form_id) { $query = DB::select('targeted_survey') - ->from('forms') - ->where('id', '=', $form_id); + ->from('forms') + ->where('id', '=', $form_id); $results = $query->execute($this->db()); return $results->as_array(); diff --git a/src/Ushahidi/Modules/V3/Repository/FormRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/FormRepository.php similarity index 98% rename from src/Ushahidi/Modules/V3/Repository/FormRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/FormRepository.php index a633cef1ee..214c282016 100644 --- a/src/Ushahidi/Modules/V3/Repository/FormRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/FormRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository; +namespace Ushahidi\Core\Ohanzee\Repositories; use Ohanzee\DB; use Ushahidi\Core\Tool\SearchData; @@ -17,7 +17,7 @@ use Ushahidi\Core\Concerns\Event; use Illuminate\Support\Collection; use Ushahidi\Contracts\Entity; -use Ushahidi\Modules\V3\Repository\Concerns\FormsTags; +use Ushahidi\Core\Ohanzee\Repositories\Concerns\FormsTags; use Ushahidi\Core\Entity\FormRepository as FormRepositoryContract; class FormRepository extends OhanzeeRepository implements diff --git a/src/Ushahidi/Modules/V3/Repository/HXL/HXLAttributeRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/HXL/HXLAttributeRepository.php similarity index 92% rename from src/Ushahidi/Modules/V3/Repository/HXL/HXLAttributeRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/HXL/HXLAttributeRepository.php index d2090d9435..6b0c912d18 100644 --- a/src/Ushahidi/Modules/V3/Repository/HXL/HXLAttributeRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/HXL/HXLAttributeRepository.php @@ -9,12 +9,12 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\HXL; +namespace Ushahidi\Core\Ohanzee\Repositories\HXL; use Ohanzee\Database; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Entity\HXL\HXLAttribute; -use Ushahidi\Modules\V3\Repository\OhanzeeRepository; +use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; use Ushahidi\Contracts\Repository\ReadRepository; use Ushahidi\Contracts\Repository\SearchRepository; use Ushahidi\Core\Entity\HXL\HXLAttributeRepository as HXLAttributeRepositoryContract; diff --git a/src/Ushahidi/Modules/V3/Repository/HXL/HXLFormAttributeHXLAttributeTagRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/HXL/HXLFormAttributeHXLAttributeTagRepository.php similarity index 94% rename from src/Ushahidi/Modules/V3/Repository/HXL/HXLFormAttributeHXLAttributeTagRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/HXL/HXLFormAttributeHXLAttributeTagRepository.php index 74f38300ef..8420328a11 100644 --- a/src/Ushahidi/Modules/V3/Repository/HXL/HXLFormAttributeHXLAttributeTagRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/HXL/HXLFormAttributeHXLAttributeTagRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\HXL; +namespace Ushahidi\Core\Ohanzee\Repositories\HXL; use Ohanzee\DB; use Ushahidi\Core\Entity\HXL\HXLFormAttributeHXLAttributeTag; @@ -18,7 +18,7 @@ as HXLFormAttributeHXLAttributeTagRepositoryContract; use Ushahidi\Contracts\Repository\ReadRepository; use Ushahidi\Contracts\Repository\SearchRepository; -use Ushahidi\Modules\V3\Repository\OhanzeeRepository; +use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; class HXLFormAttributeHXLAttributeTagRepository extends OhanzeeRepository implements HXLFormAttributeHXLAttributeTagRepositoryContract, @@ -94,7 +94,7 @@ public function getHxlTags($job) } /** * @param array|null $data - * @return \Ushahidi\Modules\V3\Repository\Ushahidi\Core\Entity|HXLTag|\Ushahidi\Contracts\Repository\Usecase\Entity + * @return \Ushahidi\Core\Ohanzee\Repositories\Ushahidi\Core\Entity|HXLTag|\Ushahidi\Contracts\Repository\Usecase\Entity */ public function getEntity(array $data = null) { diff --git a/src/Ushahidi/Modules/V3/Repository/HXL/HXLLicenseRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/HXL/HXLLicenseRepository.php similarity index 92% rename from src/Ushahidi/Modules/V3/Repository/HXL/HXLLicenseRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/HXL/HXLLicenseRepository.php index 687af28491..0f34858eb5 100644 --- a/src/Ushahidi/Modules/V3/Repository/HXL/HXLLicenseRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/HXL/HXLLicenseRepository.php @@ -9,12 +9,12 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\HXL; +namespace Ushahidi\Core\Ohanzee\Repositories\HXL; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Entity\HXL\HXLLicense; use Ushahidi\Core\Entity\HXL\HXLLicenseRepository as HXLLicenseRepositoryContract; -use Ushahidi\Modules\V3\Repository\OhanzeeRepository; +use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; class HXLLicenseRepository extends OhanzeeRepository implements HXLLicenseRepositoryContract diff --git a/src/Ushahidi/Modules/V3/Repository/HXL/HXLMetadataRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/HXL/HXLMetadataRepository.php similarity index 91% rename from src/Ushahidi/Modules/V3/Repository/HXL/HXLMetadataRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/HXL/HXLMetadataRepository.php index 523a675029..cf828dd2fb 100644 --- a/src/Ushahidi/Modules/V3/Repository/HXL/HXLMetadataRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/HXL/HXLMetadataRepository.php @@ -8,12 +8,12 @@ * @copyright 2014 Ushahidi * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\HXL; +namespace Ushahidi\Core\Ohanzee\Repositories\HXL; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Entity\HXL\HXLMetadata; use Ushahidi\Core\Entity\HXL\HXLMetadataRepository as HXLMetadataRepositoryContract; -use Ushahidi\Modules\V3\Repository\OhanzeeRepository; +use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; class HXLMetadataRepository extends OhanzeeRepository implements HXLMetadataRepositoryContract diff --git a/src/Ushahidi/Modules/V3/Repository/HXL/HXLTagRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/HXL/HXLTagRepository.php similarity index 92% rename from src/Ushahidi/Modules/V3/Repository/HXL/HXLTagRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/HXL/HXLTagRepository.php index cba6a1690a..b8a519e481 100644 --- a/src/Ushahidi/Modules/V3/Repository/HXL/HXLTagRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/HXL/HXLTagRepository.php @@ -9,14 +9,14 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\HXL; +namespace Ushahidi\Core\Ohanzee\Repositories\HXL; use Ohanzee\DB; use Ohanzee\Database; use Ushahidi\Core\Entity\HXL\HXLTag; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Tool\OhanzeeResolver; -use Ushahidi\Modules\V3\Repository\OhanzeeRepository; +use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; use Ushahidi\Contracts\Repository\ReadRepository; use Ushahidi\Contracts\Repository\SearchRepository; use Ushahidi\Core\Entity\HXLTagRepository as HXLTagRepositoryContract; @@ -52,7 +52,7 @@ public function setSearchConditions(SearchData $search) /** * @param array|null $data - * @return \Ushahidi\Modules\V3\Repository\Ushahidi\Core\Entity|HXLTag|\Ushahidi\Contracts\Repository\Usecase\Entity + * @return \Ushahidi\Core\Ohanzee\Repositories\Ushahidi\Core\Entity|HXLTag|\Ushahidi\Contracts\Repository\Usecase\Entity */ public function getEntity(array $data = null) { diff --git a/src/Ushahidi/Modules/V3/Repository/LayerRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/LayerRepository.php similarity index 97% rename from src/Ushahidi/Modules/V3/Repository/LayerRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/LayerRepository.php index 614220d12a..458e864c7b 100644 --- a/src/Ushahidi/Modules/V3/Repository/LayerRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/LayerRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository; +namespace Ushahidi\Core\Ohanzee\Repositories; use Ushahidi\Contracts\Entity; use Ushahidi\Core\Entity\Layer; diff --git a/src/Ushahidi/Modules/V3/Repository/MediaRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/MediaRepository.php similarity index 97% rename from src/Ushahidi/Modules/V3/Repository/MediaRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/MediaRepository.php index 1684530600..f46701dc50 100644 --- a/src/Ushahidi/Modules/V3/Repository/MediaRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/MediaRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository; +namespace Ushahidi\Core\Ohanzee\Repositories; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Entity\Media; diff --git a/src/Ushahidi/Modules/V3/Repository/MessageRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/MessageRepository.php similarity index 99% rename from src/Ushahidi/Modules/V3/Repository/MessageRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/MessageRepository.php index 1a3ec7e4ef..ec725ec025 100644 --- a/src/Ushahidi/Modules/V3/Repository/MessageRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/MessageRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository; +namespace Ushahidi\Core\Ohanzee\Repositories; use Ohanzee\DB; use Ushahidi\Core\Tool\SearchData; diff --git a/src/Ushahidi/Modules/V3/Repository/Notification/QueueRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Notification/QueueRepository.php similarity index 93% rename from src/Ushahidi/Modules/V3/Repository/Notification/QueueRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/Notification/QueueRepository.php index 9d0e0aff3b..eca8d0ec23 100644 --- a/src/Ushahidi/Modules/V3/Repository/Notification/QueueRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Notification/QueueRepository.php @@ -9,13 +9,13 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\Notification; +namespace Ushahidi\Core\Ohanzee\Repositories\Notification; use Ushahidi\Contracts\Entity; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Entity\NotificationQueue; use Ushahidi\Core\Entity\NotificationQueueRepository as NotificationQueueRepositoryContract; -use Ushahidi\Modules\V3\Repository\OhanzeeRepository; +use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; class QueueRepository extends OhanzeeRepository implements NotificationQueueRepositoryContract { diff --git a/src/Ushahidi/Modules/V3/Repository/NotificationRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/NotificationRepository.php similarity index 98% rename from src/Ushahidi/Modules/V3/Repository/NotificationRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/NotificationRepository.php index 705326a55b..7c14d8ca7b 100644 --- a/src/Ushahidi/Modules/V3/Repository/NotificationRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/NotificationRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository; +namespace Ushahidi\Core\Ohanzee\Repositories; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Contracts\Entity; diff --git a/src/Ushahidi/Modules/V3/Repository/OhanzeeRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/OhanzeeRepository.php similarity index 99% rename from src/Ushahidi/Modules/V3/Repository/OhanzeeRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/OhanzeeRepository.php index dd6e541b2f..f4b241b855 100644 --- a/src/Ushahidi/Modules/V3/Repository/OhanzeeRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/OhanzeeRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository; +namespace Ushahidi\Core\Ohanzee\Repositories; use Ohanzee\DB; use RuntimeException; diff --git a/src/Ushahidi/Modules/V3/Repository/PermissionRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/PermissionRepository.php similarity index 96% rename from src/Ushahidi/Modules/V3/Repository/PermissionRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/PermissionRepository.php index 840b772349..e1ea1317d6 100644 --- a/src/Ushahidi/Modules/V3/Repository/PermissionRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/PermissionRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository; +namespace Ushahidi\Core\Ohanzee\Repositories; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Entity\Permission; diff --git a/src/Ushahidi/Modules/V3/Repository/Post/DatetimeRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/DatetimeRepository.php similarity index 95% rename from src/Ushahidi/Modules/V3/Repository/Post/DatetimeRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/Post/DatetimeRepository.php index 6c19b07edc..542c6de82b 100644 --- a/src/Ushahidi/Modules/V3/Repository/Post/DatetimeRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/DatetimeRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\Post; +namespace Ushahidi\Core\Ohanzee\Repositories\Post; use Ushahidi\Core\Entity\PostValue; diff --git a/src/Ushahidi/Modules/V3/Repository/Post/DecimalRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/DecimalRepository.php similarity index 89% rename from src/Ushahidi/Modules/V3/Repository/Post/DecimalRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/Post/DecimalRepository.php index 283d4fcdb9..621ef43350 100644 --- a/src/Ushahidi/Modules/V3/Repository/Post/DecimalRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/DecimalRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\Post; +namespace Ushahidi\Core\Ohanzee\Repositories\Post; class DecimalRepository extends ValueRepository { diff --git a/src/Ushahidi/Modules/V3/Repository/Post/DescriptionRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/DescriptionRepository.php similarity index 94% rename from src/Ushahidi/Modules/V3/Repository/Post/DescriptionRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/Post/DescriptionRepository.php index 632c169447..c0933438c1 100644 --- a/src/Ushahidi/Modules/V3/Repository/Post/DescriptionRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/DescriptionRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\Post; +namespace Ushahidi\Core\Ohanzee\Repositories\Post; class DescriptionRepository extends TextRepository { diff --git a/src/Ushahidi/Modules/V3/Repository/Post/ExportRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/ExportRepository.php similarity index 97% rename from src/Ushahidi/Modules/V3/Repository/Post/ExportRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/Post/ExportRepository.php index 9a8daa18bf..5740f53822 100644 --- a/src/Ushahidi/Modules/V3/Repository/Post/ExportRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/ExportRepository.php @@ -9,12 +9,12 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\Post; +namespace Ushahidi\Core\Ohanzee\Repositories\Post; use Ohanzee\DB; use Ushahidi\Core\Entity\Post; use Ushahidi\Core\Concerns\AdminAccess; -use Ushahidi\Modules\V3\Repository\PostRepository; +use Ushahidi\Core\Ohanzee\Repositories\PostRepository; use Ushahidi\Core\Entity\SetRepository; use Ushahidi\Core\Entity\TagRepository; use Ushahidi\Core\Entity\MessageRepository; diff --git a/src/Ushahidi/Modules/V3/Repository/Post/GeometryRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/GeometryRepository.php similarity index 95% rename from src/Ushahidi/Modules/V3/Repository/Post/GeometryRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/Post/GeometryRepository.php index 9bc3469773..907a3be27d 100644 --- a/src/Ushahidi/Modules/V3/Repository/Post/GeometryRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/GeometryRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\Post; +namespace Ushahidi\Core\Ohanzee\Repositories\Post; use Ohanzee\DB; use Ushahidi\Core\Entity\PostValue; diff --git a/src/Ushahidi/Modules/V3/Repository/Post/IntegerRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/IntegerRepository.php similarity index 92% rename from src/Ushahidi/Modules/V3/Repository/Post/IntegerRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/Post/IntegerRepository.php index cf59e4686b..7758b598a2 100644 --- a/src/Ushahidi/Modules/V3/Repository/Post/IntegerRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/IntegerRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\Post; +namespace Ushahidi\Core\Ohanzee\Repositories\Post; use Ushahidi\Core\Entity\PostValue; diff --git a/src/Ushahidi/Modules/V3/Repository/Post/LockRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/LockRepository.php similarity index 97% rename from src/Ushahidi/Modules/V3/Repository/Post/LockRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/Post/LockRepository.php index 0cb0080b1a..a936ef2a49 100644 --- a/src/Ushahidi/Modules/V3/Repository/Post/LockRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/LockRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\Post; +namespace Ushahidi\Core\Ohanzee\Repositories\Post; use Ohanzee\DB; use Ohanzee\Database; @@ -18,9 +18,9 @@ use League\Event\ListenerInterface; use Ushahidi\Contracts\Entity; use Ushahidi\Core\Concerns\UserContext; -use Ushahidi\Modules\V3\Repository\OhanzeeRepository; +use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; use Ushahidi\Core\Entity\PostLockRepository; -use Ushahidi\Modules\V3\Repository\UserRepository; +use Ushahidi\Core\Ohanzee\Repositories\UserRepository; use Ushahidi\Core\Tool\OhanzeeResolver; class LockRepository extends OhanzeeRepository implements PostLockRepository diff --git a/src/Ushahidi/Modules/V3/Repository/Post/MarkdownRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/MarkdownRepository.php similarity index 89% rename from src/Ushahidi/Modules/V3/Repository/Post/MarkdownRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/Post/MarkdownRepository.php index be6924831b..e9674045db 100644 --- a/src/Ushahidi/Modules/V3/Repository/Post/MarkdownRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/MarkdownRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\Post; +namespace Ushahidi\Core\Ohanzee\Repositories\Post; class MarkdownRepository extends ValueRepository { diff --git a/src/Ushahidi/Modules/V3/Repository/Post/MediaRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/MediaRepository.php similarity index 95% rename from src/Ushahidi/Modules/V3/Repository/Post/MediaRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/Post/MediaRepository.php index d12b6a21de..be061b4ab3 100644 --- a/src/Ushahidi/Modules/V3/Repository/Post/MediaRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/MediaRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\Post; +namespace Ushahidi\Core\Ohanzee\Repositories\Post; class MediaRepository extends ValueRepository { diff --git a/src/Ushahidi/Modules/V3/Repository/Post/PointRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/PointRepository.php similarity index 98% rename from src/Ushahidi/Modules/V3/Repository/Post/PointRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/Post/PointRepository.php index 251c6a8358..9535cd4de3 100644 --- a/src/Ushahidi/Modules/V3/Repository/Post/PointRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/PointRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\Post; +namespace Ushahidi\Core\Ohanzee\Repositories\Post; use Ohanzee\DB; use Ohanzee\Database; diff --git a/src/Ushahidi/Modules/V3/Repository/Post/RelationRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/RelationRepository.php similarity index 89% rename from src/Ushahidi/Modules/V3/Repository/Post/RelationRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/Post/RelationRepository.php index 40d866e0d9..9675039af0 100644 --- a/src/Ushahidi/Modules/V3/Repository/Post/RelationRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/RelationRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\Post; +namespace Ushahidi\Core\Ohanzee\Repositories\Post; class RelationRepository extends ValueRepository { diff --git a/src/Ushahidi/Modules/V3/Repository/Post/TagsRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/TagsRepository.php similarity index 98% rename from src/Ushahidi/Modules/V3/Repository/Post/TagsRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/Post/TagsRepository.php index 2b98e5be73..8d315691a8 100644 --- a/src/Ushahidi/Modules/V3/Repository/Post/TagsRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/TagsRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\Post; +namespace Ushahidi\Core\Ohanzee\Repositories\Post; use Ohanzee\DB; use Ushahidi\Core\Tool\OhanzeeResolver; diff --git a/src/Ushahidi/Modules/V3/Repository/Post/TextRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/TextRepository.php similarity index 89% rename from src/Ushahidi/Modules/V3/Repository/Post/TextRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/Post/TextRepository.php index 600d8630c3..4ae4681b50 100644 --- a/src/Ushahidi/Modules/V3/Repository/Post/TextRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/TextRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\Post; +namespace Ushahidi\Core\Ohanzee\Repositories\Post; class TextRepository extends ValueRepository { diff --git a/src/Ushahidi/Modules/V3/Repository/Post/TitleRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/TitleRepository.php similarity index 94% rename from src/Ushahidi/Modules/V3/Repository/Post/TitleRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/Post/TitleRepository.php index 1eb9f2c5e5..267565ae0c 100644 --- a/src/Ushahidi/Modules/V3/Repository/Post/TitleRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/TitleRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\Post; +namespace Ushahidi\Core\Ohanzee\Repositories\Post; class TitleRepository extends VarcharRepository { diff --git a/src/Ushahidi/Modules/V3/Repository/Post/ValueFactory.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/ValueFactory.php similarity index 96% rename from src/Ushahidi/Modules/V3/Repository/Post/ValueFactory.php rename to src/Ushahidi/Core/Ohanzee/Repositories/Post/ValueFactory.php index bb1f3e9640..a0df2a9b20 100644 --- a/src/Ushahidi/Modules/V3/Repository/Post/ValueFactory.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/ValueFactory.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\Post; +namespace Ushahidi\Core\Ohanzee\Repositories\Post; class ValueFactory { diff --git a/src/Ushahidi/Modules/V3/Repository/Post/ValueProxy.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/ValueProxy.php similarity index 96% rename from src/Ushahidi/Modules/V3/Repository/Post/ValueProxy.php rename to src/Ushahidi/Core/Ohanzee/Repositories/Post/ValueProxy.php index aadf2c5ba0..5d9fb8508a 100644 --- a/src/Ushahidi/Modules/V3/Repository/Post/ValueProxy.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/ValueProxy.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\Post; +namespace Ushahidi\Core\Ohanzee\Repositories\Post; use Ushahidi\Contracts\Repository\Usecase\ValuesForPostRepository; diff --git a/src/Ushahidi/Modules/V3/Repository/Post/ValueRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/ValueRepository.php similarity index 97% rename from src/Ushahidi/Modules/V3/Repository/Post/ValueRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/Post/ValueRepository.php index 415bb1abee..15404e41ca 100644 --- a/src/Ushahidi/Modules/V3/Repository/Post/ValueRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/ValueRepository.php @@ -9,11 +9,11 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\Post; +namespace Ushahidi\Core\Ohanzee\Repositories\Post; use Ohanzee\DB; use Ushahidi\Core\Entity\PostValue; -use Ushahidi\Modules\V3\Repository\OhanzeeRepository; +use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; use Ushahidi\Core\Entity\PostValueRepository; use Ushahidi\Contracts\Repository\Usecase\ValuesForPostRepository; use Ushahidi\Contracts\Repository\Usecase\UpdatePostValueRepository; diff --git a/src/Ushahidi/Modules/V3/Repository/Post/VarcharRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/VarcharRepository.php similarity index 89% rename from src/Ushahidi/Modules/V3/Repository/Post/VarcharRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/Post/VarcharRepository.php index 90e17deef2..e3edcb8357 100644 --- a/src/Ushahidi/Modules/V3/Repository/Post/VarcharRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/VarcharRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\Post; +namespace Ushahidi\Core\Ohanzee\Repositories\Post; class VarcharRepository extends ValueRepository { diff --git a/src/Ushahidi/Modules/V3/Repository/PostRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/PostRepository.php similarity index 99% rename from src/Ushahidi/Modules/V3/Repository/PostRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/PostRepository.php index 66998b74c1..28857dac10 100644 --- a/src/Ushahidi/Modules/V3/Repository/PostRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/PostRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository; +namespace Ushahidi\Core\Ohanzee\Repositories; use Ohanzee\DB; use Ohanzee\Database; @@ -24,7 +24,7 @@ use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Tool\OhanzeeResolver; use Ushahidi\Core\Tool\Permissions\InteractsWithPostPermissions; -use Ushahidi\Modules\V3\Repository\Post\ValueFactory as PostValueFactory; +use Ushahidi\Core\Ohanzee\Repositories\Post\ValueFactory as PostValueFactory; use Ushahidi\Contracts\Repository\Usecase\SetPostRepository; use Ushahidi\Contracts\Repository\Usecase\UpdatePostRepository; use Ushahidi\Core\Entity\ContactRepository; diff --git a/src/Ushahidi/Modules/V3/Repository/RoleRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/RoleRepository.php similarity index 98% rename from src/Ushahidi/Modules/V3/Repository/RoleRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/RoleRepository.php index 2583cee699..18da38f988 100644 --- a/src/Ushahidi/Modules/V3/Repository/RoleRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/RoleRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository; +namespace Ushahidi\Core\Ohanzee\Repositories; use Ohanzee\DB; use Ushahidi\Contracts\Entity; diff --git a/src/Ushahidi/Modules/V3/Repository/SetRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/SetRepository.php similarity index 99% rename from src/Ushahidi/Modules/V3/Repository/SetRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/SetRepository.php index 4106e6dc90..3629c9ef96 100644 --- a/src/Ushahidi/Modules/V3/Repository/SetRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/SetRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository; +namespace Ushahidi\Core\Ohanzee\Repositories; use Ohanzee\DB; use Ushahidi\Core\Entity\Set; diff --git a/src/Ushahidi/Modules/V3/Repository/TagRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/TagRepository.php similarity index 97% rename from src/Ushahidi/Modules/V3/Repository/TagRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/TagRepository.php index 5eee6dee08..d4452038ec 100644 --- a/src/Ushahidi/Modules/V3/Repository/TagRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/TagRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository; +namespace Ushahidi\Core\Ohanzee\Repositories; use Ohanzee\DB; use Illuminate\Support\Collection; @@ -17,8 +17,8 @@ use Ushahidi\Core\Tool\SearchData; use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\ValidationEngine; -use Ushahidi\Modules\V3\Repository\OhanzeeRepository; -use Ushahidi\Modules\V3\Repository\Concerns; +use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; +use Ushahidi\Core\Ohanzee\Repositories\Concerns; use Ushahidi\Contracts\Repository\Usecase\DeleteTagRepository; use Ushahidi\Contracts\Repository\Usecase\UpdateTagRepository; use Ushahidi\Contracts\Repository\Usecase\UpdatePostTagRepository; diff --git a/src/Ushahidi/Modules/V3/Repository/TargetedSurveyStateRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/TargetedSurveyStateRepository.php similarity index 98% rename from src/Ushahidi/Modules/V3/Repository/TargetedSurveyStateRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/TargetedSurveyStateRepository.php index f25f756034..c8267fa21f 100644 --- a/src/Ushahidi/Modules/V3/Repository/TargetedSurveyStateRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/TargetedSurveyStateRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository; +namespace Ushahidi\Core\Ohanzee\Repositories; use Ohanzee\DB; use Ushahidi\Core\Entity; diff --git a/src/Ushahidi/Modules/V3/Repository/TosRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/TosRepository.php similarity index 97% rename from src/Ushahidi/Modules/V3/Repository/TosRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/TosRepository.php index 400646eea8..299bbd99d0 100644 --- a/src/Ushahidi/Modules/V3/Repository/TosRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/TosRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository; +namespace Ushahidi\Core\Ohanzee\Repositories; use Ohanzee\DB; use Ushahidi\Core\Entity\Tos; diff --git a/src/Ushahidi/Modules/V3/Repository/User/SettingRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/User/SettingRepository.php similarity index 95% rename from src/Ushahidi/Modules/V3/Repository/User/SettingRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/User/SettingRepository.php index 0be1a3d9d1..a8b1e4c0ce 100644 --- a/src/Ushahidi/Modules/V3/Repository/User/SettingRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/User/SettingRepository.php @@ -9,13 +9,13 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\User; +namespace Ushahidi\Core\Ohanzee\Repositories\User; use Ushahidi\Contracts\Entity; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Entity\UserSetting; use Ushahidi\Core\Entity\UserSettingRepository as UserSettingRepositoryContract; -use Ushahidi\Modules\V3\Repository\OhanzeeRepository; +use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; class SettingRepository extends OhanzeeRepository implements UserSettingRepositoryContract diff --git a/src/Ushahidi/Modules/V3/Repository/UserRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/UserRepository.php similarity index 99% rename from src/Ushahidi/Modules/V3/Repository/UserRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/UserRepository.php index faed0d5175..50c9e38caf 100644 --- a/src/Ushahidi/Modules/V3/Repository/UserRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/UserRepository.php @@ -11,7 +11,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository; +namespace Ushahidi\Core\Ohanzee\Repositories; use Ohanzee\DB; use Illuminate\Support\Str; diff --git a/src/Ushahidi/Modules/V3/Repository/Webhook/JobRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Webhook/JobRepository.php similarity index 93% rename from src/Ushahidi/Modules/V3/Repository/Webhook/JobRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/Webhook/JobRepository.php index 5c56c7d767..ce15eca8e2 100644 --- a/src/Ushahidi/Modules/V3/Repository/Webhook/JobRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Webhook/JobRepository.php @@ -9,12 +9,12 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository\Webhook; +namespace Ushahidi\Core\Ohanzee\Repositories\Webhook; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Contracts\Entity; use Ushahidi\Core\Entity\WebhookJob; -use Ushahidi\Modules\V3\Repository\OhanzeeRepository; +use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; use Ushahidi\Core\Entity\WebhookJobRepository as WebhookJobRepositoryContract; class JobRepository extends OhanzeeRepository implements WebhookJobRepositoryContract diff --git a/src/Ushahidi/Modules/V3/Repository/WebhookRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/WebhookRepository.php similarity index 98% rename from src/Ushahidi/Modules/V3/Repository/WebhookRepository.php rename to src/Ushahidi/Core/Ohanzee/Repositories/WebhookRepository.php index 4d332734d9..66de48bea5 100644 --- a/src/Ushahidi/Modules/V3/Repository/WebhookRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/WebhookRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Modules\V3\Repository; +namespace Ushahidi\Core\Ohanzee\Repositories; use Log; use Ramsey\Uuid\Uuid; diff --git a/src/Ushahidi/Core/Usecase/Post/ExportPost.php b/src/Ushahidi/Core/Usecase/Post/ExportPost.php index eec2db53b6..f2de611497 100644 --- a/src/Ushahidi/Core/Usecase/Post/ExportPost.php +++ b/src/Ushahidi/Core/Usecase/Post/ExportPost.php @@ -17,10 +17,10 @@ use Ushahidi\Core\Entity\ExportBatch; use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\FilterRecords; -use Ushahidi\Modules\V3\Repository\ExportJobRepository; -use Ushahidi\Modules\V3\Repository\Post\ExportRepository; -use Ushahidi\Modules\V3\Repository\Form\AttributeRepository; -use Ushahidi\Modules\V3\Repository\HXL\HXLFormAttributeHXLAttributeTagRepository; +use Ushahidi\Core\Ohanzee\Repositories\ExportJobRepository; +use Ushahidi\Core\Ohanzee\Repositories\Post\ExportRepository; +use Ushahidi\Core\Ohanzee\Repositories\Form\AttributeRepository; +use Ushahidi\Core\Ohanzee\Repositories\HXL\HXLFormAttributeHXLAttributeTagRepository; use Ushahidi\Core\Usecase\Concerns\VerifyParentLoaded; use Ushahidi\Core\Entity\ExportBatchRepository; use Ushahidi\Core\Usecase\Concerns\Formatter as FormatterTrait; diff --git a/src/Ushahidi/Modules/V3/ContainerConfig/AppConfig.php b/src/Ushahidi/Modules/V3/ContainerConfig/AppConfig.php index 9b6945a08e..e8b0b4b1b0 100644 --- a/src/Ushahidi/Modules/V3/ContainerConfig/AppConfig.php +++ b/src/Ushahidi/Modules/V3/ContainerConfig/AppConfig.php @@ -254,78 +254,78 @@ public function define(Container $di): void // Repositories - $di->set('repository.apikey', $di->lazyNew(V3\Repository\ApiKeyRepository::class)); - $di->set('repository.config', $di->lazyNew(V3\Repository\ConfigRepository::class)); - $di->set('repository.contact', $di->lazyNew(V3\Repository\ContactRepository::class)); - $di->set('repository.country_code', $di->lazyNew(V3\Repository\CountryCodeRepository::class)); - $di->set('repository.dataprovider', $di->lazyNew(V3\Repository\DataProviderRepository::class)); - $di->set('repository.form', $di->lazyNew(V3\Repository\FormRepository::class)); - $di->set('repository.form_role', $di->lazyNew(V3\Repository\Form\RoleRepository::class)); - $di->set('repository.form_contact', $di->lazyNew(V3\Repository\Form\ContactRepository::class)); - $di->set('repository.form_stats', $di->lazyNew(V3\Repository\Form\StatsRepository::class)); - - $di->set('repository.form_stage', $di->lazyNew(V3\Repository\Form\StageRepository::class)); - $di->set('repository.form_attribute', $di->lazyNew(V3\Repository\Form\AttributeRepository::class)); - $di->set('repository.layer', $di->lazyNew(V3\Repository\LayerRepository::class)); - $di->set('repository.media', $di->lazyNew(V3\Repository\MediaRepository::class)); - $di->set('repository.message', $di->lazyNew(V3\Repository\MessageRepository::class)); + $di->set('repository.apikey', $di->lazyNew(Core\Ohanzee\Repositories\ApiKeyRepository::class)); + $di->set('repository.config', $di->lazyNew(Core\Ohanzee\Repositories\ConfigRepository::class)); + $di->set('repository.contact', $di->lazyNew(Core\Ohanzee\Repositories\ContactRepository::class)); + $di->set('repository.country_code', $di->lazyNew(Core\Ohanzee\Repositories\CountryCodeRepository::class)); + $di->set('repository.dataprovider', $di->lazyNew(Core\Ohanzee\Repositories\DataProviderRepository::class)); + $di->set('repository.form', $di->lazyNew(Core\Ohanzee\Repositories\FormRepository::class)); + $di->set('repository.form_role', $di->lazyNew(Core\Ohanzee\Repositories\Form\RoleRepository::class)); + $di->set('repository.form_contact', $di->lazyNew(Core\Ohanzee\Repositories\Form\ContactRepository::class)); + $di->set('repository.form_stats', $di->lazyNew(Core\Ohanzee\Repositories\Form\StatsRepository::class)); + + $di->set('repository.form_stage', $di->lazyNew(Core\Ohanzee\Repositories\Form\StageRepository::class)); + $di->set('repository.form_attribute', $di->lazyNew(Core\Ohanzee\Repositories\Form\AttributeRepository::class)); + $di->set('repository.layer', $di->lazyNew(Core\Ohanzee\Repositories\LayerRepository::class)); + $di->set('repository.media', $di->lazyNew(Core\Ohanzee\Repositories\MediaRepository::class)); + $di->set('repository.message', $di->lazyNew(Core\Ohanzee\Repositories\MessageRepository::class)); $di->set( 'repository.targeted_survey_state', - $di->lazyNew(V3\Repository\TargetedSurveyStateRepository::class) + $di->lazyNew(Core\Ohanzee\Repositories\TargetedSurveyStateRepository::class) ); - $di->set('repository.post', $di->lazyNew(V3\Repository\PostRepository::class)); + $di->set('repository.post', $di->lazyNew(Core\Ohanzee\Repositories\PostRepository::class)); - $di->set('repository.post_lock', $di->lazyNew(V3\Repository\Post\LockRepository::class)); - $di->set('repository.tag', $di->lazyNew(V3\Repository\TagRepository::class)); - $di->set('repository.set', $di->lazyNew(V3\Repository\SetRepository::class)); + $di->set('repository.post_lock', $di->lazyNew(Core\Ohanzee\Repositories\Post\LockRepository::class)); + $di->set('repository.tag', $di->lazyNew(Core\Ohanzee\Repositories\TagRepository::class)); + $di->set('repository.set', $di->lazyNew(Core\Ohanzee\Repositories\SetRepository::class)); $di->set('repository.savedsearch', $di->lazyNew( - V3\Repository\SetRepository::class, + Core\Ohanzee\Repositories\SetRepository::class, [], [ 'setSavedSearch' => true ] )); - $di->set('repository.user', $di->lazyNew(V3\Repository\UserRepository::class)); - $di->set('repository.user_setting', $di->lazyNew(V3\Repository\User\SettingRepository::class)); - $di->set('repository.resetpassword', $di->lazyNew(V3\Repository\ResetPasswordRepository::class)); - $di->set('repository.role', $di->lazyNew(V3\Repository\RoleRepository::class)); - $di->set('repository.notification', $di->lazyNew(V3\Repository\NotificationRepository::class)); - $di->set('repository.webhook', $di->lazyNew(V3\Repository\WebhookRepository::class)); - $di->set('repository.csv', $di->lazyNew(V3\Repository\CSVRepository::class)); + $di->set('repository.user', $di->lazyNew(Core\Ohanzee\Repositories\UserRepository::class)); + $di->set('repository.user_setting', $di->lazyNew(Core\Ohanzee\Repositories\User\SettingRepository::class)); + $di->set('repository.resetpassword', $di->lazyNew(Core\Ohanzee\Repositories\ResetPasswordRepository::class)); + $di->set('repository.role', $di->lazyNew(Core\Ohanzee\Repositories\RoleRepository::class)); + $di->set('repository.notification', $di->lazyNew(Core\Ohanzee\Repositories\NotificationRepository::class)); + $di->set('repository.webhook', $di->lazyNew(Core\Ohanzee\Repositories\WebhookRepository::class)); + $di->set('repository.csv', $di->lazyNew(Core\Ohanzee\Repositories\CSVRepository::class)); $di->set( 'repository.notification.queue', - $di->lazyNew(V3\Repository\Notification\QueueRepository::class) + $di->lazyNew(Core\Ohanzee\Repositories\Notification\QueueRepository::class) ); - $di->set('repository.webhook.job', $di->lazyNew(V3\Repository\Webhook\JobRepository::class)); - $di->set('repository.permission', $di->lazyNew(V3\Repository\PermissionRepository::class)); - $di->set('repository.posts_export', $di->lazyNew(V3\Repository\Post\ExportRepository::class)); - $di->set('repository.tos', $di->lazyNew(V3\Repository\TosRepository::class)); - $di->set('repository.export_job', $di->lazyNew(V3\Repository\ExportJobRepository::class)); - $di->params[V3\Repository\ExportJobRepository::class] = [ + $di->set('repository.webhook.job', $di->lazyNew(Core\Ohanzee\Repositories\Webhook\JobRepository::class)); + $di->set('repository.permission', $di->lazyNew(Core\Ohanzee\Repositories\PermissionRepository::class)); + $di->set('repository.posts_export', $di->lazyNew(Core\Ohanzee\Repositories\Post\ExportRepository::class)); + $di->set('repository.tos', $di->lazyNew(Core\Ohanzee\Repositories\TosRepository::class)); + $di->set('repository.export_job', $di->lazyNew(Core\Ohanzee\Repositories\ExportJobRepository::class)); + $di->params[Core\Ohanzee\Repositories\ExportJobRepository::class] = [ 'post_repo' => $di->lazyGet('repository.post') ]; - $di->set('repository.export_batch', $di->lazyNew(V3\Repository\ExportBatchRepository::class)); - $di->setters[V3\Repository\Post\ExportRepository::class]['setSetRepo'] + $di->set('repository.export_batch', $di->lazyNew(Core\Ohanzee\Repositories\ExportBatchRepository::class)); + $di->setters[Core\Ohanzee\Repositories\Post\ExportRepository::class]['setSetRepo'] = $di->lazyGet('repository.set'); - $di->setters[V3\Repository\Post\ExportRepository::class]['setTagRepo'] + $di->setters[Core\Ohanzee\Repositories\Post\ExportRepository::class]['setTagRepo'] = $di->lazyGet('repository.tag'); - $di->setters[V3\Repository\Post\ExportRepository::class]['setMessageRepo'] = + $di->setters[Core\Ohanzee\Repositories\Post\ExportRepository::class]['setMessageRepo'] = $di->lazyGet('repository.message'); - $di->setters[V3\Repository\UserRepository::class]['setHasher'] + $di->setters[Core\Ohanzee\Repositories\UserRepository::class]['setHasher'] = $di->lazyGet('tool.hasher.password'); // Repository parameters // Abstract repository parameters - $di->params[V3\Repository\EloquentRepository::class] = [ + $di->params[Core\Ohanzee\Repositories\EloquentRepository::class] = [ 'resolver' => $di->lazyGet('db.eloquent.resolver'), ]; - $di->params[V3\Repository\OhanzeeRepository::class] = [ + $di->params[Core\Ohanzee\Repositories\OhanzeeRepository::class] = [ 'resolver' => $di->lazyGet('db.ohanzee.resolver'), ]; // Config - $di->params[V3\Repository\ConfigRepository::class] = [ + $di->params[Core\Ohanzee\Repositories\ConfigRepository::class] = [ 'resolver' => $di->lazyGet('db.ohanzee.resolver'), ]; @@ -334,29 +334,29 @@ public function define(Container $di): void 'resolver' => $di->lazyGet('db.ohanzee.resolver'), ]; // Set up Json Transcode Repository Trait - $di->setters[V3\Repository\Concerns\JsonTranscode::class]['setTranscoder'] = + $di->setters[Core\Ohanzee\Repositories\Concerns\JsonTranscode::class]['setTranscoder'] = $di->lazyGet('tool.jsontranscode'); // Media repository parameters - $di->params[V3\Repository\MediaRepository::class] = [ + $di->params[Core\Ohanzee\Repositories\MediaRepository::class] = [ 'upload' => $di->lazyGet('tool.uploader'), ]; // Form Stage repository parameters - $di->params[V3\Repository\Form\StageRepository::class] = [ + $di->params[Core\Ohanzee\Repositories\Form\StageRepository::class] = [ 'form_repo' => $di->lazyGet('repository.form') ]; // Form Contact repository parameters - $di->params[V3\Repository\Form\ContactRepository::class] = [ + $di->params[Core\Ohanzee\Repositories\Form\ContactRepository::class] = [ 'form_repo' => $di->lazyGet('repository.form'), 'targeted_survey_state_repo' => $di->lazyGet('repository.targeted_survey_state'), 'message_repo' => $di->lazyGet('repository.message'), ]; - $di->setters[V3\Repository\Form\ContactRepository::class]['setEvent'] = 'FormContactEvent'; + $di->setters[Core\Ohanzee\Repositories\Form\ContactRepository::class]['setEvent'] = 'FormContactEvent'; // Form Stats repository parameters - $di->params[V3\Repository\Form\StatsRepository::class] = [ + $di->params[Core\Ohanzee\Repositories\Form\StatsRepository::class] = [ 'form_repo' => $di->lazyGet('repository.form') ]; @@ -381,7 +381,7 @@ public function define(Container $di): void $di->setters[V3\Listener\ContactListener::class]['setTargetedSurveyStateRepo'] = $di->lazyGet('repository.targeted_survey_state'); - $di->setters[V3\Repository\Form\ContactRepository::class]['setListener'] = + $di->setters[Core\Ohanzee\Repositories\Form\ContactRepository::class]['setListener'] = $di->lazyNew(V3\Listener\ContactListener::class); $di->setters[V3\Validator\Form\Contact\Create::class]['setFormRepo'] = @@ -394,13 +394,13 @@ public function define(Container $di): void // Form Attribute repository parameters - $di->params[V3\Repository\Form\AttributeRepository::class] = [ + $di->params[Core\Ohanzee\Repositories\Form\AttributeRepository::class] = [ 'form_stage_repo' => $di->lazyGet('repository.form_stage'), 'form_repo' => $di->lazyGet('repository.form') ]; // Post repository parameters - $di->params[V3\Repository\PostRepository::class] = [ + $di->params[Core\Ohanzee\Repositories\PostRepository::class] = [ 'form_attribute_repo' => $di->lazyGet('repository.form_attribute'), 'form_stage_repo' => $di->lazyGet('repository.form_stage'), 'form_repo' => $di->lazyGet('repository.form'), @@ -410,30 +410,30 @@ public function define(Container $di): void 'bounding_box_factory' => $di->newFactory(\Ushahidi\Core\Tool\BoundingBox::class) ]; - $di->set('repository.post.datetime', $di->lazyNew(V3\Repository\Post\DatetimeRepository::class)); - $di->set('repository.post.decimal', $di->lazyNew(V3\Repository\Post\DecimalRepository::class)); - $di->set('repository.post.geometry', $di->lazyNew(V3\Repository\Post\GeometryRepository::class)); - $di->set('repository.post.int', $di->lazyNew(V3\Repository\Post\IntegerRepository::class)); - $di->set('repository.post.point', $di->lazyNew(V3\Repository\Post\PointRepository::class)); - $di->set('repository.post.relation', $di->lazyNew(V3\Repository\Post\RelationRepository::class)); - $di->set('repository.post.text', $di->lazyNew(V3\Repository\Post\TextRepository::class)); + $di->set('repository.post.datetime', $di->lazyNew(Core\Ohanzee\Repositories\Post\DatetimeRepository::class)); + $di->set('repository.post.decimal', $di->lazyNew(Core\Ohanzee\Repositories\Post\DecimalRepository::class)); + $di->set('repository.post.geometry', $di->lazyNew(Core\Ohanzee\Repositories\Post\GeometryRepository::class)); + $di->set('repository.post.int', $di->lazyNew(Core\Ohanzee\Repositories\Post\IntegerRepository::class)); + $di->set('repository.post.point', $di->lazyNew(Core\Ohanzee\Repositories\Post\PointRepository::class)); + $di->set('repository.post.relation', $di->lazyNew(Core\Ohanzee\Repositories\Post\RelationRepository::class)); + $di->set('repository.post.text', $di->lazyNew(Core\Ohanzee\Repositories\Post\TextRepository::class)); $di->set( 'repository.post.description', - $di->lazyNew(V3\Repository\Post\DescriptionRepository::class) + $di->lazyNew(Core\Ohanzee\Repositories\Post\DescriptionRepository::class) ); - $di->set('repository.post.varchar', $di->lazyNew(V3\Repository\Post\VarcharRepository::class)); - $di->set('repository.post.markdown', $di->lazyNew(V3\Repository\Post\MarkdownRepository::class)); - $di->set('repository.post.title', $di->lazyNew(V3\Repository\Post\TitleRepository::class)); - $di->set('repository.post.media', $di->lazyNew(V3\Repository\Post\MediaRepository::class)); - $di->set('repository.post.tags', $di->lazyNew(V3\Repository\Post\TagsRepository::class)); + $di->set('repository.post.varchar', $di->lazyNew(Core\Ohanzee\Repositories\Post\VarcharRepository::class)); + $di->set('repository.post.markdown', $di->lazyNew(Core\Ohanzee\Repositories\Post\MarkdownRepository::class)); + $di->set('repository.post.title', $di->lazyNew(Core\Ohanzee\Repositories\Post\TitleRepository::class)); + $di->set('repository.post.media', $di->lazyNew(Core\Ohanzee\Repositories\Post\MediaRepository::class)); + $di->set('repository.post.tags', $di->lazyNew(Core\Ohanzee\Repositories\Post\TagsRepository::class)); - $di->params[V3\Repository\Post\TagsRepository::class] = [ + $di->params[Core\Ohanzee\Repositories\Post\TagsRepository::class] = [ 'tag_repo' => $di->lazyGet('repository.tag') ]; // The post value repo factory - $di->set('repository.post_value_factory', $di->lazyNew(V3\Repository\Post\ValueFactory::class)); - $di->params[V3\Repository\Post\ValueFactory::class] = [ + $di->set('repository.post_value_factory', $di->lazyNew(Core\Ohanzee\Repositories\Post\ValueFactory::class)); + $di->params[Core\Ohanzee\Repositories\Post\ValueFactory::class] = [ // a map of attribute types to repositories 'map' => [ 'datetime' => $di->lazyGet('repository.post.datetime'), @@ -452,7 +452,7 @@ public function define(Container $di): void ], ]; - $di->params[V3\Repository\Post\PointRepository::class] = [ + $di->params[Core\Ohanzee\Repositories\Post\PointRepository::class] = [ 'decoder' => $di->lazyNew('Symm\Gisconverter\Decoders\WKT') ]; @@ -646,9 +646,9 @@ public function define(Container $di): void $di->lazyGet('repository.post'); // Event listener for the Set repo - $di->setters[V3\Repository\SetRepository::class]['setEvent'] = 'PostSetEvent'; + $di->setters[Core\Ohanzee\Repositories\SetRepository::class]['setEvent'] = 'PostSetEvent'; - $di->setters[V3\Repository\SetRepository::class]['setListener'] = + $di->setters[Core\Ohanzee\Repositories\SetRepository::class]['setListener'] = $di->lazyNew(V3\Listener\PostSetListener::class); // NotificationQueue repo for Set listener @@ -656,8 +656,8 @@ public function define(Container $di): void $di->lazyGet('repository.notification.queue'); // Event listener for the Post repo - $di->setters[V3\Repository\PostRepository::class]['setEvent'] = 'PostCreateEvent'; - $di->setters[V3\Repository\PostRepository::class]['setListener'] = + $di->setters[Core\Ohanzee\Repositories\PostRepository::class]['setEvent'] = 'PostCreateEvent'; + $di->setters[Core\Ohanzee\Repositories\PostRepository::class]['setListener'] = $di->lazyNew(V3\Listener\PostListener::class); // WebhookJob repo for Post listener @@ -669,22 +669,22 @@ public function define(Container $di): void $di->lazyGet('repository.webhook'); // Add Intercom Listener to Config - $di->setters[V3\Repository\ConfigRepository::class]['setEvent'] = 'ConfigUpdateEvent'; - $di->setters[V3\Repository\ConfigRepository::class]['setListener'] = + $di->setters[Core\Ohanzee\Repositories\ConfigRepository::class]['setEvent'] = 'ConfigUpdateEvent'; + $di->setters[Core\Ohanzee\Repositories\ConfigRepository::class]['setListener'] = $di->lazyNew(V3\Listener\IntercomCompanyListener::class); // Add Intercom Listener to Form - $di->setters[V3\Repository\FormRepository::class]['setEvent'] = 'FormUpdateEvent'; - $di->setters[V3\Repository\FormRepository::class]['setListener'] = + $di->setters[Core\Ohanzee\Repositories\FormRepository::class]['setEvent'] = 'FormUpdateEvent'; + $di->setters[Core\Ohanzee\Repositories\FormRepository::class]['setListener'] = $di->lazyNew(V3\Listener\IntercomCompanyListener::class); // Add Intercom Listener to User - $di->setters[V3\Repository\UserRepository::class]['setEvent'] = 'UserGetAllEvent'; - $di->setters[V3\Repository\UserRepository::class]['setListener'] = + $di->setters[Core\Ohanzee\Repositories\UserRepository::class]['setEvent'] = 'UserGetAllEvent'; + $di->setters[Core\Ohanzee\Repositories\UserRepository::class]['setListener'] = $di->lazyNew(V3\Listener\IntercomAdminListener::class); // Add Lock Listener - $di->setters[V3\Repository\Post\LockRepository::class]['setEvent'] = 'LockBroken'; + $di->setters[Core\Ohanzee\Repositories\Post\LockRepository::class]['setEvent'] = 'LockBroken'; $di->setters[Core\Usecase\Post\ImportPost::class]['setEvent'] = 'ImportPosts'; $di->setters[Core\Usecase\Post\ImportPost::class]['setListener'] = @@ -700,7 +700,7 @@ public function define(Container $di): void $di->lazyGet('authorizer.hxl'); // hxl meta_data - $di->set('repository.hxl_meta_data', $di->lazyNew(V3\Repository\HXL\HXLMetadataRepository::class)); + $di->set('repository.hxl_meta_data', $di->lazyNew(Core\Ohanzee\Repositories\HXL\HXLMetadataRepository::class)); $di->set('formatter.entity.hxl_meta_data', $di->lazyNew(V3\Formatter\HXL\HXLMetadata::class)); $di->set( 'authorizer.hxl.meta_data', @@ -771,19 +771,19 @@ public function define(Container $di): void $di->set( 'repository.form_attribute_hxl_attribute_tag', - $di->lazyNew(V3\Repository\HXL\HXLFormAttributeHXLAttributeTagRepository::class) + $di->lazyNew(Core\Ohanzee\Repositories\HXL\HXLFormAttributeHXLAttributeTagRepository::class) ); $di->setters[Core\Usecase\Post\ExportPost::class]['setFormAttributeRepository'] = $di->lazyGet('repository.form_attribute'); // hxl attributes - $di->set('repository.hxl_attribute', $di->lazyNew(V3\Repository\HXL\HXLAttributeRepository::class)); + $di->set('repository.hxl_attribute', $di->lazyNew(Core\Ohanzee\Repositories\HXL\HXLAttributeRepository::class)); $di->params[\Ushahidi\Modules\V3\Factory\RepositoryFactory::class]['map']['hxl_attributess'] = $di->lazyGet('repository.hxl_attribute'); // hxl licenses - $di->set('repository.hxl_license', $di->lazyNew(V3\Repository\HXL\HXLLicenseRepository::class)); + $di->set('repository.hxl_license', $di->lazyNew(Core\Ohanzee\Repositories\HXL\HXLLicenseRepository::class)); $di->set('formatter.entity.hxl_license', $di->lazyNew(V3\Formatter\HXL\HXLLicense::class)); @@ -797,7 +797,7 @@ public function define(Container $di): void $di->lazyGet("authorizer.hxl"); // hxl tags - $di->set('repository.hxl_tag', $di->lazyNew(V3\Repository\HXL\HXLTagRepository::class)); + $di->set('repository.hxl_tag', $di->lazyNew(Core\Ohanzee\Repositories\HXL\HXLTagRepository::class)); $di->set('formatter.entity.hxl_tag', $di->lazyNew(V3\Formatter\HXL\HXLTag::class)); $di->params[\Ushahidi\Modules\V3\Factory\AuthorizerFactory::class]['map']['hxl_tags'] = $di->lazyGet('authorizer.hxl'); @@ -927,7 +927,7 @@ public function define(Container $di): void $di->set('authorizer.country_code', $di->lazyNew(\Ushahidi\Core\Tool\Authorizer\CountryCodeAuthorizer::class)); //FIXME - $di->set('repository.hxl_organisations', $di->lazyNew(V3\Repository\HXL\HXLTagRepository::class)); + $di->set('repository.hxl_organisations', $di->lazyNew(Core\Ohanzee\Repositories\HXL\HXLTagRepository::class)); // Set up config bindings diff --git a/src/Ushahidi/Modules/V3/Jobs/ImportMediaJob.php b/src/Ushahidi/Modules/V3/Jobs/ImportMediaJob.php index fb91c9a65b..df72c2b9cf 100644 --- a/src/Ushahidi/Modules/V3/Jobs/ImportMediaJob.php +++ b/src/Ushahidi/Modules/V3/Jobs/ImportMediaJob.php @@ -8,7 +8,7 @@ use Ushahidi\Core\Tool\UploadData; use Illuminate\Support\Facades\Storage; use Ushahidi\Multisite\MultisiteManager; -use Ushahidi\Modules\V3\Repository\MediaRepository; +use Ushahidi\Core\Ohanzee\Repositories\MediaRepository; class ImportMediaJob extends Job { diff --git a/src/Ushahidi/Modules/V3/ServiceProvider.php b/src/Ushahidi/Modules/V3/ServiceProvider.php index ea1717eb49..b27ecc275d 100644 --- a/src/Ushahidi/Modules/V3/ServiceProvider.php +++ b/src/Ushahidi/Modules/V3/ServiceProvider.php @@ -7,7 +7,7 @@ use Illuminate\Support\ServiceProvider as BaseServiceProvider; use Ushahidi\Modules\V3\Console; use Ushahidi\Modules\V3\Factory\UsecaseFactory; -use Ushahidi\Modules\V3\Repository\TosRepository; +use Ushahidi\Core\Ohanzee\Repositories\TosRepository; use Ushahidi\Modules\V5\Http\Middleware\V5GlobalScopes; use Ushahidi\Core\Tool\Verifier; use Ushahidi\Core\Usecase\User\LoginUser; diff --git a/src/Ushahidi/Modules/V3/Validator/CSV/Update.php b/src/Ushahidi/Modules/V3/Validator/CSV/Update.php index b4cf30591a..a455cd9857 100644 --- a/src/Ushahidi/Modules/V3/Validator/CSV/Update.php +++ b/src/Ushahidi/Modules/V3/Validator/CSV/Update.php @@ -11,7 +11,7 @@ namespace Ushahidi\Modules\V3\Validator\CSV; -use Ushahidi\Modules\V3\Repository\FormRepository; +use Ushahidi\Core\Ohanzee\Repositories\FormRepository; use Ushahidi\Modules\V3\Validator\LegacyValidator; class Update extends LegacyValidator diff --git a/src/Ushahidi/Modules/V3/Validator/Post/Create.php b/src/Ushahidi/Modules/V3/Validator/Post/Create.php index d24e012476..419ff49a2d 100644 --- a/src/Ushahidi/Modules/V3/Validator/Post/Create.php +++ b/src/Ushahidi/Modules/V3/Validator/Post/Create.php @@ -26,7 +26,7 @@ use Ushahidi\Contracts\Repository\Usecase\UpdatePostRepository; use Ushahidi\Core\Entity\FormAttributeRepository; use Ushahidi\Contracts\Repository\Usecase\UpdatePostTagRepository; -use Ushahidi\Modules\V3\Repository\Post\ValueFactory as PostValueFactory; +use Ushahidi\Core\Ohanzee\Repositories\Post\ValueFactory as PostValueFactory; class Create extends LegacyValidator { diff --git a/src/Ushahidi/Modules/V5/Models/PostTag.php b/src/Ushahidi/Modules/V5/Models/PostTag.php index 1d428cb523..333b427fb6 100644 --- a/src/Ushahidi/Modules/V5/Models/PostTag.php +++ b/src/Ushahidi/Modules/V5/Models/PostTag.php @@ -7,7 +7,6 @@ use Illuminate\Support\Facades\Validator; use Illuminate\Support\Str; use Illuminate\Validation\Rule; -use Ushahidi\Modules\V3\Repository\FormRepository; use Ushahidi\Modules\V3\Validator\LegacyValidator; use Ushahidi\Core\Entity\Permission; use Ushahidi\Core\Tool\Permissions\InteractsWithFormPermissions; diff --git a/tests/Unit/Modules/V3/Repository/ContactRepositoryTest.php b/tests/Unit/Core/Ohanzee/Repositories/ContactRepositoryTest.php similarity index 96% rename from tests/Unit/Modules/V3/Repository/ContactRepositoryTest.php rename to tests/Unit/Core/Ohanzee/Repositories/ContactRepositoryTest.php index 50a9dea165..c73fe875f3 100644 --- a/tests/Unit/Modules/V3/Repository/ContactRepositoryTest.php +++ b/tests/Unit/Core/Ohanzee/Repositories/ContactRepositoryTest.php @@ -8,7 +8,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Tests\Unit\Modules\V3\Repository; +namespace Ushahidi\Tests\Unit\Core\Ohanzee\Repositories; use Ushahidi\Core\Entity\Contact; use Ushahidi\Tests\TestCase; diff --git a/tests/Unit/Modules/V3/Repository/MessageRepositoryTest.php b/tests/Unit/Core/Ohanzee/Repositories/MessageRepositoryTest.php similarity index 96% rename from tests/Unit/Modules/V3/Repository/MessageRepositoryTest.php rename to tests/Unit/Core/Ohanzee/Repositories/MessageRepositoryTest.php index f809c916ac..ebf3e99ac4 100644 --- a/tests/Unit/Modules/V3/Repository/MessageRepositoryTest.php +++ b/tests/Unit/Core/Ohanzee/Repositories/MessageRepositoryTest.php @@ -9,9 +9,9 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Tests\Unit\Modules\V3\Repository; +namespace Ushahidi\Tests\Unit\Core\Ohanzee\Repositories; -use Ushahidi\Modules\V3\Repository\MessageRepository; +use Ushahidi\Core\Ohanzee\Repositories\MessageRepository; use Ushahidi\Core\Entity\Message; use Ushahidi\Tests\TestCase; use Ushahidi\Tests\DatabaseTransactions; diff --git a/tests/Unit/Modules/V3/Repository/PostRepositoryTest.php b/tests/Unit/Core/Ohanzee/Repositories/PostRepositoryTest.php similarity index 98% rename from tests/Unit/Modules/V3/Repository/PostRepositoryTest.php rename to tests/Unit/Core/Ohanzee/Repositories/PostRepositoryTest.php index 6d468fc904..648fba3fbc 100644 --- a/tests/Unit/Modules/V3/Repository/PostRepositoryTest.php +++ b/tests/Unit/Core/Ohanzee/Repositories/PostRepositoryTest.php @@ -1,6 +1,6 @@ * @copyright 2014 Ushahidi * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Tests\Unit\Modules\V3\Repository; +namespace Ushahidi\Tests\Unit\Core\Ohanzee\Repositories; use Ushahidi\Core\Entity\PostValue; -use Ushahidi\Modules\V3\Repository\Post\ValueRepository; +use Ushahidi\Core\Ohanzee\Repositories\Post\ValueRepository; /** * @backupGlobals disabled diff --git a/tests/Unit/Modules/V3/Repository/TagRepositoryTest.php b/tests/Unit/Core/Ohanzee/Repositories/TagRepositoryTest.php similarity index 92% rename from tests/Unit/Modules/V3/Repository/TagRepositoryTest.php rename to tests/Unit/Core/Ohanzee/Repositories/TagRepositoryTest.php index 67f3744457..de5297bdbe 100644 --- a/tests/Unit/Modules/V3/Repository/TagRepositoryTest.php +++ b/tests/Unit/Core/Ohanzee/Repositories/TagRepositoryTest.php @@ -1,12 +1,12 @@ shouldReceive('setTimeouts')->once(); $mockResponse = M::mock(\Abraham\TwitterOAuth\Response::class); - $mockRepo = M::mock(\Ushahidi\Modules\V3\Repository\ConfigRepository::class); + $mockRepo = M::mock(\Ushahidi\Core\Ohanzee\Repositories\ConfigRepository::class); $twitter = new Twitter( [ @@ -85,7 +85,7 @@ public function testSendFailed() $mockTwitterOAuth = M::mock(\Abraham\TwitterOAuth\TwitterOAuth::class); $mockTwitterOAuth->shouldReceive('setTimeouts')->once(); $mockResponse = M::mock(\Abraham\TwitterOAuth\Response::class); - $mockRepo = M::mock(\Ushahidi\Modules\V3\Repository\ConfigRepository::class); + $mockRepo = M::mock(\Ushahidi\Core\Ohanzee\Repositories\ConfigRepository::class); $twitter = new Twitter( [ @@ -140,7 +140,7 @@ public function testFetch() $mockTwitterOAuth = M::mock(\Abraham\TwitterOAuth\TwitterOAuth::class); $mockTwitterOAuth->shouldReceive('setTimeouts')->once(); $mockResponse = M::mock(\Abraham\TwitterOAuth\Response::class); - $mockRepo = M::mock(\Ushahidi\Modules\V3\Repository\ConfigRepository::class); + $mockRepo = M::mock(\Ushahidi\Core\Ohanzee\Repositories\ConfigRepository::class); $twitter = new Twitter( [ From 487564ed32508e7c04e1a5383669759da41fb28f Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Tue, 28 Mar 2023 22:55:10 +0100 Subject: [PATCH 13/75] chore: some modifications to classes --- app/Auth/GenericUser.php | 6 --- src/Ushahidi/Contracts/Authorizer.php | 2 +- src/Ushahidi/Contracts/FileReader.php | 27 ----------- src/Ushahidi/Contracts/MappingTransformer.php | 23 --------- src/Ushahidi/Contracts/Reader.php | 20 -------- src/Ushahidi/Contracts/ValidationEngine.php | 4 +- src/Ushahidi/Contracts/Validator.php | 2 +- .../Core/Concerns/EnsureUserEntity.php | 47 ------------------- src/Ushahidi/Core/Tool/FileReader/CSV.php | 3 +- .../Core/Tool/FileReader/CSVReaderFactory.php | 2 +- src/Ushahidi/Core/Tool/Reader.php | 20 -------- src/Ushahidi/Modules/V5/Models/PostTag.php | 8 ---- 12 files changed, 6 insertions(+), 158 deletions(-) delete mode 100644 src/Ushahidi/Contracts/FileReader.php delete mode 100644 src/Ushahidi/Contracts/MappingTransformer.php delete mode 100644 src/Ushahidi/Contracts/Reader.php delete mode 100644 src/Ushahidi/Core/Concerns/EnsureUserEntity.php delete mode 100644 src/Ushahidi/Core/Tool/Reader.php diff --git a/app/Auth/GenericUser.php b/app/Auth/GenericUser.php index 7d73b60d32..cf0521d1e8 100644 --- a/app/Auth/GenericUser.php +++ b/app/Auth/GenericUser.php @@ -4,7 +4,6 @@ use Illuminate\Contracts\Auth\Authenticatable as UserContract; use Laravel\Passport\HasApiTokens; -use Ushahidi\Core\Entity\User; class GenericUser implements UserContract { @@ -135,9 +134,4 @@ public function __unset($key) { unset($this->attributes[$key]); } - - public function generateEntityFromSelf(): User - { - return new User($this->attributes); - } } diff --git a/src/Ushahidi/Contracts/Authorizer.php b/src/Ushahidi/Contracts/Authorizer.php index c0f37c437d..adb952df94 100644 --- a/src/Ushahidi/Contracts/Authorizer.php +++ b/src/Ushahidi/Contracts/Authorizer.php @@ -41,7 +41,7 @@ public function getUser(); /** * Get the userid for the current authorization context. * - * @return integer + * @return mixed */ public function getUserId(); } diff --git a/src/Ushahidi/Contracts/FileReader.php b/src/Ushahidi/Contracts/FileReader.php deleted file mode 100644 index 07f81bf77f..0000000000 --- a/src/Ushahidi/Contracts/FileReader.php +++ /dev/null @@ -1,27 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Contracts; - -interface FileReader -{ - /** - * Read a file and return a Traversable object - * - * @param \SplFileObject|string $file - * @return \Traversable - */ - public function process($file); - - public function setOffset($offset); - - public function setLimit($limit); -} diff --git a/src/Ushahidi/Contracts/MappingTransformer.php b/src/Ushahidi/Contracts/MappingTransformer.php deleted file mode 100644 index 5fa5b89457..0000000000 --- a/src/Ushahidi/Contracts/MappingTransformer.php +++ /dev/null @@ -1,23 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Contracts; - -interface MappingTransformer extends Transformer -{ - public function setColumnNames(array $columnNames); - public function setMap(array $map); - public function setFixedValues(array $fixedValues); -} diff --git a/src/Ushahidi/Contracts/Reader.php b/src/Ushahidi/Contracts/Reader.php deleted file mode 100644 index 7c99a7b979..0000000000 --- a/src/Ushahidi/Contracts/Reader.php +++ /dev/null @@ -1,20 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Contracts; - -interface Reader -{ - public function fetchOne(); - - public function fetchAssoc(); -} diff --git a/src/Ushahidi/Contracts/ValidationEngine.php b/src/Ushahidi/Contracts/ValidationEngine.php index d473f31c68..a3814316a3 100644 --- a/src/Ushahidi/Contracts/ValidationEngine.php +++ b/src/Ushahidi/Contracts/ValidationEngine.php @@ -17,7 +17,7 @@ interface ValidationEngine /** * Set or reset the data to be validated * - * @param Array $data array of data in $key => $value format + * @param array $data array of data in $key => $value format */ public function setData(array $data); @@ -32,7 +32,7 @@ public function getData($key = null); /** * Set or reset the full data array to be referenced for validation * - * @param Array $data array of data in $key => $value format + * @param array $data array of data in $key => $value format */ public function setFullData(array $data); diff --git a/src/Ushahidi/Contracts/Validator.php b/src/Ushahidi/Contracts/Validator.php index 4a934be6e8..5480b206cb 100644 --- a/src/Ushahidi/Contracts/Validator.php +++ b/src/Ushahidi/Contracts/Validator.php @@ -26,7 +26,7 @@ public function check(array $data, array $fullData = []) : bool; /** * Return an array of any errors that occurred during validation * - * @return Array + * @return array */ public function errors() : array; } diff --git a/src/Ushahidi/Core/Concerns/EnsureUserEntity.php b/src/Ushahidi/Core/Concerns/EnsureUserEntity.php deleted file mode 100644 index 007cef413b..0000000000 --- a/src/Ushahidi/Core/Concerns/EnsureUserEntity.php +++ /dev/null @@ -1,47 +0,0 @@ - - * @package Ushahidi\Application - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Core\Concerns; - -use Ushahidi\Contracts\Repository\EntityGet; -use Ushahidi\Contracts\Entity; - -trait EnsureUserEntity -{ - protected $user_repo; - - public function __construct(EntityGet $user_repo) - { - $this->user_repo = $user_repo; - } - - /** - * Ensure user is a User Entity, or load it from the user repo - * @param integer|\Ushahidi\Contracts\Entity $user User id or entity object - * @return \Ushahidi\Contracts\Entity - */ - protected function ensureUserIsEntity(&$user) - { - // Check if the user is an instance of `User` - if (! $user instanceof Entity) { - // If we only have a user id, we load the full entity. - $user = $this->user_repo->get($user); - } - - return $user; - } -} diff --git a/src/Ushahidi/Core/Tool/FileReader/CSV.php b/src/Ushahidi/Core/Tool/FileReader/CSV.php index 61e2240ca7..9ed1cdad78 100644 --- a/src/Ushahidi/Core/Tool/FileReader/CSV.php +++ b/src/Ushahidi/Core/Tool/FileReader/CSV.php @@ -11,11 +11,10 @@ namespace Ushahidi\Core\Tool\FileReader; -use Ushahidi\Contracts\FileReader; use Ushahidi\Contracts\ReaderFactory; use Ushahidi\Core\Exception\ValidatorException; -class CSV implements FileReader +class CSV { protected $limit; diff --git a/src/Ushahidi/Core/Tool/FileReader/CSVReaderFactory.php b/src/Ushahidi/Core/Tool/FileReader/CSVReaderFactory.php index ee85ac7be5..ec06ad5414 100644 --- a/src/Ushahidi/Core/Tool/FileReader/CSVReaderFactory.php +++ b/src/Ushahidi/Core/Tool/FileReader/CSVReaderFactory.php @@ -11,7 +11,7 @@ namespace Ushahidi\Core\Tool\FileReader; -use Ushahidi\Core\Tool\Reader; +use League\Csv\Reader; use Ushahidi\Contracts\ReaderFactory; class CSVReaderFactory implements ReaderFactory diff --git a/src/Ushahidi/Core/Tool/Reader.php b/src/Ushahidi/Core/Tool/Reader.php deleted file mode 100644 index a25d671ef6..0000000000 --- a/src/Ushahidi/Core/Tool/Reader.php +++ /dev/null @@ -1,20 +0,0 @@ - - * @package Ushahidi\Application - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Core\Tool; - -use League\Csv\Reader as CSVReader; -use Ushahidi\Contracts\Reader as ReaderInterface; - -class Reader extends CSVReader implements ReaderInterface -{ - // intentionally left blank -} diff --git a/src/Ushahidi/Modules/V5/Models/PostTag.php b/src/Ushahidi/Modules/V5/Models/PostTag.php index 333b427fb6..8bed3ec502 100644 --- a/src/Ushahidi/Modules/V5/Models/PostTag.php +++ b/src/Ushahidi/Modules/V5/Models/PostTag.php @@ -2,14 +2,6 @@ namespace Ushahidi\Modules\V5\Models; -use Illuminate\Database\Eloquent\Model; -use Illuminate\Support\Facades\Input; -use Illuminate\Support\Facades\Validator; -use Illuminate\Support\Str; -use Illuminate\Validation\Rule; -use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Core\Entity\Permission; -use Ushahidi\Core\Tool\Permissions\InteractsWithFormPermissions; use Ushahidi\Core\Tool\Permissions\InteractsWithPostPermissions; class PostTag extends BaseModel From df963292ddaaaa0cd1a664d1aec08a55dd91f304 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Tue, 28 Mar 2023 22:56:05 +0100 Subject: [PATCH 14/75] chore: moved repositories from v3 to core and refactored dependants to use the new namespace --- src/Ushahidi/Contracts/Permission.php | 28 ---- .../Contracts/Repository/CreateRepository.php | 12 +- .../Contracts/Repository/EntityCreate.php | 1 + .../Contracts/Repository/ReadRepository.php | 3 - .../Contracts/Repository/SearchRepository.php | 21 ++- .../Usecase/CreateMessageRepository.php | 21 --- .../Usecase/DeleteTagRepository.php | 23 ---- .../Repository/Usecase/ReadTagRepository.php | 20 --- .../Repository/Usecase/SetPostRepository.php | 25 ---- .../Usecase/StatsPostRepository.php | 25 ---- .../Usecase/UpdateMessageRepository.php | 22 ---- .../Usecase/UpdatePostRepository.php | 45 ------- .../Usecase/UpdatePostTagRepository.php | 38 ------ .../Usecase/UpdatePostValueRepository.php | 38 ------ .../Usecase/UpdateTagRepository.php | 22 ---- .../Usecase/UserRegisterRepository.php | 23 ---- .../Usecase/UserResetPasswordRepository.php | 25 ---- .../Usecase/ValuesForPostRepository.php | 39 ------ src/Ushahidi/Core/BasicEntity.php | 77 ----------- src/Ushahidi/Core/Concerns/AdminAccess.php | 2 +- .../Core/Concerns/CollectionLoader.php | 40 ------ src/Ushahidi/Core/Concerns/Event.php | 2 +- src/Ushahidi/Core/Concerns/FilterRecords.php | 12 +- .../Core/Concerns/FormatRackspaceURL.php | 2 +- src/Ushahidi/Core/Concerns/PrivAccess.php | 2 +- src/Ushahidi/Core/Concerns/TransformData.php | 26 ++-- .../Repository.php} | 11 +- src/Ushahidi/Core/Entity/ApiKey.php | 36 +---- src/Ushahidi/Core/Entity/ApiKeyRepository.php | 7 + src/Ushahidi/Core/Entity/CSVRepository.php | 22 ---- src/Ushahidi/Core/Entity/Config.php | 32 +---- src/Ushahidi/Core/Entity/Contact.php | 61 +-------- .../Core/Entity/CountryCodeRepository.php | 19 --- .../Core/Entity/DataProviderRepository.php | 19 --- src/Ushahidi/Core/Entity/ExportBatch.php | 49 +------ .../Core/Entity/ExportBatchRepository.php | 4 +- src/Ushahidi/Core/Entity/ExportJob.php | 100 ++------------ .../Core/Entity/ExportJobRepository.php | 2 +- src/Ushahidi/Core/Entity/Form.php | 98 +------------- src/Ushahidi/Core/Entity/FormAttribute.php | 75 +---------- .../Core/Entity/FormAttributeRepository.php | 12 +- .../Core/Entity/FormRoleRepository.php | 40 ------ src/Ushahidi/Core/Entity/FormStage.php | 48 +------ .../Core/Entity/FormStageRepository.php | 11 +- .../Core/Entity/FormStatsRepository.php | 21 --- src/Ushahidi/Core/Entity/HXL/HXLAttribute.php | 2 +- .../HXL/HXLFormAttributeHXLAttributeTag.php | 2 +- src/Ushahidi/Core/Entity/HXL/HXLLicense.php | 2 +- src/Ushahidi/Core/Entity/HXL/HXLMetadata.php | 2 +- src/Ushahidi/Core/Entity/HXL/HXLTag.php | 2 +- src/Ushahidi/Core/Entity/Media.php | 58 +-------- src/Ushahidi/Core/Entity/Message.php | 102 ++------------- .../Core/Entity/MessageRepository.php | 29 +++-- .../Entity/NotificationQueueRepository.php | 30 ----- .../Core/Entity/NotificationRepository.php | 22 ---- src/Ushahidi/Core/Entity/Permission.php | 40 ++---- src/Ushahidi/Core/Entity/Post.php | 113 +--------------- .../Core/Entity/PostExportRepository.php | 25 ---- .../Core/Entity/PostLockRepository.php | 2 + src/Ushahidi/Core/Entity/PostRepository.php | 43 +++++- src/Ushahidi/Core/Entity/PostValue.php | 37 +----- .../Core/Entity/PostValueRepository.php | 38 ------ .../Core/Entity/ReadTosRepository.php | 21 --- src/Ushahidi/Core/Entity/Role.php | 44 +------ src/Ushahidi/Core/Entity/RoleRepository.php | 12 +- src/Ushahidi/Core/Entity/Set.php | 55 +------- src/Ushahidi/Core/Entity/Tag.php | 71 +--------- src/Ushahidi/Core/Entity/TagRepository.php | 20 +++ src/Ushahidi/Core/Entity/User.php | 50 +------ src/Ushahidi/Core/Entity/UserRepository.php | 27 ++-- src/Ushahidi/Core/Entity/UserSetting.php | 32 +---- .../Core/Entity/UserSettingRepository.php | 4 +- .../Core/{ => Ohanzee}/DynamicEntity.php | 13 +- src/Ushahidi/Core/Ohanzee/Entities/ApiKey.php | 41 ++++++ .../Core/{Entity => Ohanzee/Entities}/CSV.php | 4 +- src/Ushahidi/Core/Ohanzee/Entities/Config.php | 36 +++++ .../Core/Ohanzee/Entities/Contact.php | 65 +++++++++ .../Entities}/CountryCode.php | 7 +- .../Entities}/DataProvider.php | 7 +- .../Core/Ohanzee/Entities/ExportBatch.php | 52 ++++++++ .../Core/Ohanzee/Entities/ExportJob.php | 92 +++++++++++++ src/Ushahidi/Core/Ohanzee/Entities/Form.php | 102 +++++++++++++++ .../Core/Ohanzee/Entities/FormAttribute.php | 85 ++++++++++++ .../Entities}/FormContact.php | 4 +- .../{Entity => Ohanzee/Entities}/FormRole.php | 4 +- .../Core/Ohanzee/Entities/FormStage.php | 51 ++++++++ .../Entities}/FormStats.php | 4 +- .../{Entity => Ohanzee/Entities}/Layer.php | 4 +- src/Ushahidi/Core/Ohanzee/Entities/Media.php | 63 +++++++++ .../Core/Ohanzee/Entities/Message.php | 94 +++++++++++++ .../Entities}/Notification.php | 4 +- .../Entities}/NotificationQueue.php | 4 +- .../Core/Ohanzee/Entities/Permission.php | 44 +++++++ src/Ushahidi/Core/Ohanzee/Entities/Post.php | 123 ++++++++++++++++++ .../{Entity => Ohanzee/Entities}/PostLock.php | 4 +- .../Core/Ohanzee/Entities/PostValue.php | 49 +++++++ .../Entities}/PostValueMedia.php | 4 +- src/Ushahidi/Core/Ohanzee/Entities/Role.php | 55 ++++++++ .../Entities}/SavedSearch.php | 2 +- src/Ushahidi/Core/Ohanzee/Entities/Set.php | 68 ++++++++++ src/Ushahidi/Core/Ohanzee/Entities/Tag.php | 85 ++++++++++++ .../Entities}/TargetedSurveyState.php | 6 +- .../Core/{Entity => Ohanzee/Entities}/Tos.php | 4 +- src/Ushahidi/Core/Ohanzee/Entities/User.php | 66 ++++++++++ .../Core/Ohanzee/Entities/UserSetting.php | 43 ++++++ .../{Entity => Ohanzee/Entities}/Webhook.php | 4 +- .../Entities}/WebhookJob.php | 4 +- .../Ohanzee/Repositories/ApiKeyRepository.php | 2 +- .../Ohanzee/Repositories/CSVRepository.php | 6 +- .../Repositories/Concerns/JsonTranscode.php | 2 +- .../Ohanzee/Repositories/ConfigRepository.php | 4 +- .../Repositories/ContactRepository.php | 2 +- .../Repositories/CountryCodeRepository.php | 6 +- .../Repositories/DataProviderRepository.php | 17 +-- .../Repositories/EloquentRepository.php | 7 +- .../Repositories/ExportBatchRepository.php | 22 +--- .../Repositories/ExportJobRepository.php | 4 +- .../Repositories/Form/AttributeRepository.php | 2 +- .../Repositories/Form/ContactRepository.php | 25 ++-- .../Repositories/Form/RoleRepository.php | 9 +- .../Repositories/Form/StageRepository.php | 7 +- .../Repositories/Form/StatsRepository.php | 16 +-- .../Ohanzee/Repositories/FormRepository.php | 2 +- .../Repositories/HXL/HXLTagRepository.php | 2 +- .../Ohanzee/Repositories/LayerRepository.php | 2 +- .../Ohanzee/Repositories/MediaRepository.php | 4 +- .../Repositories/MessageRepository.php | 39 +++--- .../Notification/QueueRepository.php | 8 +- .../Repositories/NotificationRepository.php | 17 ++- .../Repositories/OhanzeeRepository.php | 86 +++++++----- .../Repositories/PermissionRepository.php | 2 +- .../Repositories/Post/DatetimeRepository.php | 2 +- .../Repositories/Post/ExportRepository.php | 5 +- .../Repositories/Post/GeometryRepository.php | 2 - .../Repositories/Post/IntegerRepository.php | 2 +- .../Repositories/Post/LockRepository.php | 11 +- .../Repositories/Post/MediaRepository.php | 4 +- .../Repositories/Post/PointRepository.php | 4 +- .../Repositories/Post/TagsRepository.php | 4 +- .../Repositories/Post/ValueFactory.php | 2 +- .../Ohanzee/Repositories/Post/ValueProxy.php | 4 +- .../Repositories/Post/ValueRepository.php | 12 +- .../Ohanzee/Repositories/PostRepository.php | 31 ++--- .../Ohanzee/Repositories/RoleRepository.php | 5 +- .../Ohanzee/Repositories/SetRepository.php | 8 +- .../Ohanzee/Repositories/TagRepository.php | 12 +- .../TargetedSurveyStateRepository.php | 16 +-- .../Ohanzee/Repositories/TosRepository.php | 5 +- .../Repositories/User/SettingRepository.php | 4 +- .../Ohanzee/Repositories/UserRepository.php | 15 +-- .../Repositories/Webhook/JobRepository.php | 4 +- .../Repositories/WebhookRepository.php | 5 +- .../{Concerns => Ohanzee}/StatefulData.php | 9 +- .../Core/{ => Ohanzee}/StaticEntity.php | 11 +- src/Ushahidi/Core/Tool/Acl.php | 14 +- .../Core/Tool/Authorizer/ApiKeyAuthorizer.php | 2 +- .../Core/Tool/Authorizer/CSVAuthorizer.php | 2 +- .../Core/Tool/Authorizer/ConfigAuthorizer.php | 2 +- .../Tool/Authorizer/CountryCodeAuthorizer.php | 2 +- .../Authorizer/DataProviderAuthorizer.php | 2 +- .../Tool/Authorizer/ExportJobAuthorizer.php | 2 +- .../Core/Tool/Authorizer/FormAuthorizer.php | 2 +- .../Tool/Authorizer/FormStatsAuthorizer.php | 2 +- .../Core/Tool/Authorizer/HXLAuthorizer.php | 2 +- .../Tool/Authorizer/MessageAuthorizer.php | 2 +- .../Core/Tool/Authorizer/PostAuthorizer.php | 2 +- .../Core/Tool/Authorizer/SetAuthorizer.php | 5 +- .../Core/Tool/Authorizer/TagAuthorizer.php | 2 +- .../Core/Tool/Authorizer/UserAuthorizer.php | 2 +- src/Ushahidi/Core/Tool/Features.php | 2 + .../Core/Tool/Permissions/FormPermissions.php | 2 +- .../Core/Tool/Permissions/PostPermissions.php | 2 +- .../Usecase/Concerns/VerifyStageLoaded.php | 6 +- src/Ushahidi/Core/Usecase/CreateUsecase.php | 2 +- .../Core/Usecase/HXL/SendHXLUsecase.php | 14 +- src/Ushahidi/Core/Usecase/OptionsUsecase.php | 2 +- .../Core/Usecase/Post/DeletePostLock.php | 10 +- src/Ushahidi/Core/Usecase/Post/ImportPost.php | 4 +- .../Core/Usecase/User/GetResetToken.php | 7 +- .../Core/Usecase/User/ResetUserPassword.php | 4 +- .../Modules/V2/Jobs/CreateDefaultSurvey.php | 7 +- .../Modules/V2/Jobs/ImportCategories.php | 2 +- .../Modules/V2/Jobs/ImportIncidents.php | 2 +- .../Modules/V2/Jobs/ImportMessages.php | 2 - .../Modules/V2/Jobs/ImportReporters.php | 2 +- src/Ushahidi/Modules/V2/Jobs/ImportUsers.php | 2 +- .../Modules/V2/Mappers/CategoryTagMapper.php | 3 +- .../V2/Mappers/FormFieldAttributeMapper.php | 10 +- .../Modules/V2/Mappers/FormMapper.php | 4 +- .../Modules/V2/Mappers/IncidentPostMapper.php | 4 +- .../Modules/V2/Mappers/MessageMapper.php | 6 +- .../Modules/V2/Mappers/ReporterUserMapper.php | 7 +- .../Modules/V2/Mappers/UserMapper.php | 2 +- .../Modules/V3/ContainerConfig/AppConfig.php | 8 +- .../V3/Jobs/CombineExportedPostBatchesJob.php | 5 +- .../Concerns/RecordsExportJobFailure.php | 4 +- .../Modules/V3/Jobs/ExportPostsBatchJob.php | 3 +- .../Modules/V3/Jobs/ExportPostsJob.php | 5 +- .../Modules/V3/Listener/ContactListener.php | 4 +- .../Listener/HandleTargetedSurveyResponse.php | 4 +- src/Ushahidi/Modules/V3/Listener/Import.php | 6 +- .../Modules/V3/Listener/PostSetListener.php | 4 +- .../V3/Listener/SendToHDXEventListener.php | 14 -- .../V3/Transformer/CSVPostTransformer.php | 4 +- .../V3/Validator/Form/Contact/Update.php | 14 -- .../Modules/V3/Validator/LegacyValidator.php | 10 +- .../Modules/V3/Validator/Message/Create.php | 11 +- .../Modules/V3/Validator/Message/Receive.php | 4 +- .../Modules/V3/Validator/Message/Update.php | 4 +- .../Modules/V3/Validator/Post/Create.php | 103 +++++++++------ .../Modules/V3/Validator/Tag/Update.php | 10 +- .../Modules/V3/Validator/User/Register.php | 4 +- .../V5/Http/Resources/PostResource.php | 2 +- src/Ushahidi/Modules/V5/Models/Survey.php | 2 +- .../Modules/V5/Policies/CategoryPolicy.php | 14 +- .../Modules/V5/Policies/CountryCodePolicy.php | 2 +- .../Modules/V5/Policies/PostPolicy.php | 22 ++-- .../Modules/V5/Policies/SurveyPolicy.php | 16 +-- .../Modules/V5/Policies/UserPolicy.php | 4 +- .../Modules/V5/Repository/UserRepository.php | 46 ------- tests/Unit/Core/Entity/MockPostEntity.php | 4 +- .../Entities/MockPost.php} | 8 +- .../Repositories/ContactRepositoryTest.php | 2 +- .../Repositories/MessageRepositoryTest.php | 3 +- .../Repositories/PostRepositoryTest.php | 14 +- .../Repositories/TagRepositoryTest.php | 4 +- .../Repositories/UserRepositoryTest.php | 8 +- .../{Traits => Ohanzee}/StatefulDataTest.php | 6 +- .../Core/Usecase/ExportJob/PostCountTest.php | 4 +- tests/Unit/Core/Usecase/Post/ExportTest.php | 10 +- .../Unit/Core/Usecase/ReceiveMessageTest.php | 14 +- .../Console/IncomingCommandTest.php | 8 +- .../DataSource/Console/ListCommandTest.php | 6 +- .../Console/OutgoingCommandTest.php | 6 +- .../Unit/DataSource/DataSourceManagerTest.php | 8 +- .../Unit/DataSource/DataSourceStorageTest.php | 10 +- .../Unit/DataSource/TwitterDataSourceTest.php | 10 +- tests/Unit/Modules/V2/ImporterTest.php | 1 - .../Mappers/FormFieldAttributeMapperTest.php | 16 +-- .../V2/Mappers/IncidentPostMapperTest.php | 16 +-- .../Modules/V2/Mappers/MessageMapperTest.php | 12 +- .../CombineExportedPostBatchesJobTest.php | 6 +- .../Modules/V3/Jobs/ExportPostsJobTest.php | 2 +- .../V3/Listener/CreatePostFromMessageTest.php | 4 +- .../HandleTargetedSurveyResponseTest.php | 7 +- tests/Unit/Multisite/SiteTest.php | 6 +- 246 files changed, 2017 insertions(+), 2573 deletions(-) delete mode 100644 src/Ushahidi/Contracts/Permission.php delete mode 100644 src/Ushahidi/Contracts/Repository/Usecase/CreateMessageRepository.php delete mode 100644 src/Ushahidi/Contracts/Repository/Usecase/DeleteTagRepository.php delete mode 100644 src/Ushahidi/Contracts/Repository/Usecase/ReadTagRepository.php delete mode 100644 src/Ushahidi/Contracts/Repository/Usecase/SetPostRepository.php delete mode 100644 src/Ushahidi/Contracts/Repository/Usecase/StatsPostRepository.php delete mode 100644 src/Ushahidi/Contracts/Repository/Usecase/UpdateMessageRepository.php delete mode 100644 src/Ushahidi/Contracts/Repository/Usecase/UpdatePostRepository.php delete mode 100644 src/Ushahidi/Contracts/Repository/Usecase/UpdatePostTagRepository.php delete mode 100644 src/Ushahidi/Contracts/Repository/Usecase/UpdatePostValueRepository.php delete mode 100644 src/Ushahidi/Contracts/Repository/Usecase/UpdateTagRepository.php delete mode 100644 src/Ushahidi/Contracts/Repository/Usecase/UserRegisterRepository.php delete mode 100644 src/Ushahidi/Contracts/Repository/Usecase/UserResetPasswordRepository.php delete mode 100644 src/Ushahidi/Contracts/Repository/Usecase/ValuesForPostRepository.php delete mode 100644 src/Ushahidi/Core/BasicEntity.php delete mode 100644 src/Ushahidi/Core/Concerns/CollectionLoader.php rename src/Ushahidi/Core/{EloquentRepository.php => Eloquent/Repository.php} (81%) delete mode 100644 src/Ushahidi/Core/Entity/CSVRepository.php delete mode 100644 src/Ushahidi/Core/Entity/CountryCodeRepository.php delete mode 100644 src/Ushahidi/Core/Entity/DataProviderRepository.php delete mode 100644 src/Ushahidi/Core/Entity/FormRoleRepository.php delete mode 100644 src/Ushahidi/Core/Entity/FormStatsRepository.php delete mode 100644 src/Ushahidi/Core/Entity/NotificationQueueRepository.php delete mode 100644 src/Ushahidi/Core/Entity/NotificationRepository.php delete mode 100644 src/Ushahidi/Core/Entity/PostExportRepository.php delete mode 100644 src/Ushahidi/Core/Entity/PostValueRepository.php delete mode 100644 src/Ushahidi/Core/Entity/ReadTosRepository.php rename src/Ushahidi/Core/{ => Ohanzee}/DynamicEntity.php (88%) create mode 100644 src/Ushahidi/Core/Ohanzee/Entities/ApiKey.php rename src/Ushahidi/Core/{Entity => Ohanzee/Entities}/CSV.php (94%) create mode 100644 src/Ushahidi/Core/Ohanzee/Entities/Config.php create mode 100644 src/Ushahidi/Core/Ohanzee/Entities/Contact.php rename src/Ushahidi/Core/{Entity => Ohanzee/Entities}/CountryCode.php (83%) rename src/Ushahidi/Core/{Entity => Ohanzee/Entities}/DataProvider.php (85%) create mode 100644 src/Ushahidi/Core/Ohanzee/Entities/ExportBatch.php create mode 100644 src/Ushahidi/Core/Ohanzee/Entities/ExportJob.php create mode 100644 src/Ushahidi/Core/Ohanzee/Entities/Form.php create mode 100644 src/Ushahidi/Core/Ohanzee/Entities/FormAttribute.php rename src/Ushahidi/Core/{Entity => Ohanzee/Entities}/FormContact.php (91%) rename src/Ushahidi/Core/{Entity => Ohanzee/Entities}/FormRole.php (88%) create mode 100644 src/Ushahidi/Core/Ohanzee/Entities/FormStage.php rename src/Ushahidi/Core/{Entity => Ohanzee/Entities}/FormStats.php (93%) rename src/Ushahidi/Core/{Entity => Ohanzee/Entities}/Layer.php (95%) create mode 100644 src/Ushahidi/Core/Ohanzee/Entities/Media.php create mode 100644 src/Ushahidi/Core/Ohanzee/Entities/Message.php rename src/Ushahidi/Core/{Entity => Ohanzee/Entities}/Notification.php (93%) rename src/Ushahidi/Core/{Entity => Ohanzee/Entities}/NotificationQueue.php (92%) create mode 100644 src/Ushahidi/Core/Ohanzee/Entities/Permission.php create mode 100644 src/Ushahidi/Core/Ohanzee/Entities/Post.php rename src/Ushahidi/Core/{Entity => Ohanzee/Entities}/PostLock.php (94%) create mode 100644 src/Ushahidi/Core/Ohanzee/Entities/PostValue.php rename src/Ushahidi/Core/{Entity => Ohanzee/Entities}/PostValueMedia.php (93%) create mode 100644 src/Ushahidi/Core/Ohanzee/Entities/Role.php rename src/Ushahidi/Core/{Entity => Ohanzee/Entities}/SavedSearch.php (93%) create mode 100644 src/Ushahidi/Core/Ohanzee/Entities/Set.php create mode 100644 src/Ushahidi/Core/Ohanzee/Entities/Tag.php rename src/Ushahidi/Core/{Entity => Ohanzee/Entities}/TargetedSurveyState.php (94%) rename src/Ushahidi/Core/{Entity => Ohanzee/Entities}/Tos.php (91%) create mode 100644 src/Ushahidi/Core/Ohanzee/Entities/User.php create mode 100644 src/Ushahidi/Core/Ohanzee/Entities/UserSetting.php rename src/Ushahidi/Core/{Entity => Ohanzee/Entities}/Webhook.php (96%) rename src/Ushahidi/Core/{Entity => Ohanzee/Entities}/WebhookJob.php (93%) rename src/Ushahidi/Core/{Concerns => Ohanzee}/StatefulData.php (97%) rename src/Ushahidi/Core/{ => Ohanzee}/StaticEntity.php (88%) rename src/Ushahidi/{Core => Modules/V3/Jobs}/Concerns/RecordsExportJobFailure.php (86%) delete mode 100644 src/Ushahidi/Modules/V5/Repository/UserRepository.php rename tests/Unit/Core/{Traits/MockPostData.php => Ohanzee/Entities/MockPost.php} (95%) rename tests/Unit/Core/{Traits => Ohanzee}/StatefulDataTest.php (97%) diff --git a/src/Ushahidi/Contracts/Permission.php b/src/Ushahidi/Contracts/Permission.php deleted file mode 100644 index 581a96af9f..0000000000 --- a/src/Ushahidi/Contracts/Permission.php +++ /dev/null @@ -1,28 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2022 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Contracts; - -interface Permission -{ - // FIXME: this LEGACY_DATA_IMPORT has to be removed after the prod release - const LEGACY_DATA_IMPORT = 'Bulk Data Import'; - // Standard permissions names - const DATA_IMPORT_EXPORT = 'Bulk Data Import and Export'; - const MANAGE_POSTS = 'Manage Posts'; - const MANAGE_SETS = 'Manage Collections and Saved Searches'; - const MANAGE_SETTINGS = 'Manage Settings'; - const MANAGE_USERS = 'Manage Users'; - const EDIT_OWN_POSTS = 'Edit their own posts'; - const DELETE_POSTS = 'Delete Posts'; - const DELETE_OWN_POSTS = 'Delete Their Own Posts'; -} diff --git a/src/Ushahidi/Contracts/Repository/CreateRepository.php b/src/Ushahidi/Contracts/Repository/CreateRepository.php index f454ec308b..fc3d8128f1 100644 --- a/src/Ushahidi/Contracts/Repository/CreateRepository.php +++ b/src/Ushahidi/Contracts/Repository/CreateRepository.php @@ -11,15 +11,7 @@ namespace Ushahidi\Contracts\Repository; -use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Repository\EntityGet; - -interface CreateRepository extends EntityGet +interface CreateRepository extends EntityGet, EntityCreate { - /** - * Creates a new record and returns the created id. - * @param array|\Ushahidi\Contracts\Entity $entity - * @return mixed - */ - public function create(Entity $entity); + } diff --git a/src/Ushahidi/Contracts/Repository/EntityCreate.php b/src/Ushahidi/Contracts/Repository/EntityCreate.php index 6e81310105..3670a1f51b 100644 --- a/src/Ushahidi/Contracts/Repository/EntityCreate.php +++ b/src/Ushahidi/Contracts/Repository/EntityCreate.php @@ -18,6 +18,7 @@ interface EntityCreate { /** * Creates a new record and returns the created id. + * @param array|\Ushahidi\Contracts\Entity $entity * @return mixed */ public function create(Entity $entity); diff --git a/src/Ushahidi/Contracts/Repository/ReadRepository.php b/src/Ushahidi/Contracts/Repository/ReadRepository.php index d15e4ace61..c124f6d5f1 100644 --- a/src/Ushahidi/Contracts/Repository/ReadRepository.php +++ b/src/Ushahidi/Contracts/Repository/ReadRepository.php @@ -11,9 +11,6 @@ namespace Ushahidi\Contracts\Repository; -use Ushahidi\Contracts\Repository\EntityExists; -use Ushahidi\Contracts\Repository\EntityGet; - interface ReadRepository extends EntityGet, EntityExists { } diff --git a/src/Ushahidi/Contracts/Repository/SearchRepository.php b/src/Ushahidi/Contracts/Repository/SearchRepository.php index 3e9ae29ed9..6f7dcb99f9 100644 --- a/src/Ushahidi/Contracts/Repository/SearchRepository.php +++ b/src/Ushahidi/Contracts/Repository/SearchRepository.php @@ -13,35 +13,34 @@ use Ushahidi\Contracts\Search; -interface SearchRepository +interface SearchRepository extends EntityGet { - /** - * Converts an array of entity data into an object. - * @param array $data - * @return \Ushahidi\Contracts\Entity - */ - public function getEntity(array $data = null); - /** * Get fields that can be used for searches. + * * @return array */ public function getSearchFields(); /** - * @param \Ushahidi\Contracts\Search $search + * Set the search parameters. * + * @param \Ushahidi\Contracts\Search $search * @return $this */ public function setSearchParams(Search $search); /** - * @return [Ushahidi\Core\Entity, ...] + * Get the results for the last search. + * + * @return \Ushahidi\Contracts\Entity[] */ public function getSearchResults(); /** - * @return Integer + * Get the total number of results for the last search. + * + * @return integer */ public function getSearchTotal(); } diff --git a/src/Ushahidi/Contracts/Repository/Usecase/CreateMessageRepository.php b/src/Ushahidi/Contracts/Repository/Usecase/CreateMessageRepository.php deleted file mode 100644 index b7d08ca4dd..0000000000 --- a/src/Ushahidi/Contracts/Repository/Usecase/CreateMessageRepository.php +++ /dev/null @@ -1,21 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Contracts\Repository\Usecase; - -interface CreateMessageRepository -{ - /** - * @param int $parent_id - * @return Boolean - */ - public function parentExists($parent_id); -} diff --git a/src/Ushahidi/Contracts/Repository/Usecase/DeleteTagRepository.php b/src/Ushahidi/Contracts/Repository/Usecase/DeleteTagRepository.php deleted file mode 100644 index 7e46868b86..0000000000 --- a/src/Ushahidi/Contracts/Repository/Usecase/DeleteTagRepository.php +++ /dev/null @@ -1,23 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Contracts\Repository\Usecase; - -interface DeleteTagRepository -{ - // TagRepository - public function get($id); - - /** - * @param Integer $id - */ - public function deleteTag($id); -} diff --git a/src/Ushahidi/Contracts/Repository/Usecase/ReadTagRepository.php b/src/Ushahidi/Contracts/Repository/Usecase/ReadTagRepository.php deleted file mode 100644 index 52cd1d57b1..0000000000 --- a/src/Ushahidi/Contracts/Repository/Usecase/ReadTagRepository.php +++ /dev/null @@ -1,20 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Contracts\Repository\Usecase; - -interface ReadTagRepository -{ - /** - * @param int $id - */ - public function get($id); -} diff --git a/src/Ushahidi/Contracts/Repository/Usecase/SetPostRepository.php b/src/Ushahidi/Contracts/Repository/Usecase/SetPostRepository.php deleted file mode 100644 index 25337215c6..0000000000 --- a/src/Ushahidi/Contracts/Repository/Usecase/SetPostRepository.php +++ /dev/null @@ -1,25 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Contracts\Repository\Usecase; - -use Ushahidi\Contracts\Entity; - -interface SetPostRepository -{ - /** - * @param int $post_id - * @param int $set_id - * - * @return Entity $post - */ - public function getPostInSet($post_id, $set_id); -} diff --git a/src/Ushahidi/Contracts/Repository/Usecase/StatsPostRepository.php b/src/Ushahidi/Contracts/Repository/Usecase/StatsPostRepository.php deleted file mode 100644 index 8a065a2587..0000000000 --- a/src/Ushahidi/Contracts/Repository/Usecase/StatsPostRepository.php +++ /dev/null @@ -1,25 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Contracts\Repository\Usecase; - -use Ushahidi\Core\Tool\SearchData; - -interface StatsPostRepository -{ - - /** - * Get grouped totals for stats - * @param SearchData $search - * @return Array - */ - public function getGroupedTotals(SearchData $search); -} diff --git a/src/Ushahidi/Contracts/Repository/Usecase/UpdateMessageRepository.php b/src/Ushahidi/Contracts/Repository/Usecase/UpdateMessageRepository.php deleted file mode 100644 index f535ba1c9d..0000000000 --- a/src/Ushahidi/Contracts/Repository/Usecase/UpdateMessageRepository.php +++ /dev/null @@ -1,22 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Contracts\Repository\Usecase; - -interface UpdateMessageRepository -{ - /** - * @param String $status - * @param String $direction - * @return Boolean - */ - public function checkStatus($status, $direction); -} diff --git a/src/Ushahidi/Contracts/Repository/Usecase/UpdatePostRepository.php b/src/Ushahidi/Contracts/Repository/Usecase/UpdatePostRepository.php deleted file mode 100644 index 608cfeaf97..0000000000 --- a/src/Ushahidi/Contracts/Repository/Usecase/UpdatePostRepository.php +++ /dev/null @@ -1,45 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Contracts\Repository\Usecase; - -interface UpdatePostRepository -{ - /** - * @param string $slug - * - * @return boolean - */ - public function isSlugAvailable($slug); - - /** - * @param string $locale - * @param int $parent_id - * @param string $type - * - * @return boolean - */ - public function doesTranslationExist($locale, $parent_id, $type); - - /** - * Checking if a post requires approval via the form it belongs too - * - * @param int|null $formId - * @return boolean - */ - public function doesPostRequireApproval($formId); - - /** - * Get total number of published posts - * @return int - */ - public function getPublishedTotal(); -} diff --git a/src/Ushahidi/Contracts/Repository/Usecase/UpdatePostTagRepository.php b/src/Ushahidi/Contracts/Repository/Usecase/UpdatePostTagRepository.php deleted file mode 100644 index bd60555d76..0000000000 --- a/src/Ushahidi/Contracts/Repository/Usecase/UpdatePostTagRepository.php +++ /dev/null @@ -1,38 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Contracts\Repository\Usecase; - -use Ushahidi\Contracts\Entity; - -interface UpdatePostTagRepository -{ - /** - * @param int $id - * - * @return Entity - */ - public function get($id); - - /** - * @param string $tag - * - * @return Entity - */ - public function getByTag($tag); - - /** - * @param string|Entity $tag_or_id - * - * @return boolean - */ - public function doesTagExist($tag_or_id); -} diff --git a/src/Ushahidi/Contracts/Repository/Usecase/UpdatePostValueRepository.php b/src/Ushahidi/Contracts/Repository/Usecase/UpdatePostValueRepository.php deleted file mode 100644 index 5883a8ceff..0000000000 --- a/src/Ushahidi/Contracts/Repository/Usecase/UpdatePostValueRepository.php +++ /dev/null @@ -1,38 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Contracts\Repository\Usecase; - -interface UpdatePostValueRepository -{ - /** - * Create new post value - * @param mixed $value - * @param int $form_attribute_id - * @param int $post_id - */ - public function createValue($value, $form_attribute_id, $post_id); - - /** - * Update an existing post value - * @param int $id - * @param mixed $value - */ - public function updateValue($id, $value); - - - /** - * Delete values that are not in the ids array - * @param Integer $post_id - * @param array $ids - */ - public function deleteNotIn($post_id, array $ids); -} diff --git a/src/Ushahidi/Contracts/Repository/Usecase/UpdateTagRepository.php b/src/Ushahidi/Contracts/Repository/Usecase/UpdateTagRepository.php deleted file mode 100644 index fbb0683ddb..0000000000 --- a/src/Ushahidi/Contracts/Repository/Usecase/UpdateTagRepository.php +++ /dev/null @@ -1,22 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Contracts\Repository\Usecase; - -interface UpdateTagRepository -{ - /** - * @param string $slug - * - * @return boolean - */ - public function isSlugAvailable($slug); -} diff --git a/src/Ushahidi/Contracts/Repository/Usecase/UserRegisterRepository.php b/src/Ushahidi/Contracts/Repository/Usecase/UserRegisterRepository.php deleted file mode 100644 index 0d08b3eef3..0000000000 --- a/src/Ushahidi/Contracts/Repository/Usecase/UserRegisterRepository.php +++ /dev/null @@ -1,23 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Contracts\Repository\Usecase; - -use Ushahidi\Contracts\Entity; - -interface UserRegisterRepository -{ - public function isUniqueEmail($email); - - public function register(Entity $entity); -} diff --git a/src/Ushahidi/Contracts/Repository/Usecase/UserResetPasswordRepository.php b/src/Ushahidi/Contracts/Repository/Usecase/UserResetPasswordRepository.php deleted file mode 100644 index afbcd6240a..0000000000 --- a/src/Ushahidi/Contracts/Repository/Usecase/UserResetPasswordRepository.php +++ /dev/null @@ -1,25 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Contracts\Repository\Usecase; - -use Ushahidi\Contracts\Entity; - -interface UserResetPasswordRepository -{ - public function getResetToken(Entity $entity); - - public function isValidResetToken($token); - - public function setPassword($token, $password); - - public function deleteResetToken($token); -} diff --git a/src/Ushahidi/Contracts/Repository/Usecase/ValuesForPostRepository.php b/src/Ushahidi/Contracts/Repository/Usecase/ValuesForPostRepository.php deleted file mode 100644 index cd2b084526..0000000000 --- a/src/Ushahidi/Contracts/Repository/Usecase/ValuesForPostRepository.php +++ /dev/null @@ -1,39 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Contracts\Repository\Usecase; - -use Ushahidi\Contracts\Entity; - -interface ValuesForPostRepository -{ - /** - * @param int $post_id - * @param array $include_attributes - * @param array $exclude_stages - * @param boolean $excludePrivateValues - * - * @return Entity[] $postvalues - */ - public function getAllForPost( - $post_id, - array $include_attributes = [], - array $exclude_stages = [], - $excludePrivateValues = true - ); - - /** - * @param int $post_id - * - * @return Entity[] $postvalues - */ - public function deleteAllForPost($post_id); -} diff --git a/src/Ushahidi/Core/BasicEntity.php b/src/Ushahidi/Core/BasicEntity.php deleted file mode 100644 index de8d80890e..0000000000 --- a/src/Ushahidi/Core/BasicEntity.php +++ /dev/null @@ -1,77 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Core; - -use Ushahidi\Contracts\Entity; -use Ushahidi\Core\Concerns\StatefulData; - -abstract class BasicEntity implements Entity -{ - use StatefulData; - - /** - * The entity's attributes. - * @var array - */ - protected $attributes = []; - - /** - * Transparent access to dynamic entity properties. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - return isset($this->attributes[$key]) ? $this->attributes[$key] : null; - } - - /** - * Transparent checking of dynamic entity properties. - * - * @param string $key - * @return boolean - */ - public function __isset($key) - { - return isset($this->attributes[$key]); - } - - // StatefulData - protected function setStateValue($key, $value) - { - $this->attributes[$key] = $value; - } - - public function asArray() - { - return $this->attributes; - } - - public function getId() - { - return $this->attributes['id'] ?? null; - } - - protected function getImmutable() - { - return ['id', 'created']; - } - - protected function getDefinition() - { - return []; - } -} diff --git a/src/Ushahidi/Core/Concerns/AdminAccess.php b/src/Ushahidi/Core/Concerns/AdminAccess.php index 5c93224655..7a6347666a 100644 --- a/src/Ushahidi/Core/Concerns/AdminAccess.php +++ b/src/Ushahidi/Core/Concerns/AdminAccess.php @@ -16,7 +16,7 @@ namespace Ushahidi\Core\Concerns; -use Ushahidi\Contracts\Entity as User; +use Ushahidi\Core\Entity\User; trait AdminAccess { diff --git a/src/Ushahidi/Core/Concerns/CollectionLoader.php b/src/Ushahidi/Core/Concerns/CollectionLoader.php deleted file mode 100644 index 2aae077689..0000000000 --- a/src/Ushahidi/Core/Concerns/CollectionLoader.php +++ /dev/null @@ -1,40 +0,0 @@ - - * @package Ushahidi\Application - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Core\Concerns; - -trait CollectionLoader -{ - /** - * Get the entity for this repository. - * @param array $data - * @return \Ushahidi\Contracts\Entity - */ - abstract public function getEntity(array $data = null); - - /** - * Converts an array of results into an array of entities, - * indexed by the entity id. - * @param array $results - * @return array - */ - protected function getCollection(array $results) - { - $collection = []; - foreach ($results as $row) { - $entity = $this->getEntity($row); - $collection[$entity->getId()] = $entity; - } - return $collection; - } -} diff --git a/src/Ushahidi/Core/Concerns/Event.php b/src/Ushahidi/Core/Concerns/Event.php index 7a8d9c1bde..155c6f10d7 100644 --- a/src/Ushahidi/Core/Concerns/Event.php +++ b/src/Ushahidi/Core/Concerns/Event.php @@ -51,7 +51,7 @@ protected function emitBatch($events) /** * Add Event listener * @param string $event triggered event - * @param ListenerInterface $listener + * @param \League\Event\ListenerInterface $listener * @param int $priority * @return object $this */ diff --git a/src/Ushahidi/Core/Concerns/FilterRecords.php b/src/Ushahidi/Core/Concerns/FilterRecords.php index 648bf27b45..a07bb8139c 100644 --- a/src/Ushahidi/Core/Concerns/FilterRecords.php +++ b/src/Ushahidi/Core/Concerns/FilterRecords.php @@ -31,7 +31,7 @@ trait FilterRecords * 'orderby' => 'username', * ]); * - * @param Array $filters + * @param array $filters * @return $this */ public function setFilters(array $filters) @@ -45,8 +45,8 @@ public function setFilters(array $filters) * * $this->setFilter('role', 'admin'); * - * @param String $name - * @param Mixed $value + * @param string $name + * @param mixed $value * @return $this */ public function setFilter($name, $value) @@ -64,9 +64,9 @@ public function setFilter($name, $value) * * NOTE: Defaults cannot be provided when using this method! * - * @param Array $allowed allowed parameters - * @param Array $force force all parameters to be defined - * @return Array + * @param array $allowed allowed parameters + * @param array $force force all parameters to be defined + * @return array */ public function getFilters(array $allowed, $force = false) { diff --git a/src/Ushahidi/Core/Concerns/FormatRackspaceURL.php b/src/Ushahidi/Core/Concerns/FormatRackspaceURL.php index 4a62eb74ae..719191ba32 100644 --- a/src/Ushahidi/Core/Concerns/FormatRackspaceURL.php +++ b/src/Ushahidi/Core/Concerns/FormatRackspaceURL.php @@ -11,8 +11,8 @@ namespace Ushahidi\Core\Concerns; -use Illuminate\Support\Carbon; use Carbon\CarbonInterval; +use Illuminate\Support\Carbon; use Illuminate\Support\Facades\Storage; trait FormatRackspaceURL diff --git a/src/Ushahidi/Core/Concerns/PrivAccess.php b/src/Ushahidi/Core/Concerns/PrivAccess.php index 6221d03c9f..fbd4657095 100644 --- a/src/Ushahidi/Core/Concerns/PrivAccess.php +++ b/src/Ushahidi/Core/Concerns/PrivAccess.php @@ -20,7 +20,7 @@ trait PrivAccess /** * Get a list of all possible privilges. * By default, returns standard HTTP REST methods. - * @return Array + * @return array */ protected function getAllPrivs() { diff --git a/src/Ushahidi/Core/Concerns/TransformData.php b/src/Ushahidi/Core/Concerns/TransformData.php index 7a5cc40a3b..e814b70fd7 100644 --- a/src/Ushahidi/Core/Concerns/TransformData.php +++ b/src/Ushahidi/Core/Concerns/TransformData.php @@ -22,8 +22,8 @@ trait TransformData * Transform a string into an email, removing all characters that cannot * exist in an email address. * - * @return String $value - * @return String + * @return string $value + * @return string */ protected static function transformEmail($value) { @@ -34,8 +34,8 @@ protected static function transformEmail($value) * Transforms a JSON string to native type. Objects will be represented * with associative arrays. * - * @param String $value - * @return Mixed + * @param string $value + * @return mixed */ protected static function transformJson($value) { @@ -57,7 +57,7 @@ protected static function transformJson($value) /** * Requires that all `json` type fields are returned as arrays. * - * @return Boolean + * @return boolean */ protected static function optionJsonAlwaysArray() { @@ -68,8 +68,8 @@ protected static function optionJsonAlwaysArray() * Transform a string to a slug, replacing non-alphanumeric characters * with dashes. * - * @param String $value - * @return String + * @param string $value + * @return string */ protected static function transformSlug($value) { @@ -90,8 +90,8 @@ protected static function transformSlug($value) * Transform a string into a URL, removing all characters that cannot * exist in a URL address. * - * @return String $value - * @return String + * @return string $value + * @return string */ protected static function transformUrl($value) { @@ -101,8 +101,8 @@ protected static function transformUrl($value) /** * Transforms a date(time) string to a UNIX timestamp. * - * @param String $value - * @return Integer + * @param string $value + * @return integer */ protected static function transformTimestamp($value) { @@ -185,8 +185,8 @@ protected function getCustomTransformer($type) * NOTE: Unless an anonymous function is used, null values in the data will * be ignored! Any definition that uses a closure will always be executed. * - * @param Array $data - * @return Array + * @param array $data + * @return array */ protected function transform(array $data) { diff --git a/src/Ushahidi/Core/EloquentRepository.php b/src/Ushahidi/Core/Eloquent/Repository.php similarity index 81% rename from src/Ushahidi/Core/EloquentRepository.php rename to src/Ushahidi/Core/Eloquent/Repository.php index 6f3bcb6c4b..df057a6ce0 100644 --- a/src/Ushahidi/Core/EloquentRepository.php +++ b/src/Ushahidi/Core/Eloquent/Repository.php @@ -1,18 +1,11 @@ - * @package Ushahidi\Platform - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - namespace Ushahidi\Core\Entity; -use Ushahidi\Core\StaticEntity; - -class ApiKey extends StaticEntity -{ - protected $id; - protected $api_key; - protected $created; - protected $updated; - +use Ushahidi\Contracts\Entity; - // DataTransformer - protected function getDefinition() - { - return [ - 'id' => 'int', - 'api_key' => 'string', - 'created' => 'int', - 'updated' => 'int', - ]; - } +interface Apikey extends Entity { - // Entity - public function getResource() - { - return 'apikey'; - } } diff --git a/src/Ushahidi/Core/Entity/ApiKeyRepository.php b/src/Ushahidi/Core/Entity/ApiKeyRepository.php index 63a5ad34c7..4eb8c46f0a 100644 --- a/src/Ushahidi/Core/Entity/ApiKeyRepository.php +++ b/src/Ushahidi/Core/Entity/ApiKeyRepository.php @@ -16,4 +16,11 @@ interface ApiKeyRepository extends CreateRepository, EntityExists { + /** + * Check if an api key exists + * + * @param string $api_key + * @return boolean + */ + public function apiKeyExists($api_key); } diff --git a/src/Ushahidi/Core/Entity/CSVRepository.php b/src/Ushahidi/Core/Entity/CSVRepository.php deleted file mode 100644 index 120a65393e..0000000000 --- a/src/Ushahidi/Core/Entity/CSVRepository.php +++ /dev/null @@ -1,22 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2022 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Core\Entity; - -use Ushahidi\Contracts\Repository\EntityGet; -use Ushahidi\Contracts\Repository\EntityExists; - -interface CSVRepository extends - EntityGet, - EntityExists -{ - -} diff --git a/src/Ushahidi/Core/Entity/Config.php b/src/Ushahidi/Core/Entity/Config.php index 7b35e8cb7d..46d9d9c9a1 100644 --- a/src/Ushahidi/Core/Entity/Config.php +++ b/src/Ushahidi/Core/Entity/Config.php @@ -1,36 +1,8 @@ - * @package Ushahidi\Platform - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - namespace Ushahidi\Core\Entity; -use Ushahidi\Core\DynamicEntity; -use Ushahidi\Core\EloquentEntity; - -class Config extends EloquentEntity -{ - // DataTransformer - protected function getDefinition() - { - return ['id' => 'string']; - } +use Ushahidi\Contracts\Entity; - // Entity - public function getResource() - { - return 'config'; - } +interface Config extends Entity { - // StatefulData - public function getImmutable() - { - return array_merge(parent::getImmutable(), ['allowed_privileges']); - } } diff --git a/src/Ushahidi/Core/Entity/Contact.php b/src/Ushahidi/Core/Entity/Contact.php index 9ad63f466b..3eeec4b6dd 100644 --- a/src/Ushahidi/Core/Entity/Contact.php +++ b/src/Ushahidi/Core/Entity/Contact.php @@ -1,65 +1,8 @@ - * @package Ushahidi\Platform - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - namespace Ushahidi\Core\Entity; -use Ushahidi\Core\StaticEntity; -use Ushahidi\Core\EloquentEntity; - -class Contact extends EloquentEntity -{ - protected $id; - protected $user_id; - protected $data_source; - protected $type; - protected $contact; - protected $created; - protected $updated; - protected $can_notify; - public $country_code; // we only want this for validation, needs to be unset before saving - // StatefulData - protected function getDerived() - { - // Foreign key alias - return [ - 'user_id' => ['user', 'user.id'] - ]; - } - - // DataTransformer - protected function getDefinition() - { - return [ - 'id' => 'int', - 'user' => false, /* alias */ - 'user_id' => 'int', - 'data_source' => 'string', - 'type' => 'string', - 'contact' => 'string', - 'created' => 'int', - 'updated' => 'int', - 'can_notify' => 'bool', - ]; - } +use Ushahidi\Contracts\Entity; - // Entity - public function getResource() - { - return 'contacts'; - } +interface Contact extends Entity { - protected function getDefaultData() - { - return [ - 'can_notify' => 0, - ]; - } } diff --git a/src/Ushahidi/Core/Entity/CountryCodeRepository.php b/src/Ushahidi/Core/Entity/CountryCodeRepository.php deleted file mode 100644 index b4df9ed2cc..0000000000 --- a/src/Ushahidi/Core/Entity/CountryCodeRepository.php +++ /dev/null @@ -1,19 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2022 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Core\Entity; - -use Ushahidi\Contracts\Repository\EntityGet; - -interface CountryCodeRepository extends - EntityGet -{ -} diff --git a/src/Ushahidi/Core/Entity/DataProviderRepository.php b/src/Ushahidi/Core/Entity/DataProviderRepository.php deleted file mode 100644 index fc5b5691d3..0000000000 --- a/src/Ushahidi/Core/Entity/DataProviderRepository.php +++ /dev/null @@ -1,19 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2022 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Core\Entity; - -use Ushahidi\Contracts\Repository\EntityGet; - -interface DataProviderRepository extends - EntityGet -{ -} diff --git a/src/Ushahidi/Core/Entity/ExportBatch.php b/src/Ushahidi/Core/Entity/ExportBatch.php index fcb92a2bad..8451d0a346 100644 --- a/src/Ushahidi/Core/Entity/ExportBatch.php +++ b/src/Ushahidi/Core/Entity/ExportBatch.php @@ -1,55 +1,14 @@ - * @package Ushahidi\Platform - * @copyright 2018 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - namespace Ushahidi\Core\Entity; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Contracts\Entity; -class ExportBatch extends StaticEntity +interface ExportBatch extends Entity { const STATUS_PENDING = 'pending'; - const STATUS_COMPLETED = 'completed'; - const STATUS_FAILED = 'failed'; - protected $id; - protected $export_job_id; - protected $batch_number; - protected $status; - protected $filename; - protected $url; - protected $has_header; - protected $rows; - protected $created; - protected $updated; + const STATUS_COMPLETED = 'completed'; - // DataTransformer - protected function getDefinition() - { - return [ - 'id' => 'int', - 'export_job_id' => 'int', - 'batch_number' => 'int', - 'status' => 'string', - 'filename' => 'string', - 'url' => 'string', - 'has_header' => 'int', - 'rows' => 'int', - 'created' => 'int', - 'updated' => 'int', - ]; - } + const STATUS_FAILED = 'failed'; - // Entity - public function getResource() - { - return 'export_batch'; - } } diff --git a/src/Ushahidi/Core/Entity/ExportBatchRepository.php b/src/Ushahidi/Core/Entity/ExportBatchRepository.php index 45274290de..45822eace6 100644 --- a/src/Ushahidi/Core/Entity/ExportBatchRepository.php +++ b/src/Ushahidi/Core/Entity/ExportBatchRepository.php @@ -12,13 +12,11 @@ namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\Repository\CreateRepository; -use Ushahidi\Contracts\Repository\SearchRepository; use Ushahidi\Contracts\Repository\UpdateRepository; interface ExportBatchRepository extends CreateRepository, - UpdateRepository, - SearchRepository + UpdateRepository { /** * Get all batches for job id diff --git a/src/Ushahidi/Core/Entity/ExportJob.php b/src/Ushahidi/Core/Entity/ExportJob.php index 54895e7a0b..d29a6f6a87 100644 --- a/src/Ushahidi/Core/Entity/ExportJob.php +++ b/src/Ushahidi/Core/Entity/ExportJob.php @@ -1,98 +1,14 @@ - * @package Ushahidi\Platform - * @copyright 2018 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - namespace Ushahidi\Core\Entity; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Contracts\Entity; -class ExportJob extends StaticEntity +interface ExportJob extends Entity { - const STATUS_PENDING = 'PENDING'; - const STATUS_QUEUED = 'QUEUED'; - const STATUS_SUCCESS = 'SUCCESS'; - const STATUS_FAILED = 'FAILED'; - const STATUS_EXPORTED_TO_CDN = 'EXPORTED_TO_CDN'; - const STATUS_PENDING_HDX = 'PENDING_HDX'; - - protected $id; - protected $entity_type; - protected $user_id; - protected $fields; - protected $filters; - protected $status; - protected $url; - protected $header_row; - protected $created; - protected $updated; - protected $url_expiration; - protected $include_hxl; - protected $send_to_browser; - protected $send_to_hdx; - protected $hxl_heading_row; - protected $hxl_meta_data_id; - protected $total_batches; - protected $total_rows; - - // DataTransformer - protected function getDefinition() - { - return [ - 'id' => 'int', - 'entity_type' => 'string', - 'user_id' => 'int', - 'status' => 'string', - 'url' => 'string', - 'fields' => '*json', - 'filters' => '*json', - 'header_row' => '*json', - 'created' => 'int', - 'updated' => 'int', - 'url_expiration' => 'int', - 'include_hxl' => 'bool', - 'send_to_browser' => 'bool', - 'send_to_hdx' => 'bool', - 'hxl_heading_row' => '*json', - 'hxl_meta_data_id' => 'int', - 'total_batches' => 'int', - 'total_rows' => 'int', - ]; - } - - // Entity - public function getResource() - { - return 'export_job'; - } - - // StatefulData - protected function getDerived() - { - // Foreign key alias - return [ - 'hxl_meta_data_id' => ['hxl_meta_data', 'hxl_meta_data.id'], - 'user_id' => ['users', 'users.id'] - ]; - } - - // StatefulData - protected function getImmutable() - { - return array_merge(parent::getImmutable(), ['user_id']); - } - - public function isCombineBatchesDone() - { - return in_array( - $this->status, - [self::STATUS_SUCCESS, self::STATUS_EXPORTED_TO_CDN, self::STATUS_PENDING_HDX] - ); - } + const STATUS_PENDING = 'PENDING'; + const STATUS_QUEUED = 'QUEUED'; + const STATUS_SUCCESS = 'SUCCESS'; + const STATUS_FAILED = 'FAILED'; + const STATUS_EXPORTED_TO_CDN = 'EXPORTED_TO_CDN'; + const STATUS_PENDING_HDX = 'PENDING_HDX'; } diff --git a/src/Ushahidi/Core/Entity/ExportJobRepository.php b/src/Ushahidi/Core/Entity/ExportJobRepository.php index 8d4e45cf1e..eeadae7468 100644 --- a/src/Ushahidi/Core/Entity/ExportJobRepository.php +++ b/src/Ushahidi/Core/Entity/ExportJobRepository.php @@ -33,7 +33,7 @@ public function getJobs($limit); /** * Check if job batches are finished? * - * @param Int $jobId + * @param int $jobId * @return boolean */ public function areBatchesFinished($jobId); diff --git a/src/Ushahidi/Core/Entity/Form.php b/src/Ushahidi/Core/Entity/Form.php index f8ca1b1f08..52cf40aafb 100644 --- a/src/Ushahidi/Core/Entity/Form.php +++ b/src/Ushahidi/Core/Entity/Form.php @@ -1,102 +1,8 @@ - * @package Ushahidi\Platform - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - namespace Ushahidi\Core\Entity; -use Ushahidi\Core\EloquentEntity; -use Ushahidi\Core\StaticEntity; - -class Form extends EloquentEntity -{ - protected $id; - protected $parent_id; - protected $name; - protected $description; - protected $color; - protected $type; - protected $disabled; - protected $created; - protected $updated; - protected $hide_author; - protected $hide_time; - protected $hide_location; - protected $require_approval; - protected $everyone_can_create; - protected $targeted_survey; - protected $can_create; - protected $tags; - - // StatefulData - protected function getDefaultData() - { - return [ - 'type' => 'report', - 'require_approval' => true, - 'everyone_can_create' => true, - 'hide_author' => false, - 'hide_time' => false, - 'hide_location' => false, - 'targeted_survey' => false, - ]; - } - - // DataTransformer - protected function getDefinition() - { - $typeColor = function ($color) { - if ($color) { - return ltrim($color, '#'); - } - }; - return [ - 'id' => 'int', - 'parent_id' => 'int', - 'name' => 'string', - 'description' => 'string', - 'color' => $typeColor, - 'type' => 'string', - 'disabled' => 'bool', - 'created' => 'int', - 'updated' => 'int', - 'hide_author' => 'bool', - 'hide_time' => 'bool', - 'hide_location' => 'bool', - 'require_approval' => 'bool', - 'everyone_can_create' => 'bool', - 'targeted_survey' => 'bool', - 'can_create' => 'array', - 'tags' => 'array', - ]; - } - - // Entity - public function getResource() - { - return 'forms'; - } +use Ushahidi\Contracts\Entity; - // StatefulData - protected function getImmutable() - { - // Hack: Add computed properties to immutable list - return array_merge(parent::getImmutable(), ['tags', 'can_create']); - } +interface Form extends Entity { - public function __toString() - { - return json_encode([ - 'id' => $this->id, - 'parent_id' => $this->parent_id, - 'name' => $this->name, - 'description' => $this->description - ]); - } } diff --git a/src/Ushahidi/Core/Entity/FormAttribute.php b/src/Ushahidi/Core/Entity/FormAttribute.php index d177a80a81..6c457155e9 100644 --- a/src/Ushahidi/Core/Entity/FormAttribute.php +++ b/src/Ushahidi/Core/Entity/FormAttribute.php @@ -11,80 +11,9 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Core\EloquentEntity; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Contracts\Entity; -class FormAttribute extends EloquentEntity +interface FormAttribute extends Entity { - protected $id; - protected $key; - protected $label; - protected $instructions; - protected $input; - protected $type; - protected $required; - protected $default; - protected $priority; - protected $options = []; - protected $cardinality; - protected $config = []; - protected $form_stage_id; - protected $response_private; - protected $attributes = [ - 'instructions' => null, - 'config' => [], - ]; - - // StatefulData - protected function getDerived() - { - return [ - 'form_stage_id' => ['form_stage', 'form_stage.id'], /* alias */ - ]; - } - - // DataTransformer - protected function getDefinition() - { - return [ - 'id' => 'int', - 'key' => 'string', - 'label' => 'string', - 'instructions' => 'string', - 'input' => 'string', - 'type' => 'string', - 'required' => 'bool', - 'default' => 'string', - 'priority' => 'int', - 'options' => '*json', - 'cardinality' => 'int', - 'config' => '*json', - 'form_stage' => false, /* alias */ - 'form_stage_id' => 'int', - 'response_private' => 'bool', - ]; - } - - // Entity - public function getResource() - { - return 'form_attributes'; - } - - public function __toString() - { - return json_encode([ - 'id' => $this->id, - 'key' => $this->key, - 'label' => $this->label, - 'instructions' => $this->instructions, - 'input' => $this->input, - 'type' => $this->type, - 'required' => $this->required, - 'default' => $this->default, - 'priority' => $this->priority, - 'options' => $this->options, - ]); - } } diff --git a/src/Ushahidi/Core/Entity/FormAttributeRepository.php b/src/Ushahidi/Core/Entity/FormAttributeRepository.php index 903b758b63..ccf10d15c1 100644 --- a/src/Ushahidi/Core/Entity/FormAttributeRepository.php +++ b/src/Ushahidi/Core/Entity/FormAttributeRepository.php @@ -28,30 +28,30 @@ interface FormAttributeRepository extends * @param string $key * @param int $form_id * @param boolean $include_no_form Include attributes with null form_id - * @return \Ushahidi\Contracts\Entity + * @return \Ushahidi\Core\Entity\FormAttribute */ public function getByKey($key, $form_id = null, $include_no_form = false); /** * @param int $form_id - * @return [Ushahidi\Core\Entity\FormAttribute, ...] + * @return \Ushahidi\Core\Entity\FormAttribute[] */ public function getByForm($form_id); /** * @param int $form_id - * @return [Ushahidi\Core\Entity\FormAttribute, ...] + * @return \Ushahidi\Core\Entity\FormAttribute[] */ public function getFirstNonDefaultByForm($form_id); /** - * @return [Ushahidi\Core\Entity\FormAttribute, ...] + * @return \Ushahidi\Core\Entity\FormAttribute[] */ public function getAll(); /** * @param int $stage_id - * @return [Ushahidi\Core\Entity\FormAttribute, ...] + * @return \Ushahidi\Core\Entity\FormAttribute[] */ public function getRequired($stage_id); @@ -69,7 +69,7 @@ public function getExportAttributes(array $include_attributes = null); /** * @param int $form_id - * @return Entity + * @return \Ushahidi\Core\Entity\FormAttribute[] */ public function getNextByFormAttribute($last_attribute_id); } diff --git a/src/Ushahidi/Core/Entity/FormRoleRepository.php b/src/Ushahidi/Core/Entity/FormRoleRepository.php deleted file mode 100644 index aaefee0f42..0000000000 --- a/src/Ushahidi/Core/Entity/FormRoleRepository.php +++ /dev/null @@ -1,40 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2022 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Core\Entity; - -use Ushahidi\Contracts\Repository\EntityGet; -use Ushahidi\Contracts\Repository\EntityExists; - -interface FormRoleRepository extends - EntityGet, - EntityExists -{ - - /** - * @param int $form_id - * @return \Ushahidi\Contracts\Entity[] - */ - public function getByForm(int $form_id); - - /** - * @param int $role_id - * @param int $form_id - * @return boolean - */ - public function existsInFormRole(int $role_id, int $form_id); - - /** - * @param \Ushahidi\Contracts\Entity[] $entities - * @return \Ushahidi\Contracts\Entity[] - */ - public function updateCollection(array $entities); -} diff --git a/src/Ushahidi/Core/Entity/FormStage.php b/src/Ushahidi/Core/Entity/FormStage.php index 78c229658a..0068771d36 100644 --- a/src/Ushahidi/Core/Entity/FormStage.php +++ b/src/Ushahidi/Core/Entity/FormStage.php @@ -1,52 +1,8 @@ - * @package Ushahidi\Platform - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - namespace Ushahidi\Core\Entity; -use Ushahidi\Core\StaticEntity; -use Ushahidi\Core\EloquentEntity; - -class FormStage extends EloquentEntity -{ - protected $id; - protected $form_id; - protected $label; - protected $priority; - protected $icon; - protected $type; - protected $required; - protected $show_when_published; - protected $description; - protected $task_is_internal_only; +use Ushahidi\Contracts\Entity; - // DataTransformer - protected function getDefinition() - { - return [ - 'id' => 'int', - 'description' => 'string', - 'show_when_published' => 'boolean', - 'type' => 'string', - 'form_id' => 'int', - 'label' => 'string', - 'priority' => 'int', - 'icon' => 'string', - 'required' => 'boolean', - 'task_is_internal_only' => 'boolean' - ]; - } +interface FormStage extends Entity { - // Entity - public function getResource() - { - return 'form_stages'; - } } diff --git a/src/Ushahidi/Core/Entity/FormStageRepository.php b/src/Ushahidi/Core/Entity/FormStageRepository.php index f25f463dba..a250ba8464 100644 --- a/src/Ushahidi/Core/Entity/FormStageRepository.php +++ b/src/Ushahidi/Core/Entity/FormStageRepository.php @@ -11,26 +11,25 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\Repository\EntityCreate; use Ushahidi\Contracts\Repository\EntityGet; use Ushahidi\Contracts\Repository\EntityExists; +use Ushahidi\Contracts\Repository\EntityCreate; interface FormStageRepository extends EntityGet, EntityExists, EntityCreate { - /** * @param int $form_id - * @return [Ushahidi\Core\Entity\FormStage, ...] + * @return \Ushahidi\Core\Entity\FormStage[] */ public function getByForm($form_id); /** * @param int $id * @param int $form_id - * @return [Ushahidi\Core\Entity\FormStage, ...] + * @return \Ushahidi\Core\Entity\FormStage[] */ public function existsInForm($id, $form_id); @@ -38,7 +37,7 @@ public function existsInForm($id, $form_id); * Get required stages for form * * @param int $form_id - * @return [Ushahidi\Core\Entity\FormAttribute, ...] + * @return \Ushahidi\Core\Entity\FormStage[] */ public function getRequired($form_id); @@ -46,7 +45,7 @@ public function getRequired($form_id); * Get 'post' type stage for form * * @param int $form_id - * @return \Ushahidi\Contracts\Entity + * @return \Ushahidi\Core\Entity\FormStage */ public function getPostStage($form_id); } diff --git a/src/Ushahidi/Core/Entity/FormStatsRepository.php b/src/Ushahidi/Core/Entity/FormStatsRepository.php deleted file mode 100644 index 79fc2ba417..0000000000 --- a/src/Ushahidi/Core/Entity/FormStatsRepository.php +++ /dev/null @@ -1,21 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2022 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Core\Entity; - -use Ushahidi\Contracts\Repository\EntityGet; -use Ushahidi\Contracts\Repository\EntityExists; - -interface FormStatsRepository extends - EntityGet, - EntityExists -{ -} diff --git a/src/Ushahidi/Core/Entity/HXL/HXLAttribute.php b/src/Ushahidi/Core/Entity/HXL/HXLAttribute.php index f71f9bbe02..08a16b4ae7 100644 --- a/src/Ushahidi/Core/Entity/HXL/HXLAttribute.php +++ b/src/Ushahidi/Core/Entity/HXL/HXLAttribute.php @@ -11,7 +11,7 @@ namespace Ushahidi\Core\Entity\HXL; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Core\Ohanzee\StaticEntity; class HXLAttribute extends StaticEntity { diff --git a/src/Ushahidi/Core/Entity/HXL/HXLFormAttributeHXLAttributeTag.php b/src/Ushahidi/Core/Entity/HXL/HXLFormAttributeHXLAttributeTag.php index 34184320b0..71e2b6ddd2 100644 --- a/src/Ushahidi/Core/Entity/HXL/HXLFormAttributeHXLAttributeTag.php +++ b/src/Ushahidi/Core/Entity/HXL/HXLFormAttributeHXLAttributeTag.php @@ -11,7 +11,7 @@ namespace Ushahidi\Core\Entity\HXL; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Core\Ohanzee\StaticEntity; class HXLFormAttributeHXLAttributeTag extends StaticEntity { diff --git a/src/Ushahidi/Core/Entity/HXL/HXLLicense.php b/src/Ushahidi/Core/Entity/HXL/HXLLicense.php index 116102da2c..00ecccb5c3 100644 --- a/src/Ushahidi/Core/Entity/HXL/HXLLicense.php +++ b/src/Ushahidi/Core/Entity/HXL/HXLLicense.php @@ -11,7 +11,7 @@ namespace Ushahidi\Core\Entity\HXL; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Core\Ohanzee\StaticEntity; class HXLLicense extends StaticEntity { diff --git a/src/Ushahidi/Core/Entity/HXL/HXLMetadata.php b/src/Ushahidi/Core/Entity/HXL/HXLMetadata.php index b18ef11795..0566ebf25b 100644 --- a/src/Ushahidi/Core/Entity/HXL/HXLMetadata.php +++ b/src/Ushahidi/Core/Entity/HXL/HXLMetadata.php @@ -11,7 +11,7 @@ namespace Ushahidi\Core\Entity\HXL; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Core\Ohanzee\StaticEntity; class HXLMetadata extends StaticEntity { diff --git a/src/Ushahidi/Core/Entity/HXL/HXLTag.php b/src/Ushahidi/Core/Entity/HXL/HXLTag.php index 71f4d4c1f2..c747e619d9 100644 --- a/src/Ushahidi/Core/Entity/HXL/HXLTag.php +++ b/src/Ushahidi/Core/Entity/HXL/HXLTag.php @@ -11,7 +11,7 @@ namespace Ushahidi\Core\Entity\HXL; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Core\Ohanzee\StaticEntity; class HXLTag extends StaticEntity { diff --git a/src/Ushahidi/Core/Entity/Media.php b/src/Ushahidi/Core/Entity/Media.php index cbd279a48c..8d9967b0bb 100644 --- a/src/Ushahidi/Core/Entity/Media.php +++ b/src/Ushahidi/Core/Entity/Media.php @@ -1,63 +1,9 @@ - * @package Ushahidi\Platform - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - namespace Ushahidi\Core\Entity; -use Ushahidi\Core\StaticEntity; -use Ushahidi\Core\EloquentEntity; +use Ushahidi\Contracts\Entity; -class Media extends EloquentEntity +interface Media extends Entity { - protected $id; - protected $user_id; - protected $caption; - protected $created; - protected $updated; - protected $mime; - protected $o_filename; - protected $o_size; - protected $o_width; - protected $o_height; - - // DataTransformer - public function getDefinition() - { - return [ - 'id' => 'int', - 'user_id' => 'int', - 'caption' => 'string', - 'created' => 'int', - 'updated' => 'int', - 'mime' => 'string', - 'o_filename' => 'string', - 'o_size' => 'int', - 'o_width' => 'int', - 'o_height' => 'int', - ]; - } - - // Entity - public function getResource() - { - return 'media'; - } - // StatefulData - protected function getDefaultData() - { - return [ - 'mime' => 'text/plain', - 'o_size' => 0, - 'o_width' => null, - 'o_height' => null, - ]; - } } diff --git a/src/Ushahidi/Core/Entity/Message.php b/src/Ushahidi/Core/Entity/Message.php index 37a99ab3ae..181230b06b 100644 --- a/src/Ushahidi/Core/Entity/Message.php +++ b/src/Ushahidi/Core/Entity/Message.php @@ -5,112 +5,34 @@ * * @author Ushahidi Team * @package Ushahidi\Platform - * @copyright 2014 Ushahidi + * @copyright 2023 Ushahidi * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ namespace Ushahidi\Core\Entity; -use Ushahidi\Core\BasicEntity; -use Ushahidi\Core\EloquentEntity; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Contracts\Entity; -class Message extends EloquentEntity +interface Message extends Entity { // Valid boxes are defined as constants. - const INBOX = 'inbox'; + const INBOX = 'inbox'; - const OUTBOX = 'sent'; + const OUTBOX = 'sent'; // Valid directions are defined as constants. - const INCOMING = 'incoming'; + const INCOMING = 'incoming'; - const OUTGOING = 'outgoing'; + const OUTGOING = 'outgoing'; // Valid status types are defined as constants. - const PENDING = 'pending'; + const PENDING = 'pending'; - const RECEIVED = 'received'; + const RECEIVED = 'received'; - const EXPIRED = 'expired'; + const EXPIRED = 'expired'; - const CANCELLED = 'cancelled'; + const CANCELLED = 'cancelled'; - const FAILED = 'failed'; - - const DEFAULT_STATUS = self::PENDING; - - protected $id; - protected $parent_id; - protected $contact_id; - protected $post_id; - protected $user_id; - protected $data_source; - protected $data_source_message_id; - protected $title; - protected $message; - protected $datetime; - protected $type; - protected $status; - protected $direction; - protected $created; - protected $additional_data; - protected $notification_post_id; - // Optionally including contact directly with message - protected $contact; - protected $contact_type; - - // DataTransformer - protected function getDefinition() - { - return [ - 'id' => 'int', - 'parent_id' => 'int', - 'contact_id' => 'int', - 'post_id' => 'int', - 'user_id' => 'int', - 'title' => 'string', - 'message' => 'string', - 'datetime' => '*date', - 'type' => 'string', - 'status' => 'string', - 'direction' => 'string', - 'created' => 'int', - // data provider relations - 'data_source' => 'string', - 'data_source_message_id' => 'string', - // any additional message data - 'additional_data' => '*json', - 'notification_post_id' => 'int', - 'contact' => 'string', - 'contact_type' => 'string', - ]; - } - - protected function getDefaultData() - { - return [ - 'status' => self::PENDING, - ]; - } - - // Entity - public function getResource() - { - return 'messages'; - } - - // StatefulData - protected function getImmutable() - { - return array_merge(parent::getImmutable(), ['direction', 'parent_id']); - } - - // StatefulData - protected function getDerived() - { - return [ - 'user_id' => ['user', 'user.id'], /* alias */ - ]; - } + const FAILED = 'failed'; } diff --git a/src/Ushahidi/Core/Entity/MessageRepository.php b/src/Ushahidi/Core/Entity/MessageRepository.php index 9007aac804..1bf6d18853 100644 --- a/src/Ushahidi/Core/Entity/MessageRepository.php +++ b/src/Ushahidi/Core/Entity/MessageRepository.php @@ -11,11 +11,10 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Repository\EntityCreate; -use Ushahidi\Contracts\Repository\EntityCreateMany; use Ushahidi\Contracts\Repository\EntityGet; use Ushahidi\Contracts\Repository\EntityExists; +use Ushahidi\Contracts\Repository\EntityCreate; +use Ushahidi\Contracts\Repository\EntityCreateMany; use Ushahidi\Contracts\Repository\CreateRepository; use Ushahidi\Contracts\Repository\UpdateRepository; @@ -31,20 +30,19 @@ interface MessageRepository extends /** * Load pending message by data provider * - * @param String $status - * @param String $data_source + * @param string $status + * @param string $data_source * @param integer $limit - * @return [Message, ...] + * @return \Ushahidi\Core\Entity\Message[] */ public function getPendingMessages($data_source, $limit); /** * Load pending message by type * - * @param String $status - * @param String $data_source + * @param string $status * @param integer $limit - * @return [Message, ...] + * @return \Ushahidi\Core\Entity\Message[] */ public function getPendingMessagesByType($type, $limit); @@ -78,4 +76,17 @@ public function updateMessageStatus($id, $status, $data_source_message_id = null * @return string */ public function getLastUID($data_source); + + /** + * @param int $parent_id + * @return boolean + */ + public function parentExists($parent_id); + + /** + * @param string $status + * @param string $direction + * @return boolean + */ + public function checkStatus($status, $direction); } diff --git a/src/Ushahidi/Core/Entity/NotificationQueueRepository.php b/src/Ushahidi/Core/Entity/NotificationQueueRepository.php deleted file mode 100644 index 7f57181f8e..0000000000 --- a/src/Ushahidi/Core/Entity/NotificationQueueRepository.php +++ /dev/null @@ -1,30 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2022 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Core\Entity; - -use Ushahidi\Contracts\Repository\EntityGet; -use Ushahidi\Contracts\Repository\EntityExists; -use Ushahidi\Contracts\Repository\CreateRepository; - -interface NotificationQueueRepository extends - EntityGet, - EntityExists, - CreateRepository -{ - /** - * Get new notifications - * - * @param int $limit - * @return array - */ - public function getNotifications($limit); -} diff --git a/src/Ushahidi/Core/Entity/NotificationRepository.php b/src/Ushahidi/Core/Entity/NotificationRepository.php deleted file mode 100644 index 872cb779d3..0000000000 --- a/src/Ushahidi/Core/Entity/NotificationRepository.php +++ /dev/null @@ -1,22 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2022 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Core\Entity; - -use Ushahidi\Contracts\Repository\EntityGet; -use Ushahidi\Contracts\Repository\EntityExists; - -interface NotificationRepository extends - EntityGet, - EntityExists -{ - -} diff --git a/src/Ushahidi/Core/Entity/Permission.php b/src/Ushahidi/Core/Entity/Permission.php index 19c3df500f..fd62a98b3e 100644 --- a/src/Ushahidi/Core/Entity/Permission.php +++ b/src/Ushahidi/Core/Entity/Permission.php @@ -11,33 +11,19 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Contracts\Entity; -class Permission extends StaticEntity +interface Permission extends Entity { - protected $id; - protected $name; - protected $description; - - // DataTransformer - public function getDefinition() - { - return [ - 'id' => 'int', - 'name' => 'string', - 'description' => 'string', - ]; - } - - // Entity - public function getResource() - { - return 'permission'; - } - - // StatefulData - protected function getImmutable() - { - return array_merge(parent::getImmutable(), ['name']); - } + // FIXME: this LEGACY_DATA_IMPORT has to be removed after the prod release + const LEGACY_DATA_IMPORT = 'Bulk Data Import'; + // Standard permissions names + const DATA_IMPORT_EXPORT = 'Bulk Data Import and Export'; + const MANAGE_POSTS = 'Manage Posts'; + const MANAGE_SETS = 'Manage Collections and Saved Searches'; + const MANAGE_SETTINGS = 'Manage Settings'; + const MANAGE_USERS = 'Manage Users'; + const EDIT_OWN_POSTS = 'Edit their own posts'; + const DELETE_POSTS = 'Delete Posts'; + const DELETE_OWN_POSTS = 'Delete Their Own Posts'; } diff --git a/src/Ushahidi/Core/Entity/Post.php b/src/Ushahidi/Core/Entity/Post.php index 1bd3e235a0..7f127d314b 100644 --- a/src/Ushahidi/Core/Entity/Post.php +++ b/src/Ushahidi/Core/Entity/Post.php @@ -1,7 +1,6 @@ * @package Ushahidi\Platform @@ -11,114 +10,8 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Core\StaticEntity; -use Ushahidi\Core\Concerns\Permissions\ManagePosts; -use Ushahidi\Core\Tool\Permissions\Permissionable; +use Ushahidi\Contracts\Entity; -class Post extends StaticEntity +interface Post extends Entity { - protected $id; - protected $parent_id; - protected $form_id; - protected $user_id; - protected $message_id; - // Color is taken from the asscoiated form entity - protected $color; - protected $type; - protected $title; - protected $slug; - protected $content; - protected $author_email; - protected $author_realname; - protected $status; - protected $created; - protected $updated; - protected $locale; - protected $values; - protected $post_date; - protected $tags; - protected $published_to; - protected $completed_stages; - protected $sets; - protected $lock; - // Source when from external provider: SMS, Email, etc - protected $source; - // When originating in an SMS message - protected $contact_id; - protected $data_source_message_id; - - // StatefulData - protected function getDefaultData() - { - return [ - 'type' => 'report', - 'locale' => 'en_US', - 'published_to' => [], - ]; - } - - // StatefulData - protected function getDerived() - { - return [ - 'slug' => function ($data) { - if (array_key_exists('title', $data)) { - // Truncate the title to 137 chars so that the - // 13 char uniqid will fit - $slug = $data['title']; - if (strlen($slug) >= 137) { - $slug = substr($slug, 0, 136); - } - return $slug . ' ' . uniqid(); - } - return false; - }, - 'form_id' => ['form', 'form.id'], /* alias */ - 'user_id' => ['user', 'user.id'], /* alias */ - 'parent_id' => ['parent', 'parent.id'], /* alias */ - ]; - } - - // DataTransformer - protected function getDefinition() - { - return [ - 'id' => 'int', - 'parent_id' => 'int', - 'form' => false, /* alias */ - 'form_id' => 'int', - 'user' => false, /* alias */ - 'user_id' => 'int', - 'type' => 'string', - 'title' => 'string', - 'slug' => '*slug', - 'content' => 'string', - 'author_email' => 'string', /* @todo email filter */ - 'author_realname' => 'string', /* @todo redundent with user record */ - 'status' => 'string', - 'created' => 'int', - 'updated' => 'int', - 'post_date' => '*date', - 'locale' => '*lowercasestring', - 'values' => 'array', - 'tags' => 'array', - 'published_to' => '*json', - 'completed_stages'=> '*arrayInt', - 'sets' => 'array', - 'lock' => 'array', - 'data_source_message_id' => 'string' - ]; - } - - // Entity - public function getResource() - { - return 'posts'; - } - - // StatefulData - protected function getImmutable() - { - return array_merge(parent::getImmutable(), ['type', 'form_id']); - } } diff --git a/src/Ushahidi/Core/Entity/PostExportRepository.php b/src/Ushahidi/Core/Entity/PostExportRepository.php deleted file mode 100644 index 2ed5975587..0000000000 --- a/src/Ushahidi/Core/Entity/PostExportRepository.php +++ /dev/null @@ -1,25 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2017 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Core\Entity; - -interface PostExportRepository -{ - - /** - * Get Column Names for given Post Data - * @param Post Data array $data - * @return Array - */ - public function retrieveMetaData($data, $attributes); - - public function retrieveCompletedStageNames($stage_ids); -} diff --git a/src/Ushahidi/Core/Entity/PostLockRepository.php b/src/Ushahidi/Core/Entity/PostLockRepository.php index ec9e195174..1cdc8e564e 100644 --- a/src/Ushahidi/Core/Entity/PostLockRepository.php +++ b/src/Ushahidi/Core/Entity/PostLockRepository.php @@ -23,5 +23,7 @@ public function isActive($entity_id); public function getPostLock($entity_id); + public function getNoneExpiredPostLock($entity_id); + public function postIsLocked($entity_id); } diff --git a/src/Ushahidi/Core/Entity/PostRepository.php b/src/Ushahidi/Core/Entity/PostRepository.php index ee7c5a9f9b..fdef847369 100644 --- a/src/Ushahidi/Core/Entity/PostRepository.php +++ b/src/Ushahidi/Core/Entity/PostRepository.php @@ -28,7 +28,7 @@ interface PostRepository extends * @param int $id * @param int $parent_id * @param string $type - * @return \Ushahidi\Contracts\Entity + * @return \Ushahidi\Core\Entity\Post */ public function getByIdAndParent($id, $parent_id, $type); @@ -36,9 +36,48 @@ public function getByIdAndParent($id, $parent_id, $type); * @param string $locale * @param int $parent_id * @param string $type - * @return \Ushahidi\Contracts\Entity + * @return \Ushahidi\Core\Entity\Post */ public function getByLocale($locale, $parent_id, $type); + /** + * @param string $slug + * + * @return boolean + */ + public function isSlugAvailable($slug); + + /** + * @param string $locale + * @param int $parent_id + * @param string $type + * + * @return boolean + */ + public function doesTranslationExist($locale, $parent_id, $type); + + /** + * Checking if a post requires approval via the form it belongs too + * + * @param int|null $formId + * @return boolean + */ + public function doesPostRequireApproval($formId); + + /** + * @param int $post_id + * @param int $set_id + * + * @return \Ushahidi\Core\Entity\Post + */ + public function getPostInSet($post_id, $set_id); + + public function getTotal(); + + /** + * Get total number of published posts + * @return int + */ + public function getPublishedTotal(); } diff --git a/src/Ushahidi/Core/Entity/PostValue.php b/src/Ushahidi/Core/Entity/PostValue.php index ca7483ffd9..280777ba67 100644 --- a/src/Ushahidi/Core/Entity/PostValue.php +++ b/src/Ushahidi/Core/Entity/PostValue.php @@ -1,7 +1,6 @@ * @package Ushahidi\Platform @@ -11,38 +10,8 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Contracts\Entity; -class PostValue extends StaticEntity +interface PostValue extends Entity { - protected $id; - protected $post_id; - protected $form_attribute_id; - protected $value; - protected $created; - // Attribute fields - protected $key; - protected $cardinality; - protected $type; - - // DataTransformer - protected function getDefinition() - { - return [ - 'id' => 'int', - 'post_id' => 'int', - 'form_attribute_id' => 'int', - 'value' => null, /* @todo array or string? not sure */ - 'created' => 'int', - 'key' => 'string', - 'cardinality' => 'int', - 'type' => 'string', - ]; - } - - // Entity - public function getResource() - { - return 'post_values'; - } } diff --git a/src/Ushahidi/Core/Entity/PostValueRepository.php b/src/Ushahidi/Core/Entity/PostValueRepository.php deleted file mode 100644 index 9e269966f4..0000000000 --- a/src/Ushahidi/Core/Entity/PostValueRepository.php +++ /dev/null @@ -1,38 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2022 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Core\Entity; - -interface PostValueRepository -{ - /** - * @param int $id - * @param int $post_id - * @param int $form_attribute_id - * @return Ushahidi\Core\Entity\PostValue - */ - public function get($id, $post_id = null, $form_attribute_id = null); - - /** - * Get a query to return matching values LIKE some value - * - * @param int $form_attribute_id - * @param string $match - * @return Database_Query - */ - public function getValueQuery($form_attribute_id, array $matches); - - /** - * Get the table name for use in joins - * @return String - */ - public function getValueTable(); -} diff --git a/src/Ushahidi/Core/Entity/ReadTosRepository.php b/src/Ushahidi/Core/Entity/ReadTosRepository.php deleted file mode 100644 index b1f2a5853b..0000000000 --- a/src/Ushahidi/Core/Entity/ReadTosRepository.php +++ /dev/null @@ -1,21 +0,0 @@ - - * @package Ushahidi\Platform - * @copyright 2017 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Core\Entity; - -interface ReadTosRepository -{ - /** - * @param int $id - * @return \Ushahidi\Contracts\Entity - */ - public function get($id); -} diff --git a/src/Ushahidi/Core/Entity/Role.php b/src/Ushahidi/Core/Entity/Role.php index 492874accb..e075812fb6 100644 --- a/src/Ushahidi/Core/Entity/Role.php +++ b/src/Ushahidi/Core/Entity/Role.php @@ -1,7 +1,6 @@ * @package Ushahidi\Platform @@ -11,45 +10,8 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Core\EloquentEntity; +use Ushahidi\Contracts\Entity; -class Role extends EloquentEntity +interface Role extends Entity { - protected $id; - protected $name; - protected $display_name; - protected $description; - protected $permissions; - protected $protected; - - // DataTransformer - protected function getDefinition() - { - return [ - 'id' => 'int', - 'name' => 'string', - 'display_name' => 'string', - 'description' => 'string', - 'permissions' => 'array', - 'protected' => 'boolean', - ]; - } - - // Entity - public function getResource() - { - return 'roles'; - } - - // Entity - public function getId() - { - return $this->getAttribute('name'); - } - - // StatefulData - protected function getImmutable() - { - return array_merge(parent::getImmutable(), ['name','protected']); - } } diff --git a/src/Ushahidi/Core/Entity/RoleRepository.php b/src/Ushahidi/Core/Entity/RoleRepository.php index 0d985eb1c1..b438e56f59 100644 --- a/src/Ushahidi/Core/Entity/RoleRepository.php +++ b/src/Ushahidi/Core/Entity/RoleRepository.php @@ -19,14 +19,8 @@ interface RoleRepository extends EntityExists { /** - * @param Array $roles - * @return Boolean + * @param string $value + * @return \Ushahidi\Core\Entity\Role */ - public function doRolesExist(array $roles = null); - - /** - * @param string $name - * @return \Ushahidi\Contracts\Entity - */ - public function getByName($name); + public function getByName($value); } diff --git a/src/Ushahidi/Core/Entity/Set.php b/src/Ushahidi/Core/Entity/Set.php index 1e1dda99b4..6123a2dfef 100644 --- a/src/Ushahidi/Core/Entity/Set.php +++ b/src/Ushahidi/Core/Entity/Set.php @@ -1,7 +1,7 @@ * @package Ushahidi\Platform @@ -11,58 +11,9 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Core\StaticEntity; -use Ushahidi\Core\EloquentEntity; +use Ushahidi\Contracts\Entity; -class Set extends EloquentEntity +interface Set extends Entity { - protected $id; - protected $user_id; - protected $name; - protected $description; - protected $url; - protected $view; - protected $view_options; - protected $role; - protected $featured; - protected $created; - protected $updated; - // DataTransformer - protected function getDefinition() - { - return [ - 'id' => 'int', - 'user_id' => 'int', - 'name' => 'string', - 'description' => 'string', - 'url' => '*url', - 'view' => 'string', - 'view_options' => '*json', - 'role' => '*json', - 'featured' => 'boolean', - 'created' => 'int', - 'updated' => 'int', - ]; - } - - // Entity - public function getResource() - { - return 'sets'; - } - - // StatefulData - protected function getImmutable() - { - return array_merge(parent::getImmutable(), ['user_id']); - } - - // StatefulData - protected function getDerived() - { - return [ - 'user_id' => ['user', 'user.id'], /* alias */ - ]; - } } diff --git a/src/Ushahidi/Core/Entity/Tag.php b/src/Ushahidi/Core/Entity/Tag.php index d4a8117d90..33d8fbfdf1 100644 --- a/src/Ushahidi/Core/Entity/Tag.php +++ b/src/Ushahidi/Core/Entity/Tag.php @@ -1,7 +1,7 @@ * @package Ushahidi\Platform @@ -11,74 +11,9 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Core\EloquentEntity; +use Ushahidi\Contracts\Entity; -class Tag extends EloquentEntity +interface Tag extends Entity { - protected $id; - protected $parent_id; - protected $tag; - protected $slug; - protected $type; - protected $color; - protected $icon; - protected $description; - protected $priority; - protected $created; - protected $role; - protected $children; - // StatefulData - protected function getDefaultData() - { - return [ - 'type' => 'category', - 'icon' => 'tag', - 'priority' => 99, - ]; - } - - // StatefulData - protected function getDerived() - { - return [ - 'slug' => 'tag', - ]; - } - - // DataTransformer - protected function getDefinition() - { - $typeColor = function ($color) { - if ($color) { - return ltrim($color, '#'); - } - }; - return [ - 'id' => 'int', - 'parent_id' => 'int', - 'tag' => 'string', - 'slug' => '*slug', - 'type' => 'string', - 'color' => $typeColor, - 'icon' => 'string', - 'description' => 'string', - 'priority' => 'int', - 'created' => 'int', - 'role' => '*json', - 'children' => 'array', - ]; - } - - // Entity - public function getResource() - { - return 'tags'; - } - - protected function getImmutable() - { - // Hack: Add computed properties to immutable list - return array_merge(parent::getImmutable(), ['children']); - } } diff --git a/src/Ushahidi/Core/Entity/TagRepository.php b/src/Ushahidi/Core/Entity/TagRepository.php index e10160a3f3..9e5d9312ca 100644 --- a/src/Ushahidi/Core/Entity/TagRepository.php +++ b/src/Ushahidi/Core/Entity/TagRepository.php @@ -22,5 +22,25 @@ interface TagRepository extends EntityCreateMany, EntityExists { + + /** + * @param string $slug + * + * @return boolean + */ + public function isSlugAvailable($slug); + + /** + * @param string $tag + * + * @return \Ushahidi\Core\Entity\Tag + */ + public function getByTag($tag); + + /** + * @param int|string|\Ushahidi\Core\Entity\Tag $value + * + * @return boolean + */ public function doesTagExist($value); } diff --git a/src/Ushahidi/Core/Entity/User.php b/src/Ushahidi/Core/Entity/User.php index 1727c14a92..95364cb4b0 100644 --- a/src/Ushahidi/Core/Entity/User.php +++ b/src/Ushahidi/Core/Entity/User.php @@ -11,55 +11,9 @@ namespace Ushahidi\Core\Entity; -use Ushahidi\Core\EloquentEntity; +use Ushahidi\Contracts\Entity; -class User extends EloquentEntity +interface User extends Entity { - protected $id; - protected $email; - protected $realname; - protected $password; - protected $logins = 0; - protected $failed_attempts = 0; - protected $last_login; - protected $last_attempt; - protected $created; - protected $updated; - protected $role; - protected $language; - protected $contacts; - // DataTransformer - protected function getDefinition() - { - return [ - 'id' => 'int', - 'email' => '*email', - 'realname' => 'string', - 'password' => 'string', - 'logins' => 'int', - 'failed_attempts' => 'int', - 'last_login' => 'int', - 'last_attempt' => 'int', - 'created' => 'int', - 'updated' => 'int', - 'role' => 'string', - 'language' => 'string', - 'contacts' => 'array' - ]; - } - - // Entity - public function getResource() - { - return 'users'; - } - - public function getDefaultData() - { - return [ - 'logins' => 0, - 'failed_attempts' => 0 - ]; - } } diff --git a/src/Ushahidi/Core/Entity/UserRepository.php b/src/Ushahidi/Core/Entity/UserRepository.php index a08e53767a..30215d9207 100644 --- a/src/Ushahidi/Core/Entity/UserRepository.php +++ b/src/Ushahidi/Core/Entity/UserRepository.php @@ -13,9 +13,9 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\Repository\EntityCreate; -use Ushahidi\Contracts\Repository\EntityCreateMany; -use Ushahidi\Contracts\Repository\DeleteRepository; use Ushahidi\Contracts\Repository\ReadRepository; +use Ushahidi\Contracts\Repository\DeleteRepository; +use Ushahidi\Contracts\Repository\EntityCreateMany; interface UserRepository extends ReadRepository, @@ -30,20 +30,17 @@ interface UserRepository extends */ public function getByEmail($email); - /** - * - * @param [type] $token - * - * @return bool - */ + public function isUniqueEmail($email); + + public function register(Entity $entity); + + public function getResetToken(Entity $entity); + public function isValidResetToken($token); - /** - * Undocumented function - * - * @param array $array - * - * @return int - */ + public function setPassword($token, $password); + + public function deleteResetToken($token); + public function getTotalCount(array $array); } diff --git a/src/Ushahidi/Core/Entity/UserSetting.php b/src/Ushahidi/Core/Entity/UserSetting.php index d10c5ec0d0..b38ac50c14 100644 --- a/src/Ushahidi/Core/Entity/UserSetting.php +++ b/src/Ushahidi/Core/Entity/UserSetting.php @@ -1,43 +1,19 @@ * @package Ushahidi\Platform - * @copyright 2018 Ushahidi + * @copyright 2014 Ushahidi * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ namespace Ushahidi\Core\Entity; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Contracts\Entity; -class UserSetting extends StaticEntity +interface UserSetting extends Entity { - protected $id; - protected $user_id; - protected $config_key; - protected $config_value; - protected $created; - protected $updated; - // DataTransformer - protected function getDefinition() - { - return [ - 'id' => 'int', - 'user_id' => 'int', - 'config_key' => 'string', - 'config_value' => 'string', - 'created' => 'int', - 'updated' => 'int', - ]; - } - - // Entity - public function getResource() - { - return 'user_settings'; - } } diff --git a/src/Ushahidi/Core/Entity/UserSettingRepository.php b/src/Ushahidi/Core/Entity/UserSettingRepository.php index ef22f139f7..9ee4ded62f 100644 --- a/src/Ushahidi/Core/Entity/UserSettingRepository.php +++ b/src/Ushahidi/Core/Entity/UserSettingRepository.php @@ -20,9 +20,9 @@ interface UserSettingRepository extends { /** - * @param int $form_id + * @param mixed $user_id * - * @return [Ushahidi\Core\Entity\UserSetting, ...] + * @return \Ushahidi\Core\Entity\UserSetting[] */ public function getByUser($user_id); } diff --git a/src/Ushahidi/Core/DynamicEntity.php b/src/Ushahidi/Core/Ohanzee/DynamicEntity.php similarity index 88% rename from src/Ushahidi/Core/DynamicEntity.php rename to src/Ushahidi/Core/Ohanzee/DynamicEntity.php index 97b6e1877f..d424586346 100644 --- a/src/Ushahidi/Core/DynamicEntity.php +++ b/src/Ushahidi/Core/Ohanzee/DynamicEntity.php @@ -12,10 +12,9 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Core; +namespace Ushahidi\Core\Ohanzee; use Ushahidi\Contracts\Entity; -use Ushahidi\Core\Concerns\StatefulData; abstract class DynamicEntity implements Entity { @@ -23,15 +22,15 @@ abstract class DynamicEntity implements Entity use StatefulData; /** - * @var Array + * @var array */ protected $data = []; /** * Transparent access to dynamic entity properties. * - * @param String $key - * @return Mixed + * @param string $key + * @return mixed */ public function __get($key) { @@ -41,8 +40,8 @@ public function __get($key) /** * Transparent checking of dynamic entity properties. * - * @param String $key - * @return Boolean + * @param string $key + * @return boolean */ public function __isset($key) { diff --git a/src/Ushahidi/Core/Ohanzee/Entities/ApiKey.php b/src/Ushahidi/Core/Ohanzee/Entities/ApiKey.php new file mode 100644 index 0000000000..172b95ce3d --- /dev/null +++ b/src/Ushahidi/Core/Ohanzee/Entities/ApiKey.php @@ -0,0 +1,41 @@ + + * @package Ushahidi\Platform + * @copyright 2014 Ushahidi + * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) + */ + +namespace Ushahidi\Core\Ohanzee\Entities; + +use Ushahidi\Core\Entity\ApiKey as EntityApiKey; +use Ushahidi\Core\Ohanzee\StaticEntity; + +class ApiKey extends StaticEntity implements EntityApiKey +{ + protected $id; + protected $api_key; + protected $created; + protected $updated; + + + // DataTransformer + protected function getDefinition() + { + return [ + 'id' => 'int', + 'api_key' => 'string', + 'created' => 'int', + 'updated' => 'int', + ]; + } + + // Entity + public function getResource() + { + return 'apikey'; + } +} diff --git a/src/Ushahidi/Core/Entity/CSV.php b/src/Ushahidi/Core/Ohanzee/Entities/CSV.php similarity index 94% rename from src/Ushahidi/Core/Entity/CSV.php rename to src/Ushahidi/Core/Ohanzee/Entities/CSV.php index 6a1d7d5e4e..a032133b50 100644 --- a/src/Ushahidi/Core/Entity/CSV.php +++ b/src/Ushahidi/Core/Ohanzee/Entities/CSV.php @@ -9,9 +9,9 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Core\Entity; +namespace Ushahidi\Core\Ohanzee\Entities; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Core\Ohanzee\StaticEntity; class CSV extends StaticEntity { diff --git a/src/Ushahidi/Core/Ohanzee/Entities/Config.php b/src/Ushahidi/Core/Ohanzee/Entities/Config.php new file mode 100644 index 0000000000..f9dda9b036 --- /dev/null +++ b/src/Ushahidi/Core/Ohanzee/Entities/Config.php @@ -0,0 +1,36 @@ + + * @package Ushahidi\Platform + * @copyright 2014 Ushahidi + * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) + */ + +namespace Ushahidi\Core\Ohanzee\Entities; + +use Ushahidi\Core\Entity\Config as EntityConfig; +use Ushahidi\Core\Ohanzee\DynamicEntity; + +class Config extends DynamicEntity implements EntityConfig +{ + // DataTransformer + protected function getDefinition() + { + return ['id' => 'string']; + } + + // Entity + public function getResource() + { + return 'config'; + } + + // StatefulData + public function getImmutable() + { + return array_merge(parent::getImmutable(), ['allowed_privileges']); + } +} diff --git a/src/Ushahidi/Core/Ohanzee/Entities/Contact.php b/src/Ushahidi/Core/Ohanzee/Entities/Contact.php new file mode 100644 index 0000000000..df612dd52c --- /dev/null +++ b/src/Ushahidi/Core/Ohanzee/Entities/Contact.php @@ -0,0 +1,65 @@ + + * @package Ushahidi\Platform + * @copyright 2014 Ushahidi + * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) + */ + +namespace Ushahidi\Core\Ohanzee\Entities; + +use Ushahidi\Core\Ohanzee\StaticEntity; +use Ushahidi\Core\Entity\Contact as EntityContact; + +class Contact extends StaticEntity implements EntityContact +{ + protected $id; + protected $user_id; + protected $data_source; + protected $type; + protected $contact; + protected $created; + protected $updated; + protected $can_notify; + public $country_code; // we only want this for validation, needs to be unset before saving + // StatefulData + protected function getDerived() + { + // Foreign key alias + return [ + 'user_id' => ['user', 'user.id'] + ]; + } + + // DataTransformer + protected function getDefinition() + { + return [ + 'id' => 'int', + 'user' => false, /* alias */ + 'user_id' => 'int', + 'data_source' => 'string', + 'type' => 'string', + 'contact' => 'string', + 'created' => 'int', + 'updated' => 'int', + 'can_notify' => 'bool', + ]; + } + + // Entity + public function getResource() + { + return 'contacts'; + } + + protected function getDefaultData() + { + return [ + 'can_notify' => 0, + ]; + } +} diff --git a/src/Ushahidi/Core/Entity/CountryCode.php b/src/Ushahidi/Core/Ohanzee/Entities/CountryCode.php similarity index 83% rename from src/Ushahidi/Core/Entity/CountryCode.php rename to src/Ushahidi/Core/Ohanzee/Entities/CountryCode.php index f646885581..4f3032451f 100644 --- a/src/Ushahidi/Core/Entity/CountryCode.php +++ b/src/Ushahidi/Core/Ohanzee/Entities/CountryCode.php @@ -9,12 +9,11 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Core\Entity; +namespace Ushahidi\Core\Ohanzee\Entities; -use Ushahidi\Core\StaticEntity; -use Ushahidi\Core\EloquentEntity; +use Ushahidi\Core\Ohanzee\StaticEntity; -class CountryCode extends EloquentEntity +class CountryCode extends StaticEntity { protected $id; protected $country_name; diff --git a/src/Ushahidi/Core/Entity/DataProvider.php b/src/Ushahidi/Core/Ohanzee/Entities/DataProvider.php similarity index 85% rename from src/Ushahidi/Core/Entity/DataProvider.php rename to src/Ushahidi/Core/Ohanzee/Entities/DataProvider.php index b6649c48db..810dfefef4 100644 --- a/src/Ushahidi/Core/Entity/DataProvider.php +++ b/src/Ushahidi/Core/Ohanzee/Entities/DataProvider.php @@ -9,12 +9,11 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Core\Entity; +namespace Ushahidi\Core\Ohanzee\Entities; -use Ushahidi\Core\BasicEntity; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Core\Ohanzee\StaticEntity; -class DataProvider extends BasicEntity +class DataProvider extends StaticEntity { protected $id; protected $name; diff --git a/src/Ushahidi/Core/Ohanzee/Entities/ExportBatch.php b/src/Ushahidi/Core/Ohanzee/Entities/ExportBatch.php new file mode 100644 index 0000000000..946f6cec0d --- /dev/null +++ b/src/Ushahidi/Core/Ohanzee/Entities/ExportBatch.php @@ -0,0 +1,52 @@ + + * @package Ushahidi\Platform + * @copyright 2018 Ushahidi + * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) + */ + +namespace Ushahidi\Core\Ohanzee\Entities; + +use Ushahidi\Core\Entity\ExportBatch as EntityExportBatch; +use Ushahidi\Core\Ohanzee\StaticEntity; + +class ExportBatch extends StaticEntity implements EntityExportBatch +{ + protected $id; + protected $export_job_id; + protected $batch_number; + protected $status; + protected $filename; + protected $url; + protected $has_header; + protected $rows; + protected $created; + protected $updated; + + // DataTransformer + protected function getDefinition() + { + return [ + 'id' => 'int', + 'export_job_id' => 'int', + 'batch_number' => 'int', + 'status' => 'string', + 'filename' => 'string', + 'url' => 'string', + 'has_header' => 'int', + 'rows' => 'int', + 'created' => 'int', + 'updated' => 'int', + ]; + } + + // Entity + public function getResource() + { + return 'export_batch'; + } +} diff --git a/src/Ushahidi/Core/Ohanzee/Entities/ExportJob.php b/src/Ushahidi/Core/Ohanzee/Entities/ExportJob.php new file mode 100644 index 0000000000..37803a5294 --- /dev/null +++ b/src/Ushahidi/Core/Ohanzee/Entities/ExportJob.php @@ -0,0 +1,92 @@ + + * @package Ushahidi\Platform + * @copyright 2018 Ushahidi + * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) + */ + +namespace Ushahidi\Core\Ohanzee\Entities; + +use Ushahidi\Core\Entity\ExportJob as EntityExportJob; +use Ushahidi\Core\Ohanzee\StaticEntity; + +class ExportJob extends StaticEntity implements EntityExportJob +{ + protected $id; + protected $entity_type; + protected $user_id; + protected $fields; + protected $filters; + protected $status; + protected $url; + protected $header_row; + protected $created; + protected $updated; + protected $url_expiration; + protected $include_hxl; + protected $send_to_browser; + protected $send_to_hdx; + protected $hxl_heading_row; + protected $hxl_meta_data_id; + protected $total_batches; + protected $total_rows; + + // DataTransformer + protected function getDefinition() + { + return [ + 'id' => 'int', + 'entity_type' => 'string', + 'user_id' => 'int', + 'status' => 'string', + 'url' => 'string', + 'fields' => '*json', + 'filters' => '*json', + 'header_row' => '*json', + 'created' => 'int', + 'updated' => 'int', + 'url_expiration' => 'int', + 'include_hxl' => 'bool', + 'send_to_browser' => 'bool', + 'send_to_hdx' => 'bool', + 'hxl_heading_row' => '*json', + 'hxl_meta_data_id' => 'int', + 'total_batches' => 'int', + 'total_rows' => 'int', + ]; + } + + // Entity + public function getResource() + { + return 'export_job'; + } + + // StatefulData + protected function getDerived() + { + // Foreign key alias + return [ + 'hxl_meta_data_id' => ['hxl_meta_data', 'hxl_meta_data.id'], + 'user_id' => ['users', 'users.id'] + ]; + } + + // StatefulData + protected function getImmutable() + { + return array_merge(parent::getImmutable(), ['user_id']); + } + + public function isCombineBatchesDone() + { + return in_array( + $this->status, + [self::STATUS_SUCCESS, self::STATUS_EXPORTED_TO_CDN, self::STATUS_PENDING_HDX] + ); + } +} diff --git a/src/Ushahidi/Core/Ohanzee/Entities/Form.php b/src/Ushahidi/Core/Ohanzee/Entities/Form.php new file mode 100644 index 0000000000..6946350d25 --- /dev/null +++ b/src/Ushahidi/Core/Ohanzee/Entities/Form.php @@ -0,0 +1,102 @@ + + * @package Ushahidi\Platform + * @copyright 2014 Ushahidi + * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) + */ + +namespace Ushahidi\Core\Ohanzee\Entities; + +use Ushahidi\Core\Entity\Form as EntityForm; +use Ushahidi\Core\Ohanzee\StaticEntity; + +class Form extends StaticEntity implements EntityForm +{ + protected $id; + protected $parent_id; + protected $name; + protected $description; + protected $color; + protected $type; + protected $disabled; + protected $created; + protected $updated; + protected $hide_author; + protected $hide_time; + protected $hide_location; + protected $require_approval; + protected $everyone_can_create; + protected $targeted_survey; + protected $can_create; + protected $tags; + + // StatefulData + protected function getDefaultData() + { + return [ + 'type' => 'report', + 'require_approval' => true, + 'everyone_can_create' => true, + 'hide_author' => false, + 'hide_time' => false, + 'hide_location' => false, + 'targeted_survey' => false, + ]; + } + + // DataTransformer + protected function getDefinition() + { + $typeColor = function ($color) { + if ($color) { + return ltrim($color, '#'); + } + }; + return [ + 'id' => 'int', + 'parent_id' => 'int', + 'name' => 'string', + 'description' => 'string', + 'color' => $typeColor, + 'type' => 'string', + 'disabled' => 'bool', + 'created' => 'int', + 'updated' => 'int', + 'hide_author' => 'bool', + 'hide_time' => 'bool', + 'hide_location' => 'bool', + 'require_approval' => 'bool', + 'everyone_can_create' => 'bool', + 'targeted_survey' => 'bool', + 'can_create' => 'array', + 'tags' => 'array', + ]; + } + + // Entity + public function getResource() + { + return 'forms'; + } + + // StatefulData + protected function getImmutable() + { + // Hack: Add computed properties to immutable list + return array_merge(parent::getImmutable(), ['tags', 'can_create']); + } + + public function __toString() + { + return json_encode([ + 'id' => $this->id, + 'parent_id' => $this->parent_id, + 'name' => $this->name, + 'description' => $this->description + ]); + } +} diff --git a/src/Ushahidi/Core/Ohanzee/Entities/FormAttribute.php b/src/Ushahidi/Core/Ohanzee/Entities/FormAttribute.php new file mode 100644 index 0000000000..d658c05a0a --- /dev/null +++ b/src/Ushahidi/Core/Ohanzee/Entities/FormAttribute.php @@ -0,0 +1,85 @@ + + * @package Ushahidi\Platform + * @copyright 2014 Ushahidi + * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) + */ + +namespace Ushahidi\Core\Ohanzee\Entities; + +use Ushahidi\Core\Entity\FormAttribute as EntityFormAttribute; +use Ushahidi\Core\Ohanzee\StaticEntity; + +class FormAttribute extends StaticEntity implements EntityFormAttribute +{ + protected $id; + protected $key; + protected $label; + protected $instructions; + protected $input; + protected $type; + protected $required; + protected $default; + protected $priority; + protected $options = []; + protected $cardinality; + protected $config = []; + protected $form_stage_id; + protected $response_private; + + // StatefulData + protected function getDerived() + { + return [ + 'form_stage_id' => ['form_stage', 'form_stage.id'], /* alias */ + ]; + } + + // DataTransformer + protected function getDefinition() + { + return [ + 'id' => 'int', + 'key' => 'string', + 'label' => 'string', + 'instructions' => 'string', + 'input' => 'string', + 'type' => 'string', + 'required' => 'bool', + 'default' => 'string', + 'priority' => 'int', + 'options' => '*json', + 'cardinality' => 'int', + 'config' => '*json', + 'form_stage' => false, /* alias */ + 'form_stage_id' => 'int', + 'response_private' => 'bool', + ]; + } + + // Entity + public function getResource() + { + return 'form_attributes'; + } + + public function __toString() + { + return json_encode([ + 'id' => $this->id, + 'key' => $this->key, + 'label' => $this->label, + 'instructions' => $this->instructions, + 'input' => $this->input, + 'type' => $this->type, + 'required' => $this->required, + 'default' => $this->default, + 'priority' => $this->priority, + 'options' => $this->options, + ]); + } +} diff --git a/src/Ushahidi/Core/Entity/FormContact.php b/src/Ushahidi/Core/Ohanzee/Entities/FormContact.php similarity index 91% rename from src/Ushahidi/Core/Entity/FormContact.php rename to src/Ushahidi/Core/Ohanzee/Entities/FormContact.php index 0972ce405a..d1beaf744e 100644 --- a/src/Ushahidi/Core/Entity/FormContact.php +++ b/src/Ushahidi/Core/Ohanzee/Entities/FormContact.php @@ -9,9 +9,9 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Core\Entity; +namespace Ushahidi\Core\Ohanzee\Entities; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Core\Ohanzee\StaticEntity; class FormContact extends StaticEntity { diff --git a/src/Ushahidi/Core/Entity/FormRole.php b/src/Ushahidi/Core/Ohanzee/Entities/FormRole.php similarity index 88% rename from src/Ushahidi/Core/Entity/FormRole.php rename to src/Ushahidi/Core/Ohanzee/Entities/FormRole.php index 8c2a7395e9..1dac72d32f 100644 --- a/src/Ushahidi/Core/Entity/FormRole.php +++ b/src/Ushahidi/Core/Ohanzee/Entities/FormRole.php @@ -9,9 +9,9 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Core\Entity; +namespace Ushahidi\Core\Ohanzee\Entities; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Core\Ohanzee\StaticEntity; class FormRole extends StaticEntity { diff --git a/src/Ushahidi/Core/Ohanzee/Entities/FormStage.php b/src/Ushahidi/Core/Ohanzee/Entities/FormStage.php new file mode 100644 index 0000000000..00eb080ea8 --- /dev/null +++ b/src/Ushahidi/Core/Ohanzee/Entities/FormStage.php @@ -0,0 +1,51 @@ + + * @package Ushahidi\Platform + * @copyright 2014 Ushahidi + * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) + */ + +namespace Ushahidi\Core\Ohanzee\Entities; + +use Ushahidi\Core\Ohanzee\StaticEntity; + +class FormStage extends StaticEntity +{ + protected $id; + protected $form_id; + protected $label; + protected $priority; + protected $icon; + protected $type; + protected $required; + protected $show_when_published; + protected $description; + protected $task_is_internal_only; + + // DataTransformer + protected function getDefinition() + { + return [ + 'id' => 'int', + 'description' => 'string', + 'show_when_published' => 'boolean', + 'type' => 'string', + 'form_id' => 'int', + 'label' => 'string', + 'priority' => 'int', + 'icon' => 'string', + 'required' => 'boolean', + 'task_is_internal_only' => 'boolean' + ]; + } + + // Entity + public function getResource() + { + return 'form_stages'; + } +} diff --git a/src/Ushahidi/Core/Entity/FormStats.php b/src/Ushahidi/Core/Ohanzee/Entities/FormStats.php similarity index 93% rename from src/Ushahidi/Core/Entity/FormStats.php rename to src/Ushahidi/Core/Ohanzee/Entities/FormStats.php index e218fc6c2f..193d638b71 100644 --- a/src/Ushahidi/Core/Entity/FormStats.php +++ b/src/Ushahidi/Core/Ohanzee/Entities/FormStats.php @@ -7,9 +7,9 @@ * @copyright 2014 Ushahidi * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Core\Entity; +namespace Ushahidi\Core\Ohanzee\Entities; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Core\Ohanzee\StaticEntity; class FormStats extends StaticEntity { diff --git a/src/Ushahidi/Core/Entity/Layer.php b/src/Ushahidi/Core/Ohanzee/Entities/Layer.php similarity index 95% rename from src/Ushahidi/Core/Entity/Layer.php rename to src/Ushahidi/Core/Ohanzee/Entities/Layer.php index 85ec0fd022..3d58857522 100644 --- a/src/Ushahidi/Core/Entity/Layer.php +++ b/src/Ushahidi/Core/Ohanzee/Entities/Layer.php @@ -9,9 +9,9 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Core\Entity; +namespace Ushahidi\Core\Ohanzee\Entities; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Core\Ohanzee\StaticEntity; // The layer entity is used to store map overlays class Layer extends StaticEntity diff --git a/src/Ushahidi/Core/Ohanzee/Entities/Media.php b/src/Ushahidi/Core/Ohanzee/Entities/Media.php new file mode 100644 index 0000000000..95c35572a8 --- /dev/null +++ b/src/Ushahidi/Core/Ohanzee/Entities/Media.php @@ -0,0 +1,63 @@ + + * @package Ushahidi\Platform + * @copyright 2014 Ushahidi + * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) + */ + +namespace Ushahidi\Core\Ohanzee\Entities; + +use Ushahidi\Core\Ohanzee\StaticEntity; +use Ushahidi\Core\Entity\Media as EntityMedia; + +class Media extends StaticEntity implements EntityMedia +{ + protected $id; + protected $user_id; + protected $caption; + protected $created; + protected $updated; + protected $mime; + protected $o_filename; + protected $o_size; + protected $o_width; + protected $o_height; + + // DataTransformer + public function getDefinition() + { + return [ + 'id' => 'int', + 'user_id' => 'int', + 'caption' => 'string', + 'created' => 'int', + 'updated' => 'int', + 'mime' => 'string', + 'o_filename' => 'string', + 'o_size' => 'int', + 'o_width' => 'int', + 'o_height' => 'int', + ]; + } + + // Entity + public function getResource() + { + return 'media'; + } + + // StatefulData + protected function getDefaultData() + { + return [ + 'mime' => 'text/plain', + 'o_size' => 0, + 'o_width' => null, + 'o_height' => null, + ]; + } +} diff --git a/src/Ushahidi/Core/Ohanzee/Entities/Message.php b/src/Ushahidi/Core/Ohanzee/Entities/Message.php new file mode 100644 index 0000000000..3483c51a2f --- /dev/null +++ b/src/Ushahidi/Core/Ohanzee/Entities/Message.php @@ -0,0 +1,94 @@ + + * @package Ushahidi\Platform + * @copyright 2014 Ushahidi + * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) + */ + +namespace Ushahidi\Core\Ohanzee\Entities; + +use Ushahidi\Core\Ohanzee\StaticEntity; +use Ushahidi\Core\Entity\Message as MessageEntity; + +class Message extends StaticEntity implements MessageEntity +{ + const DEFAULT_STATUS = self::PENDING; + + protected $id; + protected $parent_id; + protected $contact_id; + protected $post_id; + protected $user_id; + protected $data_source; + protected $data_source_message_id; + protected $title; + protected $message; + protected $datetime; + protected $type; + protected $status; + protected $direction; + protected $created; + protected $additional_data; + protected $notification_post_id; + // Optionally including contact directly with message + protected $contact; + protected $contact_type; + + // DataTransformer + protected function getDefinition() + { + return [ + 'id' => 'int', + 'parent_id' => 'int', + 'contact_id' => 'int', + 'post_id' => 'int', + 'user_id' => 'int', + 'title' => 'string', + 'message' => 'string', + 'datetime' => '*date', + 'type' => 'string', + 'status' => 'string', + 'direction' => 'string', + 'created' => 'int', + // data provider relations + 'data_source' => 'string', + 'data_source_message_id' => 'string', + // any additional message data + 'additional_data' => '*json', + 'notification_post_id' => 'int', + 'contact' => 'string', + 'contact_type' => 'string', + ]; + } + + protected function getDefaultData() + { + return [ + 'status' => self::PENDING, + ]; + } + + // Entity + public function getResource() + { + return 'messages'; + } + + // StatefulData + protected function getImmutable() + { + return array_merge(parent::getImmutable(), ['direction', 'parent_id']); + } + + // StatefulData + protected function getDerived() + { + return [ + 'user_id' => ['user', 'user.id'], /* alias */ + ]; + } +} diff --git a/src/Ushahidi/Core/Entity/Notification.php b/src/Ushahidi/Core/Ohanzee/Entities/Notification.php similarity index 93% rename from src/Ushahidi/Core/Entity/Notification.php rename to src/Ushahidi/Core/Ohanzee/Entities/Notification.php index 5711631a52..b783a4d59b 100644 --- a/src/Ushahidi/Core/Entity/Notification.php +++ b/src/Ushahidi/Core/Ohanzee/Entities/Notification.php @@ -9,9 +9,9 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Core\Entity; +namespace Ushahidi\Core\Ohanzee\Entities; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Core\Ohanzee\StaticEntity; class Notification extends StaticEntity { diff --git a/src/Ushahidi/Core/Entity/NotificationQueue.php b/src/Ushahidi/Core/Ohanzee/Entities/NotificationQueue.php similarity index 92% rename from src/Ushahidi/Core/Entity/NotificationQueue.php rename to src/Ushahidi/Core/Ohanzee/Entities/NotificationQueue.php index 5f47fc5804..2655ffa294 100644 --- a/src/Ushahidi/Core/Entity/NotificationQueue.php +++ b/src/Ushahidi/Core/Ohanzee/Entities/NotificationQueue.php @@ -9,9 +9,9 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Core\Entity; +namespace Ushahidi\Core\Ohanzee\Entities; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Core\Ohanzee\StaticEntity; class NotificationQueue extends StaticEntity { diff --git a/src/Ushahidi/Core/Ohanzee/Entities/Permission.php b/src/Ushahidi/Core/Ohanzee/Entities/Permission.php new file mode 100644 index 0000000000..53dff32e59 --- /dev/null +++ b/src/Ushahidi/Core/Ohanzee/Entities/Permission.php @@ -0,0 +1,44 @@ + + * @package Ushahidi\Platform + * @copyright 2014 Ushahidi + * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) + */ + +namespace Ushahidi\Core\Ohanzee\Entities; + +use Ushahidi\Core\Entity\Permission as EntityPermission; +use Ushahidi\Core\Ohanzee\StaticEntity; + +class Permission extends StaticEntity implements EntityPermission +{ + protected $id; + protected $name; + protected $description; + + // DataTransformer + public function getDefinition() + { + return [ + 'id' => 'int', + 'name' => 'string', + 'description' => 'string', + ]; + } + + // Entity + public function getResource() + { + return 'permission'; + } + + // StatefulData + protected function getImmutable() + { + return array_merge(parent::getImmutable(), ['name']); + } +} diff --git a/src/Ushahidi/Core/Ohanzee/Entities/Post.php b/src/Ushahidi/Core/Ohanzee/Entities/Post.php new file mode 100644 index 0000000000..520bd4467c --- /dev/null +++ b/src/Ushahidi/Core/Ohanzee/Entities/Post.php @@ -0,0 +1,123 @@ + + * @package Ushahidi\Platform + * @copyright 2014 Ushahidi + * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) + */ + +namespace Ushahidi\Core\Ohanzee\Entities; + +use Ushahidi\Core\Ohanzee\StaticEntity; +use Ushahidi\Core\Entity\Post as EntityPost; + +class Post extends StaticEntity implements EntityPost +{ + protected $id; + protected $parent_id; + protected $form_id; + protected $user_id; + protected $message_id; + // Color is taken from the asscoiated form entity + protected $color; + protected $type; + protected $title; + protected $slug; + protected $content; + protected $author_email; + protected $author_realname; + protected $status; + protected $created; + protected $updated; + protected $locale; + protected $values; + protected $post_date; + protected $tags; + protected $published_to; + protected $completed_stages; + protected $sets; + protected $lock; + // Source when from external provider: SMS, Email, etc + protected $source; + // When originating in an SMS message + protected $contact_id; + protected $data_source_message_id; + + // StatefulData + protected function getDefaultData() + { + return [ + 'type' => 'report', + 'locale' => 'en_US', + 'published_to' => [], + ]; + } + + // StatefulData + protected function getDerived() + { + return [ + 'slug' => function ($data) { + if (array_key_exists('title', $data)) { + // Truncate the title to 137 chars so that the + // 13 char uniqid will fit + $slug = $data['title']; + if (strlen($slug) >= 137) { + $slug = substr($slug, 0, 136); + } + return $slug . ' ' . uniqid(); + } + return false; + }, + 'form_id' => ['form', 'form.id'], /* alias */ + 'user_id' => ['user', 'user.id'], /* alias */ + 'parent_id' => ['parent', 'parent.id'], /* alias */ + ]; + } + + // DataTransformer + protected function getDefinition() + { + return [ + 'id' => 'int', + 'parent_id' => 'int', + 'form' => false, /* alias */ + 'form_id' => 'int', + 'user' => false, /* alias */ + 'user_id' => 'int', + 'type' => 'string', + 'title' => 'string', + 'slug' => '*slug', + 'content' => 'string', + 'author_email' => 'string', /* @todo email filter */ + 'author_realname' => 'string', /* @todo redundent with user record */ + 'status' => 'string', + 'created' => 'int', + 'updated' => 'int', + 'post_date' => '*date', + 'locale' => '*lowercasestring', + 'values' => 'array', + 'tags' => 'array', + 'published_to' => '*json', + 'completed_stages'=> '*arrayInt', + 'sets' => 'array', + 'lock' => 'array', + 'data_source_message_id' => 'string' + ]; + } + + // Entity + public function getResource() + { + return 'posts'; + } + + // StatefulData + protected function getImmutable() + { + return array_merge(parent::getImmutable(), ['type', 'form_id']); + } +} diff --git a/src/Ushahidi/Core/Entity/PostLock.php b/src/Ushahidi/Core/Ohanzee/Entities/PostLock.php similarity index 94% rename from src/Ushahidi/Core/Entity/PostLock.php rename to src/Ushahidi/Core/Ohanzee/Entities/PostLock.php index 37d4102253..a12c572a82 100644 --- a/src/Ushahidi/Core/Entity/PostLock.php +++ b/src/Ushahidi/Core/Ohanzee/Entities/PostLock.php @@ -8,9 +8,9 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Core\Entity; +namespace Ushahidi\Core\Ohanzee\Entities; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Core\Ohanzee\StaticEntity; class PostLock extends StaticEntity { diff --git a/src/Ushahidi/Core/Ohanzee/Entities/PostValue.php b/src/Ushahidi/Core/Ohanzee/Entities/PostValue.php new file mode 100644 index 0000000000..f29a78d7cc --- /dev/null +++ b/src/Ushahidi/Core/Ohanzee/Entities/PostValue.php @@ -0,0 +1,49 @@ + + * @package Ushahidi\Platform + * @copyright 2014 Ushahidi + * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) + */ + +namespace Ushahidi\Core\Ohanzee\Entities; + +use Ushahidi\Core\Entity\PostValue as EntityPostValue; +use Ushahidi\Core\Ohanzee\StaticEntity; + +class PostValue extends StaticEntity implements EntityPostValue +{ + protected $id; + protected $post_id; + protected $form_attribute_id; + protected $value; + protected $created; + // Attribute fields + protected $key; + protected $cardinality; + protected $type; + + // DataTransformer + protected function getDefinition() + { + return [ + 'id' => 'int', + 'post_id' => 'int', + 'form_attribute_id' => 'int', + 'value' => null, /* @todo array or string? not sure */ + 'created' => 'int', + 'key' => 'string', + 'cardinality' => 'int', + 'type' => 'string', + ]; + } + + // Entity + public function getResource() + { + return 'post_values'; + } +} diff --git a/src/Ushahidi/Core/Entity/PostValueMedia.php b/src/Ushahidi/Core/Ohanzee/Entities/PostValueMedia.php similarity index 93% rename from src/Ushahidi/Core/Entity/PostValueMedia.php rename to src/Ushahidi/Core/Ohanzee/Entities/PostValueMedia.php index 1b6edce1a0..a9da3a1e35 100644 --- a/src/Ushahidi/Core/Entity/PostValueMedia.php +++ b/src/Ushahidi/Core/Ohanzee/Entities/PostValueMedia.php @@ -10,9 +10,9 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Core\Entity; +namespace Ushahidi\Core\Ohanzee\Entities; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Core\Ohanzee\StaticEntity; class PostValueMedia extends StaticEntity { diff --git a/src/Ushahidi/Core/Ohanzee/Entities/Role.php b/src/Ushahidi/Core/Ohanzee/Entities/Role.php new file mode 100644 index 0000000000..d7b5a271c4 --- /dev/null +++ b/src/Ushahidi/Core/Ohanzee/Entities/Role.php @@ -0,0 +1,55 @@ + + * @package Ushahidi\Platform + * @copyright 2014 Ushahidi + * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) + */ + +namespace Ushahidi\Core\Ohanzee\Entities; + +use Ushahidi\Core\Ohanzee\StaticEntity; + +class Role extends StaticEntity +{ + protected $id; + protected $name; + protected $display_name; + protected $description; + protected $permissions; + protected $protected; + + // DataTransformer + protected function getDefinition() + { + return [ + 'id' => 'int', + 'name' => 'string', + 'display_name' => 'string', + 'description' => 'string', + 'permissions' => 'array', + 'protected' => 'boolean', + ]; + } + + // Entity + public function getResource() + { + return 'roles'; + } + + // Entity + public function getId() + { + return $this->name; + } + + // StatefulData + protected function getImmutable() + { + return array_merge(parent::getImmutable(), ['name','protected']); + } +} diff --git a/src/Ushahidi/Core/Entity/SavedSearch.php b/src/Ushahidi/Core/Ohanzee/Entities/SavedSearch.php similarity index 93% rename from src/Ushahidi/Core/Entity/SavedSearch.php rename to src/Ushahidi/Core/Ohanzee/Entities/SavedSearch.php index c8955704c5..98bda99cf2 100644 --- a/src/Ushahidi/Core/Entity/SavedSearch.php +++ b/src/Ushahidi/Core/Ohanzee/Entities/SavedSearch.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Core\Entity; +namespace Ushahidi\Core\Ohanzee\Entities; class SavedSearch extends Set { diff --git a/src/Ushahidi/Core/Ohanzee/Entities/Set.php b/src/Ushahidi/Core/Ohanzee/Entities/Set.php new file mode 100644 index 0000000000..d6abca2afc --- /dev/null +++ b/src/Ushahidi/Core/Ohanzee/Entities/Set.php @@ -0,0 +1,68 @@ + + * @package Ushahidi\Platform + * @copyright 2014 Ushahidi + * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) + */ + +namespace Ushahidi\Core\Ohanzee\Entities; + +use Ushahidi\Core\Ohanzee\StaticEntity; +use \Ushahidi\Core\Entity\Set as EntitySet; + +class Set extends StaticEntity implements EntitySet +{ + protected $id; + protected $user_id; + protected $name; + protected $description; + protected $url; + protected $view; + protected $view_options; + protected $role; + protected $featured; + protected $created; + protected $updated; + + // DataTransformer + protected function getDefinition() + { + return [ + 'id' => 'int', + 'user_id' => 'int', + 'name' => 'string', + 'description' => 'string', + 'url' => '*url', + 'view' => 'string', + 'view_options' => '*json', + 'role' => '*json', + 'featured' => 'boolean', + 'created' => 'int', + 'updated' => 'int', + ]; + } + + // Entity + public function getResource() + { + return 'sets'; + } + + // StatefulData + protected function getImmutable() + { + return array_merge(parent::getImmutable(), ['user_id']); + } + + // StatefulData + protected function getDerived() + { + return [ + 'user_id' => ['user', 'user.id'], /* alias */ + ]; + } +} diff --git a/src/Ushahidi/Core/Ohanzee/Entities/Tag.php b/src/Ushahidi/Core/Ohanzee/Entities/Tag.php new file mode 100644 index 0000000000..e638fc0562 --- /dev/null +++ b/src/Ushahidi/Core/Ohanzee/Entities/Tag.php @@ -0,0 +1,85 @@ + + * @package Ushahidi\Platform + * @copyright 2014 Ushahidi + * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) + */ + +namespace Ushahidi\Core\Ohanzee\Entities; + +use Ushahidi\Core\Entity\Tag as EntityTag; +use Ushahidi\Core\Ohanzee\StaticEntity; + +class Tag extends StaticEntity implements EntityTag +{ + protected $id; + protected $parent_id; + protected $tag; + protected $slug; + protected $type; + protected $color; + protected $icon; + protected $description; + protected $priority; + protected $created; + protected $role; + protected $children; + + // StatefulData + protected function getDefaultData() + { + return [ + 'type' => 'category', + 'icon' => 'tag', + 'priority' => 99, + ]; + } + + // StatefulData + protected function getDerived() + { + return [ + 'slug' => 'tag', + ]; + } + + // DataTransformer + protected function getDefinition() + { + $typeColor = function ($color) { + if ($color) { + return ltrim($color, '#'); + } + }; + return [ + 'id' => 'int', + 'parent_id' => 'int', + 'tag' => 'string', + 'slug' => '*slug', + 'type' => 'string', + 'color' => $typeColor, + 'icon' => 'string', + 'description' => 'string', + 'priority' => 'int', + 'created' => 'int', + 'role' => '*json', + 'children' => 'array', + ]; + } + + // Entity + public function getResource() + { + return 'tags'; + } + + protected function getImmutable() + { + // Hack: Add computed properties to immutable list + return array_merge(parent::getImmutable(), ['children']); + } +} diff --git a/src/Ushahidi/Core/Entity/TargetedSurveyState.php b/src/Ushahidi/Core/Ohanzee/Entities/TargetedSurveyState.php similarity index 94% rename from src/Ushahidi/Core/Entity/TargetedSurveyState.php rename to src/Ushahidi/Core/Ohanzee/Entities/TargetedSurveyState.php index 3d103966db..1fd71a1ac9 100644 --- a/src/Ushahidi/Core/Entity/TargetedSurveyState.php +++ b/src/Ushahidi/Core/Ohanzee/Entities/TargetedSurveyState.php @@ -9,9 +9,9 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Core\Entity; +namespace Ushahidi\Core\Ohanzee\Entities; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Core\Ohanzee\StaticEntity; class TargetedSurveyState extends StaticEntity { @@ -28,7 +28,7 @@ class TargetedSurveyState extends StaticEntity const RECEIVED_RESPONSE = 'RECEIVED RESPONSE'; const SURVEY_FINISHED = 'SURVEY FINISHED'; const INVALID_CONTACT_MOVED = 'ACTIVE CONTACT IN SURVEY ###'; - + // DataTransformer protected function getDefinition() { diff --git a/src/Ushahidi/Core/Entity/Tos.php b/src/Ushahidi/Core/Ohanzee/Entities/Tos.php similarity index 91% rename from src/Ushahidi/Core/Entity/Tos.php rename to src/Ushahidi/Core/Ohanzee/Entities/Tos.php index 65e931c931..6fd838f0c7 100644 --- a/src/Ushahidi/Core/Entity/Tos.php +++ b/src/Ushahidi/Core/Ohanzee/Entities/Tos.php @@ -9,9 +9,9 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Core\Entity; +namespace Ushahidi\Core\Ohanzee\Entities; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Core\Ohanzee\StaticEntity; class Tos extends StaticEntity { diff --git a/src/Ushahidi/Core/Ohanzee/Entities/User.php b/src/Ushahidi/Core/Ohanzee/Entities/User.php new file mode 100644 index 0000000000..b4726a0b1b --- /dev/null +++ b/src/Ushahidi/Core/Ohanzee/Entities/User.php @@ -0,0 +1,66 @@ + + * @package Ushahidi\Platform + * @copyright 2014 Ushahidi + * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) + */ + +namespace Ushahidi\Core\Ohanzee\Entities; + +use Ushahidi\Core\Entity\User as EntityUser; +use Ushahidi\Core\Ohanzee\StaticEntity; + +class User extends StaticEntity implements EntityUser +{ + protected $id; + protected $email; + protected $realname; + protected $password; + protected $logins = 0; + protected $failed_attempts = 0; + protected $last_login; + protected $last_attempt; + protected $created; + protected $updated; + protected $role; + protected $language; + protected $contacts; + + // DataTransformer + protected function getDefinition() + { + return [ + 'id' => 'int', + 'email' => '*email', + 'realname' => 'string', + 'password' => 'string', + 'logins' => 'int', + 'failed_attempts' => 'int', + 'last_login' => 'int', + 'last_attempt' => 'int', + 'created' => 'int', + 'updated' => 'int', + 'role' => 'string', + 'language' => 'string', + 'contacts' => 'array' + ]; + } + + // Entity + public function getResource() + { + return 'users'; + } + + public function getDefaultData() + { + return [ + 'logins' => 0, + 'failed_attempts' => 0 + ]; + } +} diff --git a/src/Ushahidi/Core/Ohanzee/Entities/UserSetting.php b/src/Ushahidi/Core/Ohanzee/Entities/UserSetting.php new file mode 100644 index 0000000000..20ae418c56 --- /dev/null +++ b/src/Ushahidi/Core/Ohanzee/Entities/UserSetting.php @@ -0,0 +1,43 @@ + + * @package Ushahidi\Platform + * @copyright 2018 Ushahidi + * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) + */ + +namespace Ushahidi\Core\Ohanzee\Entities; + +use Ushahidi\Core\Ohanzee\StaticEntity; + +class UserSetting extends StaticEntity +{ + protected $id; + protected $user_id; + protected $config_key; + protected $config_value; + protected $created; + protected $updated; + + // DataTransformer + protected function getDefinition() + { + return [ + 'id' => 'int', + 'user_id' => 'int', + 'config_key' => 'string', + 'config_value' => 'string', + 'created' => 'int', + 'updated' => 'int', + ]; + } + + // Entity + public function getResource() + { + return 'user_settings'; + } +} diff --git a/src/Ushahidi/Core/Entity/Webhook.php b/src/Ushahidi/Core/Ohanzee/Entities/Webhook.php similarity index 96% rename from src/Ushahidi/Core/Entity/Webhook.php rename to src/Ushahidi/Core/Ohanzee/Entities/Webhook.php index d278a7cdcd..d9088a0a18 100644 --- a/src/Ushahidi/Core/Entity/Webhook.php +++ b/src/Ushahidi/Core/Ohanzee/Entities/Webhook.php @@ -9,9 +9,9 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Core\Entity; +namespace Ushahidi\Core\Ohanzee\Entities; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Core\Ohanzee\StaticEntity; class Webhook extends StaticEntity { diff --git a/src/Ushahidi/Core/Entity/WebhookJob.php b/src/Ushahidi/Core/Ohanzee/Entities/WebhookJob.php similarity index 93% rename from src/Ushahidi/Core/Entity/WebhookJob.php rename to src/Ushahidi/Core/Ohanzee/Entities/WebhookJob.php index 9608a3dccc..29a7dd2f15 100644 --- a/src/Ushahidi/Core/Entity/WebhookJob.php +++ b/src/Ushahidi/Core/Ohanzee/Entities/WebhookJob.php @@ -9,9 +9,9 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Core\Entity; +namespace Ushahidi\Core\Ohanzee\Entities; -use Ushahidi\Core\StaticEntity; +use Ushahidi\Core\Ohanzee\StaticEntity; class WebhookJob extends StaticEntity { diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/ApiKeyRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/ApiKeyRepository.php index 487241aebd..4c3c4afb8f 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/ApiKeyRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/ApiKeyRepository.php @@ -13,9 +13,9 @@ use Ramsey\Uuid\Uuid; use Ushahidi\Contracts\Entity; -use Ushahidi\Core\Entity\ApiKey; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Concerns\AdminAccess; +use Ushahidi\Core\Ohanzee\Entities\ApiKey; use Ushahidi\Contracts\Repository\EntityExists; use Ushahidi\Contracts\Repository\CreateRepository; use Ushahidi\Core\Entity\ApiKeyRepository as ApiKeyRepositoryContract; diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/CSVRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/CSVRepository.php index ab94cd576b..f1b2144266 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/CSVRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/CSVRepository.php @@ -13,12 +13,12 @@ use Ushahidi\Core\Tool\SearchData; use Ushahidi\Contracts\Entity; -use Ushahidi\Core\Entity\CSV; -use Ushahidi\Core\Entity\CSVRepository as CSVRepositoryContract; +use Ushahidi\Contracts\Repository\{EntityGet, EntityExists}; +use Ushahidi\Core\Ohanzee\Entities\CSV; use Ushahidi\Core\Concerns\Event; class CSVRepository extends OhanzeeRepository implements - CSVRepositoryContract + EntityGet, EntityExists { // Use the JSON transcoder to encode properties diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/Concerns/JsonTranscode.php b/src/Ushahidi/Core/Ohanzee/Repositories/Concerns/JsonTranscode.php index 2d6138f0f8..8779cd1810 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/Concerns/JsonTranscode.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Concerns/JsonTranscode.php @@ -22,7 +22,7 @@ trait JsonTranscode /** * Return an array of properties to be json encoded - * @return Array + * @return array */ abstract protected function getJsonProperties(); diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/ConfigRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/ConfigRepository.php index 19f1ea49c4..1e823bdc40 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/ConfigRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/ConfigRepository.php @@ -16,7 +16,7 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Core\Tool\OhanzeeResolver; use Ushahidi\Core\Exception\NotFoundException; -use Ushahidi\Core\Entity\Config as ConfigEntity; +use Ushahidi\Core\Ohanzee\Entities\Config as ConfigEntity; use Ushahidi\Contracts\Repository\ReadRepository; use Ushahidi\Contracts\Repository\DeleteRepository; use Ushahidi\Contracts\Repository\UpdateRepository; @@ -43,7 +43,7 @@ public function __construct(OhanzeeResolver $resolver) /** * Get current connection * - * @return Ohanzee\Database; + * @return \Ohanzee\Database; */ protected function db() { diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/ContactRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/ContactRepository.php index 9c96f42fbf..a0740b7dc6 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/ContactRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/ContactRepository.php @@ -13,7 +13,7 @@ use Ohanzee\DB; use Ushahidi\Contracts\Entity; -use Ushahidi\Core\Entity\Contact; +use Ushahidi\Core\Ohanzee\Entities\Contact; use Illuminate\Support\Collection; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Concerns\AdminAccess; diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/CountryCodeRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/CountryCodeRepository.php index f1a79fb2aa..aedb789a02 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/CountryCodeRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/CountryCodeRepository.php @@ -12,13 +12,13 @@ namespace Ushahidi\Core\Ohanzee\Repositories; use Ushahidi\Core\Tool\SearchData; -use Ushahidi\Core\Entity\CountryCode; +use Ushahidi\Core\Ohanzee\Entities\CountryCode; +use Ushahidi\Contracts\Repository\EntityGet; use Ushahidi\Contracts\Repository\ReadRepository; use Ushahidi\Contracts\Repository\SearchRepository; -use Ushahidi\Core\Entity\CountryCodeRepository as CountryCodeRepositoryContract; class CountryCodeRepository extends OhanzeeRepository implements - CountryCodeRepositoryContract, + EntityGet, ReadRepository, SearchRepository { diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/DataProviderRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/DataProviderRepository.php index b5c6f4d180..0dfc3a585d 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/DataProviderRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/DataProviderRepository.php @@ -11,33 +11,30 @@ namespace Ushahidi\Core\Ohanzee\Repositories; -use Ushahidi\Core\Tool\SearchData; use Illuminate\Support\Collection; +use Ushahidi\Contracts\Search; use Ushahidi\Contracts\Repository\ReadRepository; use Ushahidi\Contracts\Repository\SearchRepository; -use Ushahidi\Core\Entity\DataProvider as DataProviderEntity; -use Ushahidi\Core\Entity\DataProviderRepository as DataProviderRepositoryContract; -use Ushahidi\Contracts\Search; +use Ushahidi\Core\Ohanzee\Entities\DataProvider; class DataProviderRepository implements ReadRepository, - SearchRepository, - DataProviderRepositoryContract + SearchRepository { + protected $datasources; + public function __construct() { $this->datasources = app('datasources'); } - // use CollectionLoader; - /** * Converts a laravel collection of data sources into an array of entities * indexed by the entity id. * * @param Collection $sources - * @return Array + * @return array */ protected function getCollection(Collection $sources) { @@ -56,7 +53,7 @@ protected function getCollection(Collection $sources) // ReadRepository public function getEntity(array $data = null) { - return new DataProviderEntity($data); + return new DataProvider($data); } // ReadRepository diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/EloquentRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/EloquentRepository.php index c2cb00430e..2f8642e559 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/EloquentRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/EloquentRepository.php @@ -53,10 +53,7 @@ abstract public function getEntity(array $data = null); * Converts an array/collection of results into an collection * of entities, indexed by the entity id. * - * Included directly instead of using \Ushahidi\Core\Concerns\CollectionLoader - * because this implementation returns an \Illuminate\Support\Collection - * - * @param array|\Iterable $results + * @param array|\Iterator $results * * @return \Illuminate\Support\Collection */ @@ -252,7 +249,7 @@ public function exists($id) { return $this->connection()->table($this->getTable()) ->select($this->getTable() . '.*') // @todo do we need this? - ->where($where) // @todo do we need to handle whereIn here too? + // ->where($where) // @todo do we need to handle whereIn here too? ->exists(); } } diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/ExportBatchRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/ExportBatchRepository.php index e83e40e8ce..0463d0d5e4 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/ExportBatchRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/ExportBatchRepository.php @@ -11,15 +11,14 @@ namespace Ushahidi\Core\Ohanzee\Repositories; -use Ushahidi\Core\Entity\ExportBatch; +use Ushahidi\Core\Ohanzee\Entities\ExportBatch; use Ushahidi\Core\Entity\ExportBatchRepository as ExportBatchRepositoryContract; -use Ushahidi\Contracts\Search; class ExportBatchRepository extends EloquentRepository implements ExportBatchRepositoryContract { /** * Get the entity for this repository. - * @param Array $data + * @param array $data * @return \Ushahidi\Contracts\Entity */ public function getEntity(array $data = null) @@ -29,7 +28,7 @@ public function getEntity(array $data = null) /** * Get the table name for this repository. - * @return String + * @return string */ protected function getTable() { @@ -53,19 +52,4 @@ public function getByJobId($jobId, $status = ExportBatch::STATUS_COMPLETED) return $this->getCollection($results); } - - public function getSearchFields() - { - } - - public function getSearchTotal() - { - } - - public function getSearchResults() - { - } - public function setSearchParams(Search $search) - { - } } diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/ExportJobRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/ExportJobRepository.php index d180e24e12..eb535eb614 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/ExportJobRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/ExportJobRepository.php @@ -15,14 +15,14 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Core\Tool\SearchData; use Illuminate\Support\Facades\Log; -use Ushahidi\Core\Entity\ExportJob; use Illuminate\Support\Facades\Event; use Ushahidi\Core\Entity\ExportBatch; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; +use Ushahidi\Core\Entity\PostRepository; use Ushahidi\Core\Concerns\FilterRecords; +use Ushahidi\Core\Ohanzee\Entities\ExportJob; use Ushahidi\Modules\V3\Events\SendToHDXEvent; -use Ushahidi\Core\Entity\PostRepository; use Ushahidi\Core\Entity\ExportJobRepository as ExportJobRepositoryContract; class ExportJobRepository extends OhanzeeRepository implements ExportJobRepositoryContract diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/Form/AttributeRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Form/AttributeRepository.php index 7d95448269..77408d783e 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/Form/AttributeRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Form/AttributeRepository.php @@ -19,7 +19,7 @@ use Illuminate\Support\Collection; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Concerns\UserContext; -use Ushahidi\Core\Entity\FormAttribute; +use Ushahidi\Core\Ohanzee\Entities\FormAttribute; use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; use Ushahidi\Core\Ohanzee\Repositories\Concerns\FormsTags; use Ushahidi\Core\Ohanzee\Repositories\Concerns\CachesData; diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/Form/ContactRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Form/ContactRepository.php index f675256ee9..2da9130311 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/Form/ContactRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Form/ContactRepository.php @@ -12,7 +12,7 @@ namespace Ushahidi\Core\Ohanzee\Repositories\Form; use Ohanzee\DB; -use Ushahidi\Core\Entity; +use Ushahidi\Core\Ohanzee\Entities; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Concerns\Event; use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; @@ -32,11 +32,6 @@ class ContactRepository extends OhanzeeRepository implements protected $message_repo; protected $targeted_survey_state_repo; - /** - * Construct - * @param \Ushahidi\Core\Tool\OhanzeeResolver $resolver - * @param FormRepository $form_repo - */ public function __construct( OhanzeeResolver $resolver, FormRepository $form_repo, @@ -59,22 +54,22 @@ protected function getTable() // ReadRepository public function getEntity(array $data = null) { - return new Entity\Contact($data); + return new Entities\Contact($data); } /** * @param $contact * @param array $data - * @return Entity\Contact (return the entity from the database + * @return \Ushahidi\Core\Entity\Contact (return the entity from the database * if there's a match,or a new one if not) */ public function getEntityWithData($contact, $data = []) { $contact = $this->selectQuery(['contact' => $contact])->execute($this->db())->current(); if (!$contact) { - return new Entity\Contact($data); + return new Entities\Contact($data); } - return new Entity\Contact($contact); + return new Entities\Contact($contact); } @@ -119,7 +114,7 @@ public function updateCollection(array $entities, $form_id = null) **/ $message = $this->message_repo->get($contactOnActiveSurvey['message_id']); if ($message->id) { - $message->setState(['status' => Entity\Message::EXPIRED]); + $message->setState(['status' => Entities\Message::EXPIRED]); $this->message_repo->update($message); } $invalidatedContacts[] = [ @@ -165,7 +160,7 @@ private function createNewContact($entity) } /** * @param int $form_id - * @return Entity[]|Entity\Contact[] + * @return \Ushahidi\Core\Entity\Contact[] * Returns all */ public function getByForm($form_id) @@ -267,8 +262,8 @@ public function existsInActiveTargetedSurvey($contact) $where = [ 'contacts.contact' => $contact, 'targeted_survey_state.survey_status' => [ - Entity\TargetedSurveyState::PENDING_RESPONSE, - Entity\TargetedSurveyState::RECEIVED_RESPONSE + Entities\TargetedSurveyState::PENDING_RESPONSE, + Entities\TargetedSurveyState::RECEIVED_RESPONSE ] ]; $query = $this->selectQuery($where) @@ -300,7 +295,7 @@ public function setInactiveTargetedSurvey($tss_id, $form_id) 'survey_status' => str_replace( '###', $form_id, - Entity\TargetedSurveyState::INVALID_CONTACT_MOVED + Entities\TargetedSurveyState::INVALID_CONTACT_MOVED ) ]); $this->targeted_survey_state_repo->update($entity); diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/Form/RoleRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Form/RoleRepository.php index 07673a6f95..cd4cd05f97 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/Form/RoleRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Form/RoleRepository.php @@ -12,13 +12,14 @@ namespace Ushahidi\Core\Ohanzee\Repositories\Form; use Ohanzee\DB; -use Ushahidi\Core\Tool\SearchData; -use Ushahidi\Core\Entity\FormRole; -use Ushahidi\Core\Entity\FormRoleRepository; +use Ushahidi\Contracts\Repository\{EntityGet, EntityExists}; +use Ushahidi\Core\Ohanzee\Entities\FormRole; use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; +use Ushahidi\Core\Tool\SearchData; class RoleRepository extends OhanzeeRepository implements - FormRoleRepository + EntityGet, + EntityExists { // OhanzeeRepository protected function getTable() diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/Form/StageRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Form/StageRepository.php index 5e050bc54b..99b8e8e50f 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/Form/StageRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Form/StageRepository.php @@ -14,7 +14,7 @@ use Ohanzee\DB; use Ohanzee\Database; use Ushahidi\Core\Tool\SearchData; -use Ushahidi\Core\Entity\FormStage; +use Ushahidi\Core\Ohanzee\Entities\FormStage; use Ushahidi\Core\Entity\FormStageRepository as FormStageRepositoryContract; use Ushahidi\Core\Entity\FormRepository as FormRepositoryContract; use Ushahidi\Core\Concerns\UserContext; @@ -32,11 +32,6 @@ class StageRepository extends OhanzeeRepository implements protected $form_id; protected $form_repo; - /** - * Construct - * @param Database $db - * @param FormRepository $form_repo - */ public function __construct( \Ushahidi\Core\Tool\OhanzeeResolver $resolver, FormRepositoryContract $form_repo diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/Form/StatsRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Form/StatsRepository.php index fb9a98fbfb..2c65a21bc9 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/Form/StatsRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Form/StatsRepository.php @@ -13,7 +13,7 @@ use Ohanzee\DB; use Ohanzee\Database; -use Ushahidi\Core\Entity; +use Ushahidi\Core\Ohanzee\Entities; use Ushahidi\Core\Concerns\Event; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Tool\OhanzeeResolver; @@ -56,7 +56,7 @@ protected function getTable() // ReadRepository public function getEntity(array $data = null) { - return new Entity\FormStats($data); + return new Entities\FormStats($data); } // SearchRepository @@ -99,9 +99,9 @@ public function getResponses($form_id, $created_after, $created_before) 'posts.form_id' => $form_id, 'messages.direction' => 'incoming', 'targeted_survey_state.survey_status' => [ - Entity\TargetedSurveyState::RECEIVED_RESPONSE, - Entity\TargetedSurveyState::PENDING_RESPONSE, - Entity\TargetedSurveyState::SURVEY_FINISHED, + Entities\TargetedSurveyState::RECEIVED_RESPONSE, + Entities\TargetedSurveyState::PENDING_RESPONSE, + Entities\TargetedSurveyState::SURVEY_FINISHED, ] ]; $query = $this->selectQuery($where); @@ -284,9 +284,9 @@ public function getRecipients($form_id, $created_after, $created_before) $where = [ 'posts.form_id' => $form_id, 'targeted_survey_state.survey_status' => [ - Entity\TargetedSurveyState::RECEIVED_RESPONSE, - Entity\TargetedSurveyState::PENDING_RESPONSE, - Entity\TargetedSurveyState::SURVEY_FINISHED, + Entities\TargetedSurveyState::RECEIVED_RESPONSE, + Entities\TargetedSurveyState::PENDING_RESPONSE, + Entities\TargetedSurveyState::SURVEY_FINISHED, ] ]; $query = $this->selectQuery($where) diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/FormRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/FormRepository.php index 214c282016..ae01b5e2f9 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/FormRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/FormRepository.php @@ -13,7 +13,7 @@ use Ohanzee\DB; use Ushahidi\Core\Tool\SearchData; -use Ushahidi\Core\Entity\Form; +use Ushahidi\Core\Ohanzee\Entities\Form; use Ushahidi\Core\Concerns\Event; use Illuminate\Support\Collection; use Ushahidi\Contracts\Entity; diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/HXL/HXLTagRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/HXL/HXLTagRepository.php index b8a519e481..27d2200a3b 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/HXL/HXLTagRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/HXL/HXLTagRepository.php @@ -19,7 +19,7 @@ use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; use Ushahidi\Contracts\Repository\ReadRepository; use Ushahidi\Contracts\Repository\SearchRepository; -use Ushahidi\Core\Entity\HXLTagRepository as HXLTagRepositoryContract; +use Ushahidi\Core\Entity\HXL\HXLTagRepository as HXLTagRepositoryContract; class HXLTagRepository extends OhanzeeRepository implements HXLTagRepositoryContract, diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/LayerRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/LayerRepository.php index 458e864c7b..f28ff09fb5 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/LayerRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/LayerRepository.php @@ -12,8 +12,8 @@ namespace Ushahidi\Core\Ohanzee\Repositories; use Ushahidi\Contracts\Entity; -use Ushahidi\Core\Entity\Layer; use Ushahidi\Core\Tool\SearchData; +use Ushahidi\Core\Ohanzee\Entities\Layer; class LayerRepository extends OhanzeeRepository { diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/MediaRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/MediaRepository.php index f46701dc50..4e590f0feb 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/MediaRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/MediaRepository.php @@ -11,10 +11,10 @@ namespace Ushahidi\Core\Ohanzee\Repositories; +use Ushahidi\Core\Tool\Uploader; use Ushahidi\Core\Tool\SearchData; -use Ushahidi\Core\Entity\Media; +use Ushahidi\Core\Ohanzee\Entities\Media; use Ushahidi\Core\Entity\MediaRepository as MediaRepositoryContract; -use Ushahidi\Core\Tool\Uploader; class MediaRepository extends OhanzeeRepository implements MediaRepositoryContract diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/MessageRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/MessageRepository.php index ec725ec025..d43e22b7af 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/MessageRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/MessageRepository.php @@ -12,20 +12,16 @@ namespace Ushahidi\Core\Ohanzee\Repositories; use Ohanzee\DB; -use Ushahidi\Core\Tool\SearchData; use Ushahidi\Contracts\Entity; -use Ushahidi\Core\Entity\Message; use Illuminate\Support\Collection; +use Ushahidi\Core\Tool\SearchData; +use Ushahidi\Core\Ohanzee\Entities\Message; use Ushahidi\DataSource\Contracts\MessageStatus; use Ushahidi\DataSource\Contracts\MessageDirection; -use Ushahidi\Contracts\Repository\Usecase\CreateMessageRepository; -use Ushahidi\Contracts\Repository\Usecase\UpdateMessageRepository; use Ushahidi\Core\Entity\MessageRepository as MessageRepositoryContract; class MessageRepository extends OhanzeeRepository implements - MessageRepositoryContract, - UpdateMessageRepository, - CreateMessageRepository + MessageRepositoryContract { // Use the JSON transcoder to encode properties use Concerns\JsonTranscode; @@ -49,7 +45,13 @@ public function getEntity(array $data = null) public function getSearchFields() { return [ - 'box', 'status', 'contact', 'parent', 'post', 'type', 'data_source', + 'box', + 'status', + 'contact', + 'parent', + 'post', + 'type', + 'data_source', 'q' /* LIKE contact, title, message */ ]; } @@ -65,7 +67,7 @@ protected function setSearchConditions(SearchData $search) { $query = $this->search_query ->join('contacts') - ->on('contact_id', '=', 'contacts.id'); + ->on('contact_id', '=', 'contacts.id'); if ($search->box === 'outbox') { // Outbox only shows outgoing messages @@ -99,20 +101,13 @@ protected function setSearchConditions(SearchData $search) $query->and_where_close(); } - foreach ([ - 'contact', - 'parent', - 'post', - ] as $fk) { + foreach (['contact', 'parent', 'post',] as $fk) { if ($search->$fk) { $query->where("messages.{$fk}_id", '=', $search->$fk); } } - foreach ([ - 'type', - 'data_source', - ] as $key) { + foreach (['type', 'data_source',] as $key) { if ($search->$key) { $query->where("messages.{$key}", '=', $search->$key); } @@ -131,7 +126,7 @@ public function getPendingMessages($data_source, $limit) ->join('contacts', 'LEFT')->on('contacts.id', '=', 'messages.contact_id') ->select('contacts.contact') ->select(['contacts.type', 'contact_type']) - ; + ; if ($data_source) { $query->where('messages.data_source', '=', $data_source); @@ -156,7 +151,7 @@ public function getPendingMessagesByType($type, $limit) ->select(['contacts.type', 'contact_type']) // Only return messages without a specified provider ->where('messages.data_source', 'IS', null) - ; + ; if ($type) { $query->where('messages.type', '=', $type); @@ -171,7 +166,7 @@ public function getPendingMessagesByType($type, $limit) public function updateMessageStatus($id, $status, $data_source_message_id = null) { $changes = [ - 'status' => $status, + 'status' => $status, 'data_source_message_id' => $data_source_message_id ]; @@ -287,7 +282,7 @@ public function getLastUID($data_source) 'desc' ) ->limit(1); - $result = $query->execute($this->db()); + $result = $query->execute($this->db()); $last_uid = $result->get('uid', 0) ? $result->get('uid', 0) : null; diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/Notification/QueueRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Notification/QueueRepository.php index eca8d0ec23..a0a4aa9b06 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/Notification/QueueRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Notification/QueueRepository.php @@ -12,12 +12,12 @@ namespace Ushahidi\Core\Ohanzee\Repositories\Notification; use Ushahidi\Contracts\Entity; -use Ushahidi\Core\Tool\SearchData; -use Ushahidi\Core\Entity\NotificationQueue; -use Ushahidi\Core\Entity\NotificationQueueRepository as NotificationQueueRepositoryContract; +use Ushahidi\Contracts\Repository\{EntityGet, EntityExists, CreateRepository}; +use Ushahidi\Core\Ohanzee\Entities\NotificationQueue; use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; +use Ushahidi\Core\Tool\SearchData; -class QueueRepository extends OhanzeeRepository implements NotificationQueueRepositoryContract +class QueueRepository extends OhanzeeRepository implements EntityGet, EntityExists, CreateRepository { protected function getTable() { diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/NotificationRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/NotificationRepository.php index 7c14d8ca7b..b7141e9cd1 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/NotificationRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/NotificationRepository.php @@ -11,14 +11,16 @@ namespace Ushahidi\Core\Ohanzee\Repositories; -use Ushahidi\Core\Tool\SearchData; use Ushahidi\Contracts\Entity; +use Ushahidi\Contracts\Repository\{EntityGet, EntityExists}; +use Ushahidi\Core\Tool\SearchData; +use Ushahidi\Core\Ohanzee\Entities\Notification; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; -use Ushahidi\Core\Entity\Notification; -use Ushahidi\Core\Entity\NotificationRepository as NotificationRepositoryContract; -class NotificationRepository extends OhanzeeRepository implements NotificationRepositoryContract +class NotificationRepository extends OhanzeeRepository implements + EntityGet, + EntityExists { use UserContext; use AdminAccess; @@ -46,14 +48,11 @@ public function setSearchConditions(SearchData $search) // Limit search to user's records unless they are admin // or if we get user=me as a search param - if (! $this->isUserAdmin($user) || $search->user === 'me') { + if (!$this->isUserAdmin($user) || $search->user === 'me') { $search->user = $this->getUserId(); } - foreach ([ - 'user', - 'set', - ] as $fk) { + foreach (['user', 'set',] as $fk) { if ($search->$fk) { $query->where("notifications.{$fk}_id", '=', $search->$fk); } diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/OhanzeeRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/OhanzeeRepository.php index f4b241b855..5312a7f91f 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/OhanzeeRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/OhanzeeRepository.php @@ -12,13 +12,11 @@ namespace Ushahidi\Core\Ohanzee\Repositories; use Ohanzee\DB; -use RuntimeException; use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\Search; use Ushahidi\Contracts\Repository; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Tool\OhanzeeResolver; -use Ushahidi\Core\Concerns\CollectionLoader; abstract class OhanzeeRepository implements Repository\CreateRepository, @@ -29,8 +27,6 @@ abstract class OhanzeeRepository implements Repository\ImportRepository { - use CollectionLoader; - protected $search_query; protected $resolver; @@ -60,7 +56,7 @@ abstract public function getEntity(array $data = null); /** * Get the table name for this repository. * - * @return String + * @return string */ abstract protected function getTable(); @@ -68,7 +64,7 @@ abstract protected function getTable(); * Apply search conditions from input data. * Must be overloaded to enable searching. * - * @throws LogicException + * @throws \LogicException * @param SearchData $search * @return void */ @@ -159,8 +155,8 @@ public function getSearchTotal() /** * Remove all `null` values, to allow the database to set defaults. * - * @param Array $data - * @return Array + * @param array $data + * @return array */ protected function removeNullValues(array $data) { @@ -172,8 +168,8 @@ protected function removeNullValues(array $data) /** * Get a copy of the current search query, optionally removing the LIMIT, * OFFSET, and ORDER BY parameters (for query that can be COUNT'ed). - * @throws RuntimeException if called before search parameters are set - * @param Boolean $countable remove limit/offset/orderby + * @throws \RuntimeException if called before search parameters are set + * @param boolean $countable remove limit/offset/orderby * @return Database_Query_Select */ protected function getSearchQuery($countable = false) @@ -198,8 +194,8 @@ protected function getSearchQuery($countable = false) /** * Get a single record meeting some conditions. - * @param Array $where hash of conditions - * @return Array + * @param array $where hash of conditions + * @return array */ protected function selectOne(array $where = []) { @@ -211,8 +207,8 @@ protected function selectOne(array $where = []) /** * Get a count of records meeting some conditions. - * @param Array $where hash of conditions - * @return Integer + * @param array $where hash of conditions + * @return integer */ protected function selectCount(array $where = []) { @@ -225,7 +221,7 @@ protected function selectCount(array $where = []) /** * Return a SELECT query, optionally with preconditions. - * @param Array $where optional hash of conditions + * @param array $where optional hash of conditions * @return Database_Query_Builder_Select */ protected function selectQuery(array $where = []) @@ -240,16 +236,18 @@ protected function selectQuery(array $where = []) /** * Create a single record from input and return the created ID. - * @param Array $input hash of input - * @return Integer + * @param array $input hash of input + * @return integer */ protected function executeInsert(array $input) { if (!$input) { - throw new \RuntimeException(sprintf( - 'Cannot create an empty record in table "%s"', - $this->getTable() - )); + throw new \RuntimeException( + sprintf( + 'Cannot create an empty record in table "%s"', + $this->getTable() + ) + ); } $query = DB::insert($this->getTable()) @@ -262,17 +260,19 @@ protected function executeInsert(array $input) /** * Update records from input with conditions and return the number affected. - * @param Array $where hash of conditions - * @param Array $input hash of input - * @return Integer + * @param array $where hash of conditions + * @param array $input hash of input + * @return integer */ protected function executeUpdate(array $where, array $input) { if (!$where) { - throw new \RuntimeException(sprintf( - 'Cannot update every record in table "%s"', - $this->getTable() - )); + throw new \RuntimeException( + sprintf( + 'Cannot update every record in table "%s"', + $this->getTable() + ) + ); } // Prevent overwriting created timestamp @@ -296,17 +296,19 @@ protected function executeUpdate(array $where, array $input) /** * Delete records with conditions and return the number affected. - * @param Array $where hash of conditions - * @return Integer + * @param array $where hash of conditions + * @return integer */ protected function executeDelete(array $where) { if (!$where) { - throw new \RuntimeException(sprintf( - 'Cannot delete every record in table "%s"', - $this->getTable() - )); + throw new \RuntimeException( + sprintf( + 'Cannot delete every record in table "%s"', + $this->getTable() + ) + ); } $query = DB::delete($this->getTable()); @@ -332,4 +334,20 @@ public function exists($id) $this->getTable() . '.id' => $id ]); } + + /** + * Converts an array of results into an array of entities, + * indexed by the entity id. + * @param array $results + * @return array + */ + protected function getCollection(array $results) + { + $collection = []; + foreach ($results as $row) { + $entity = $this->getEntity($row); + $collection[$entity->getId()] = $entity; + } + return $collection; + } } diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/PermissionRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/PermissionRepository.php index e1ea1317d6..cd2b0a97d4 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/PermissionRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/PermissionRepository.php @@ -12,7 +12,7 @@ namespace Ushahidi\Core\Ohanzee\Repositories; use Ushahidi\Core\Tool\SearchData; -use Ushahidi\Core\Entity\Permission; +use Ushahidi\Core\Ohanzee\Entities\Permission; use Ushahidi\Core\Entity\PermissionRepository as PermissionRepositoryContract; class PermissionRepository extends OhanzeeRepository implements diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/Post/DatetimeRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/DatetimeRepository.php index 542c6de82b..e783189cfd 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/Post/DatetimeRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/DatetimeRepository.php @@ -11,7 +11,7 @@ namespace Ushahidi\Core\Ohanzee\Repositories\Post; -use Ushahidi\Core\Entity\PostValue; +use Ushahidi\Core\Ohanzee\Entities\PostValue; class DatetimeRepository extends ValueRepository { diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/Post/ExportRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/ExportRepository.php index 5740f53822..618ac58843 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/Post/ExportRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/ExportRepository.php @@ -11,16 +11,13 @@ namespace Ushahidi\Core\Ohanzee\Repositories\Post; -use Ohanzee\DB; -use Ushahidi\Core\Entity\Post; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Ohanzee\Repositories\PostRepository; use Ushahidi\Core\Entity\SetRepository; use Ushahidi\Core\Entity\TagRepository; use Ushahidi\Core\Entity\MessageRepository; -use Ushahidi\Core\Entity\PostExportRepository; -class ExportRepository extends PostRepository implements PostExportRepository +class ExportRepository extends PostRepository { use AdminAccess; protected $tag_repo; diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/Post/GeometryRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/GeometryRepository.php index 907a3be27d..e6fde0870a 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/Post/GeometryRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/GeometryRepository.php @@ -12,8 +12,6 @@ namespace Ushahidi\Core\Ohanzee\Repositories\Post; use Ohanzee\DB; -use Ushahidi\Core\Entity\PostValue; -use Ushahidi\Core\Entity\PostValueRepository as PostValueRepositoryContract; class GeometryRepository extends ValueRepository { diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/Post/IntegerRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/IntegerRepository.php index 7758b598a2..ce8bc2b595 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/Post/IntegerRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/IntegerRepository.php @@ -11,7 +11,7 @@ namespace Ushahidi\Core\Ohanzee\Repositories\Post; -use Ushahidi\Core\Entity\PostValue; +use Ushahidi\Core\Ohanzee\Entities\PostValue; class IntegerRepository extends ValueRepository { diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/Post/LockRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/LockRepository.php index a936ef2a49..cfdea4baa2 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/Post/LockRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/LockRepository.php @@ -12,16 +12,14 @@ namespace Ushahidi\Core\Ohanzee\Repositories\Post; use Ohanzee\DB; -use Ohanzee\Database; -use Ushahidi\Core\Concerns\Event; -use Ushahidi\Core\Entity\PostLock; -use League\Event\ListenerInterface; use Ushahidi\Contracts\Entity; +use Ushahidi\Core\Concerns\Event; use Ushahidi\Core\Concerns\UserContext; -use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; +use Ushahidi\Core\Tool\OhanzeeResolver; use Ushahidi\Core\Entity\PostLockRepository; +use Ushahidi\Core\Ohanzee\Entities\PostLock; use Ushahidi\Core\Ohanzee\Repositories\UserRepository; -use Ushahidi\Core\Tool\OhanzeeResolver; +use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; class LockRepository extends OhanzeeRepository implements PostLockRepository { @@ -56,7 +54,6 @@ public function getSearchFields() // OhanzeeRepository public function getEntity(array $data = null) { - return new PostLock($data); } diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/Post/MediaRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/MediaRepository.php index be061b4ab3..b4aadc8ac7 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/Post/MediaRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/MediaRepository.php @@ -11,6 +11,8 @@ namespace Ushahidi\Core\Ohanzee\Repositories\Post; +use Ushahidi\Core\Ohanzee\Entities\PostValueMedia; + class MediaRepository extends ValueRepository { @@ -22,7 +24,7 @@ public function getEntity(array $data = null) * depending on the repository used */ $data['value'] = ['o_filename' => $data['o_filename'], 'id' => $data['id']]; - return new \Ushahidi\Core\Entity\PostValueMedia($data); + return new PostValueMedia($data); } // OhanzeeRepository diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/Post/PointRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/PointRepository.php index 9535cd4de3..dd7effe14d 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/Post/PointRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/PointRepository.php @@ -13,11 +13,11 @@ use Ohanzee\DB; use Ohanzee\Database; -use Ushahidi\Core\Entity\PostValue; use Symm\Gisconverter\Decoders\WKT; use Symm\Gisconverter\Geometry\Point; -use Symm\Gisconverter\Exceptions\InvalidText; use Ushahidi\Core\Tool\OhanzeeResolver; +use Symm\Gisconverter\Exceptions\InvalidText; +use Ushahidi\Core\Ohanzee\Entities\PostValue; class PointRepository extends ValueRepository { diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/Post/TagsRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/TagsRepository.php index 8d315691a8..f22f8699da 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/Post/TagsRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/TagsRepository.php @@ -12,8 +12,8 @@ namespace Ushahidi\Core\Ohanzee\Repositories\Post; use Ohanzee\DB; +use Ushahidi\Core\Entity\TagRepository; use Ushahidi\Core\Tool\OhanzeeResolver; -use Ushahidi\Contracts\Repository\Usecase\UpdatePostTagRepository; class TagsRepository extends ValueRepository { @@ -21,7 +21,7 @@ class TagsRepository extends ValueRepository public function __construct( OhanzeeResolver $resolver, - UpdatePostTagRepository $tag_repo + TagRepository $tag_repo ) { parent::__construct($resolver); $this->tag_repo = $tag_repo; diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/Post/ValueFactory.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/ValueFactory.php index a0df2a9b20..90a4e4ef50 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/Post/ValueFactory.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/ValueFactory.php @@ -26,7 +26,7 @@ public function __construct($map = []) * * @param string $type * - * @return \Ushahidi\Core\Entity\PostValueRepository + * @return \Ushahidi\Core\Ohanzee\Repositories\Post\ValueRepository */ public function getRepo($type) { diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/Post/ValueProxy.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/ValueProxy.php index 5d9fb8508a..4214f040bd 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/Post/ValueProxy.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/ValueProxy.php @@ -11,9 +11,7 @@ namespace Ushahidi\Core\Ohanzee\Repositories\Post; -use Ushahidi\Contracts\Repository\Usecase\ValuesForPostRepository; - -class ValueProxy implements ValuesForPostRepository +class ValueProxy { protected $factory; protected $include_types; diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/Post/ValueRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Post/ValueRepository.php index 15404e41ca..6e434ddf7a 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/Post/ValueRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Post/ValueRepository.php @@ -12,16 +12,10 @@ namespace Ushahidi\Core\Ohanzee\Repositories\Post; use Ohanzee\DB; -use Ushahidi\Core\Entity\PostValue; +use Ushahidi\Core\Ohanzee\Entities\PostValue; use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; -use Ushahidi\Core\Entity\PostValueRepository; -use Ushahidi\Contracts\Repository\Usecase\ValuesForPostRepository; -use Ushahidi\Contracts\Repository\Usecase\UpdatePostValueRepository; - -abstract class ValueRepository extends OhanzeeRepository implements - PostValueRepository, - ValuesForPostRepository, - UpdatePostValueRepository + +abstract class ValueRepository extends OhanzeeRepository { // OhanzeeRepository diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/PostRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/PostRepository.php index 28857dac10..3cac650f25 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/PostRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/PostRepository.php @@ -14,31 +14,27 @@ use Ohanzee\DB; use Ohanzee\Database; use Ushahidi\Contracts\Entity; -use Ushahidi\Core\Entity\Post; -use Ushahidi\Core\Entity\Media; +use Ushahidi\Contracts\Search; use Ushahidi\Core\Concerns\Event; use Illuminate\Support\Collection; -use Ushahidi\Core\Entity\PostLock; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Tool\BoundingBox; use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Tool\OhanzeeResolver; -use Ushahidi\Core\Tool\Permissions\InteractsWithPostPermissions; -use Ushahidi\Core\Ohanzee\Repositories\Post\ValueFactory as PostValueFactory; -use Ushahidi\Contracts\Repository\Usecase\SetPostRepository; -use Ushahidi\Contracts\Repository\Usecase\UpdatePostRepository; +use Ushahidi\Core\Entity\FormRepository; +use Ushahidi\Core\Ohanzee\Entities\Post; +use Ushahidi\Core\Ohanzee\Entities\Media; use Ushahidi\Core\Entity\ContactRepository; use Ushahidi\Core\Entity\PostLockRepository; -use Ushahidi\Core\Entity\FormRepository as FormRepositoryContract; +use Ushahidi\Core\Ohanzee\Entities\PostLock; +use Ushahidi\Core\Entity\FormStageRepository; +use Ushahidi\Core\Entity\FormAttributeRepository; +use Ushahidi\Core\Tool\Permissions\InteractsWithPostPermissions; use Ushahidi\Core\Entity\PostRepository as PostRepositoryContract; -use Ushahidi\Core\Entity\FormStageRepository as FormStageRepositoryContract; -use Ushahidi\Core\Entity\FormAttributeRepository as FormAttributeRepositoryContract; -use Ushahidi\Contracts\Search; +use Ushahidi\Core\Ohanzee\Repositories\Post\ValueFactory as PostValueFactory; class PostRepository extends OhanzeeRepository implements - PostRepositoryContract, - UpdatePostRepository, - SetPostRepository + PostRepositoryContract { use UserContext; @@ -56,6 +52,7 @@ class PostRepository extends OhanzeeRepository implements protected $form_attribute_repo; protected $form_stage_repo; protected $form_repo; + protected $post_lock_repo; protected $contact_repo; protected $post_value_factory; protected $bounding_box_factory; @@ -92,9 +89,9 @@ class PostRepository extends OhanzeeRepository implements public function __construct( OhanzeeResolver $resolver, - FormAttributeRepositoryContract $form_attribute_repo, - FormStageRepositoryContract $form_stage_repo, - FormRepositoryContract $form_repo, + FormAttributeRepository $form_attribute_repo, + FormStageRepository $form_stage_repo, + FormRepository $form_repo, PostLockRepository $post_lock_repo, ContactRepository $contact_repo, PostValueFactory $post_value_factory, diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/RoleRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/RoleRepository.php index 18da38f988..2ddd6918d3 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/RoleRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/RoleRepository.php @@ -14,7 +14,7 @@ use Ohanzee\DB; use Ushahidi\Contracts\Entity; use Ushahidi\Core\Tool\SearchData; -use Ushahidi\Core\Entity\Role; +use Ushahidi\Core\Ohanzee\Entities\Role; use Ushahidi\Core\Entity\RoleRepository as RoleRepositoryContract; class RoleRepository extends OhanzeeRepository implements @@ -28,7 +28,8 @@ protected function getTable() protected function getPermissions($role) { - return DB::select('permission')->from('roles_permissions') + return DB::select('permission') + ->from('roles_permissions') ->where('role', '=', $role) ->execute($this->db()) ->as_array(null, 'permission'); diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/SetRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/SetRepository.php index 3629c9ef96..39642664c2 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/SetRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/SetRepository.php @@ -12,13 +12,13 @@ namespace Ushahidi\Core\Ohanzee\Repositories; use Ohanzee\DB; -use Ushahidi\Core\Entity\Set; -use Ushahidi\Core\Tool\SearchData; use Ushahidi\Contracts\Entity; +use Ushahidi\Contracts\Search; use Ushahidi\Core\Concerns\Event; -use Ushahidi\Core\Entity\SavedSearch; +use Ushahidi\Core\Tool\SearchData; +use Ushahidi\Core\Ohanzee\Entities\Set; +use Ushahidi\Core\Ohanzee\Entities\SavedSearch; use Ushahidi\Core\Entity\SetRepository as SetRepositoryContract; -use Ushahidi\Contracts\Search; class SetRepository extends OhanzeeRepository implements SetRepositoryContract { diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/TagRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/TagRepository.php index d4452038ec..dd0898890f 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/TagRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/TagRepository.php @@ -12,22 +12,16 @@ namespace Ushahidi\Core\Ohanzee\Repositories; use Ohanzee\DB; +use Ushahidi\Contracts\Entity; use Illuminate\Support\Collection; -use Ushahidi\Core\Entity\Tag; use Ushahidi\Core\Tool\SearchData; -use Ushahidi\Contracts\Entity; +use Ushahidi\Core\Ohanzee\Entities\Tag; use Ushahidi\Contracts\ValidationEngine; -use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; use Ushahidi\Core\Ohanzee\Repositories\Concerns; -use Ushahidi\Contracts\Repository\Usecase\DeleteTagRepository; -use Ushahidi\Contracts\Repository\Usecase\UpdateTagRepository; -use Ushahidi\Contracts\Repository\Usecase\UpdatePostTagRepository; +use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; use Ushahidi\Core\Entity\TagRepository as TagRepositoryContract; class TagRepository extends OhanzeeRepository implements - UpdateTagRepository, - DeleteTagRepository, - UpdatePostTagRepository, TagRepositoryContract { // Use the JSON transcoder to encode properties diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/TargetedSurveyStateRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/TargetedSurveyStateRepository.php index c8267fa21f..5ee0d606bb 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/TargetedSurveyStateRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/TargetedSurveyStateRepository.php @@ -12,7 +12,7 @@ namespace Ushahidi\Core\Ohanzee\Repositories; use Ohanzee\DB; -use Ushahidi\Core\Entity; +use Ushahidi\Core\Ohanzee\Entities; use Ushahidi\Core\Entity\TargetedSurveyStateRepository as TargetedSurveyStateRepositoryContract; class TargetedSurveyStateRepository extends OhanzeeRepository implements @@ -28,7 +28,7 @@ protected function getTable() // ReadRepository public function getEntity(array $data = null) { - return new Entity\TargetedSurveyState($data); + return new Entities\TargetedSurveyState($data); } // SearchRepository @@ -45,7 +45,7 @@ public function getByContact($contact, $type) public function getByPost($post) { - return new Entity\Post($this->selectOne(compact('post'))); + return new Entities\Post($this->selectOne(compact('post'))); } public function getActiveByContactId($contact_id) @@ -53,15 +53,15 @@ public function getActiveByContactId($contact_id) return $this->getEntity($this->selectOne([ 'contact_id' => $contact_id, 'survey_status' => [ - Entity\TargetedSurveyState::PENDING_RESPONSE, - Entity\TargetedSurveyState::RECEIVED_RESPONSE + Entities\TargetedSurveyState::PENDING_RESPONSE, + Entities\TargetedSurveyState::RECEIVED_RESPONSE ] ])); } public function getByForm($form) { - return new Entity\Form($this->selectOne(compact('form'))); + return new Entities\Form($this->selectOne(compact('form'))); } @@ -84,8 +84,8 @@ public function isContactInActiveTargetedSurveyAndReceivedMessage($contact_id) 'survey_status', 'IN', [ - Entity\TargetedSurveyState::PENDING_RESPONSE, - Entity\TargetedSurveyState::RECEIVED_RESPONSE + Entities\TargetedSurveyState::PENDING_RESPONSE, + Entities\TargetedSurveyState::RECEIVED_RESPONSE ] ) ->and_where( diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/TosRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/TosRepository.php index 299bbd99d0..10b69bfee6 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/TosRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/TosRepository.php @@ -11,11 +11,10 @@ namespace Ushahidi\Core\Ohanzee\Repositories; -use Ohanzee\DB; -use Ushahidi\Core\Entity\Tos; -use Ushahidi\Core\Tool\SearchData; use Ushahidi\Contracts\Entity; +use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Concerns\UserContext; +use Ushahidi\Core\Ohanzee\Entities\Tos; use Ushahidi\Core\Entity\TosRepository as TosRepositoryContract; class TosRepository extends OhanzeeRepository implements diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/User/SettingRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/User/SettingRepository.php index a8b1e4c0ce..3296f12eeb 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/User/SettingRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/User/SettingRepository.php @@ -13,9 +13,9 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Core\Tool\SearchData; -use Ushahidi\Core\Entity\UserSetting; -use Ushahidi\Core\Entity\UserSettingRepository as UserSettingRepositoryContract; +use Ushahidi\Core\Ohanzee\Entities\UserSetting; use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; +use Ushahidi\Core\Entity\UserSettingRepository as UserSettingRepositoryContract; class SettingRepository extends OhanzeeRepository implements UserSettingRepositoryContract diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/UserRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/UserRepository.php index 50c9e38caf..660d339980 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/UserRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/UserRepository.php @@ -15,22 +15,17 @@ use Ohanzee\DB; use Illuminate\Support\Str; +use Illuminate\Support\Collection; +use Illuminate\Support\Facades\Hash; use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\Hasher; -use Ushahidi\Core\Entity\User; use Ushahidi\Core\Concerns\Event; -use Ushahidi\Core\Entity\Contact; -use Illuminate\Support\Collection; use Ushahidi\Core\Tool\SearchData; -use Illuminate\Support\Facades\Hash; -use Ushahidi\Contracts\Repository\Usecase\UserRegisterRepository; -use Ushahidi\Contracts\Repository\Usecase\UserResetPasswordRepository; +use Ushahidi\Core\Ohanzee\Entities\User; +use Ushahidi\Core\Ohanzee\Entities\Contact; use Ushahidi\Core\Entity\UserRepository as UserRepositoryContract; -class UserRepository extends OhanzeeRepository implements - UserRepositoryContract, - UserRegisterRepository, - UserResetPasswordRepository +class UserRepository extends OhanzeeRepository implements UserRepositoryContract { /** * @var Hasher diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/Webhook/JobRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Webhook/JobRepository.php index ce15eca8e2..14fc564ad0 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/Webhook/JobRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Webhook/JobRepository.php @@ -11,9 +11,9 @@ namespace Ushahidi\Core\Ohanzee\Repositories\Webhook; -use Ushahidi\Core\Tool\SearchData; use Ushahidi\Contracts\Entity; -use Ushahidi\Core\Entity\WebhookJob; +use Ushahidi\Core\Tool\SearchData; +use Ushahidi\Core\Ohanzee\Entities\WebhookJob; use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; use Ushahidi\Core\Entity\WebhookJobRepository as WebhookJobRepositoryContract; diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/WebhookRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/WebhookRepository.php index 66de48bea5..ce5ab14f71 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/WebhookRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/WebhookRepository.php @@ -11,13 +11,12 @@ namespace Ushahidi\Core\Ohanzee\Repositories; -use Log; use Ramsey\Uuid\Uuid; -use Ushahidi\Core\Tool\SearchData; use Ushahidi\Contracts\Entity; -use Ushahidi\Core\Entity\Webhook; +use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; +use Ushahidi\Core\Ohanzee\Entities\Webhook; use Ushahidi\Core\Entity\WebhookRepository as WebhookRepositoryContract; class WebhookRepository extends OhanzeeRepository implements WebhookRepositoryContract diff --git a/src/Ushahidi/Core/Concerns/StatefulData.php b/src/Ushahidi/Core/Ohanzee/StatefulData.php similarity index 97% rename from src/Ushahidi/Core/Concerns/StatefulData.php rename to src/Ushahidi/Core/Ohanzee/StatefulData.php index a551c2a374..c842781808 100644 --- a/src/Ushahidi/Core/Concerns/StatefulData.php +++ b/src/Ushahidi/Core/Ohanzee/StatefulData.php @@ -9,7 +9,12 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Core\Concerns; +namespace Ushahidi\Core\Ohanzee; + +use Ushahidi\Core\Concerns\DeriveData; +use Ushahidi\Core\Concerns\DefaultData; +use Ushahidi\Core\Concerns\TransformData; +use Ushahidi\Core\Concerns\RecursiveArrayDiff; trait StatefulData { @@ -229,7 +234,7 @@ public function getChanged() /** * Get the current entity state as an associative array. * - * @return Array + * @return array */ abstract public function asArray(); diff --git a/src/Ushahidi/Core/StaticEntity.php b/src/Ushahidi/Core/Ohanzee/StaticEntity.php similarity index 88% rename from src/Ushahidi/Core/StaticEntity.php rename to src/Ushahidi/Core/Ohanzee/StaticEntity.php index 9235fee7e5..43ee7764e7 100644 --- a/src/Ushahidi/Core/StaticEntity.php +++ b/src/Ushahidi/Core/Ohanzee/StaticEntity.php @@ -11,10 +11,9 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Core; +namespace Ushahidi\Core\Ohanzee; use Ushahidi\Contracts\Entity; -use Ushahidi\Core\Concerns\StatefulData; abstract class StaticEntity implements Entity { @@ -24,8 +23,8 @@ abstract class StaticEntity implements Entity /** * Transparent access to private entity properties. * - * @param String $key - * @return Mixed + * @param string $key + * @return mixed */ public function __get($key) { @@ -37,8 +36,8 @@ public function __get($key) /** * Transparent checking of private entity properties. * - * @param String $key - * @return Mixed + * @param string $key + * @return mixed */ final public function __isset($key) { diff --git a/src/Ushahidi/Core/Tool/Acl.php b/src/Ushahidi/Core/Tool/Acl.php index 7459b0e15f..131aa3ad1d 100644 --- a/src/Ushahidi/Core/Tool/Acl.php +++ b/src/Ushahidi/Core/Tool/Acl.php @@ -11,15 +11,16 @@ namespace Ushahidi\Core\Tool; -use Ushahidi\Contracts\Entity; -use Ushahidi\Core\Facade\Features; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Contracts\Acl as AclInterface; +use Ushahidi\Core\Entity\User as Entity; +use Ushahidi\Core\Facade\Features; use Ushahidi\Core\Entity\RoleRepository; class Acl implements AclInterface { protected $role_repo; + const DEFAULT_ROLES = [ 'user' => [Permission::EDIT_OWN_POSTS] ]; @@ -30,7 +31,7 @@ public function setRoleRepo(RoleRepository $role_repo) } // Acl interface - public function hasPermission(Entity $user, $permission) + public function hasPermission($user, $permission) { // If the user has no role, they have no permissions if (!$user->role) { @@ -51,7 +52,8 @@ public function hasPermission(Entity $user, $permission) return $this->defaultHasPermission($user, $permission); } } - protected function customRoleHasPermission(Entity $user, $permission) + + protected function customRoleHasPermission($user, $permission) { $role = $this->role_repo->getByName($user->role); @@ -59,7 +61,7 @@ protected function customRoleHasPermission(Entity $user, $permission) return in_array($permission, $role->permissions); } - protected function defaultHasPermission(Entity $user, $permission) + protected function defaultHasPermission($user, $permission) { $defaultRoles = static::DEFAULT_ROLES; $rolePermissions = isset($defaultRoles[$user->role]) ? $defaultRoles[$user->role] : []; diff --git a/src/Ushahidi/Core/Tool/Authorizer/ApiKeyAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/ApiKeyAuthorizer.php index 10656cdf17..e5b27bf7ca 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/ApiKeyAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/ApiKeyAuthorizer.php @@ -12,7 +12,7 @@ namespace Ushahidi\Core\Tool\Authorizer; use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Contracts\Authorizer; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; diff --git a/src/Ushahidi/Core/Tool/Authorizer/CSVAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/CSVAuthorizer.php index 415c68dca7..62f6f8dd31 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/CSVAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/CSVAuthorizer.php @@ -13,7 +13,7 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Core\Entity\CSV; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Contracts\Authorizer; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; diff --git a/src/Ushahidi/Core/Tool/Authorizer/ConfigAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/ConfigAuthorizer.php index 8c6f3cedab..cd3e50f520 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/ConfigAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/ConfigAuthorizer.php @@ -12,7 +12,7 @@ namespace Ushahidi\Core\Tool\Authorizer; use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Contracts\Authorizer; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; diff --git a/src/Ushahidi/Core/Tool/Authorizer/CountryCodeAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/CountryCodeAuthorizer.php index 8ec1893e1d..8979f59b50 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/CountryCodeAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/CountryCodeAuthorizer.php @@ -12,7 +12,7 @@ namespace Ushahidi\Core\Tool\Authorizer; use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Contracts\Authorizer; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; diff --git a/src/Ushahidi/Core/Tool/Authorizer/DataProviderAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/DataProviderAuthorizer.php index 7831103d4b..3e3ad0ad3d 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/DataProviderAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/DataProviderAuthorizer.php @@ -13,7 +13,7 @@ use Ushahidi\Contracts\Authorizer; use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\PrivAccess; diff --git a/src/Ushahidi/Core/Tool/Authorizer/ExportJobAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/ExportJobAuthorizer.php index 7d68727ab8..bada489ffa 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/ExportJobAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/ExportJobAuthorizer.php @@ -16,7 +16,7 @@ use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\OwnerAccess; use Ushahidi\Core\Concerns\UserContext; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\PrivateDeployment; use Ushahidi\Core\Concerns\Acl as AccessControlList; diff --git a/src/Ushahidi/Core/Tool/Authorizer/FormAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/FormAuthorizer.php index c6660752b1..37d3d9c7ac 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/FormAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/FormAuthorizer.php @@ -13,7 +13,7 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\Authorizer; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; diff --git a/src/Ushahidi/Core/Tool/Authorizer/FormStatsAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/FormStatsAuthorizer.php index 14194611eb..a9fb6dd773 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/FormStatsAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/FormStatsAuthorizer.php @@ -14,7 +14,7 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\Authorizer; use Ushahidi\Core\Concerns\UserContext; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\PrivateDeployment; diff --git a/src/Ushahidi/Core/Tool/Authorizer/HXLAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/HXLAuthorizer.php index 85e73118fe..b09ce33651 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/HXLAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/HXLAuthorizer.php @@ -12,7 +12,7 @@ namespace Ushahidi\Core\Tool\Authorizer; use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Contracts\Authorizer; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; diff --git a/src/Ushahidi/Core/Tool/Authorizer/MessageAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/MessageAuthorizer.php index 7a32cf541f..f619ad7c8b 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/MessageAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/MessageAuthorizer.php @@ -18,7 +18,7 @@ use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\PrivateDeployment; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Core\Concerns\Acl as AccessControlList; // The `MessageAuthorizer` class is responsible for access checks on `Message` diff --git a/src/Ushahidi/Core/Tool/Authorizer/PostAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/PostAuthorizer.php index c8e1c077c1..5413f6131a 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/PostAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/PostAuthorizer.php @@ -13,7 +13,7 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\Authorizer; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\OwnerAccess; diff --git a/src/Ushahidi/Core/Tool/Authorizer/SetAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/SetAuthorizer.php index 10e475b489..69d03bb8f3 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/SetAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/SetAuthorizer.php @@ -12,10 +12,9 @@ namespace Ushahidi\Core\Tool\Authorizer; use Ushahidi\Contracts\Entity; -use Ushahidi\Core\Entity\User; -use Ushahidi\Core\Entity\Set; -use Ushahidi\Contracts\Permission; use Ushahidi\Contracts\Authorizer; +use Ushahidi\Core\Entity\Set; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\OwnerAccess; use Ushahidi\Core\Concerns\UserContext; diff --git a/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php index 81723eb51a..0d5df8bfed 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php @@ -14,7 +14,7 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\Authorizer; use Ushahidi\Contracts\Repository\EntityGet; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; diff --git a/src/Ushahidi/Core/Tool/Authorizer/UserAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/UserAuthorizer.php index 4a792f40db..38bcc9cefc 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/UserAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/UserAuthorizer.php @@ -13,7 +13,7 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Core\Entity\User; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Contracts\Authorizer; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; diff --git a/src/Ushahidi/Core/Tool/Features.php b/src/Ushahidi/Core/Tool/Features.php index dc62c4aef1..006a8eaec0 100644 --- a/src/Ushahidi/Core/Tool/Features.php +++ b/src/Ushahidi/Core/Tool/Features.php @@ -7,6 +7,8 @@ class Features { + protected $configRepo; + /** * Cache lifetime in minutes */ diff --git a/src/Ushahidi/Core/Tool/Permissions/FormPermissions.php b/src/Ushahidi/Core/Tool/Permissions/FormPermissions.php index e2a59a4981..88f88b297b 100644 --- a/src/Ushahidi/Core/Tool/Permissions/FormPermissions.php +++ b/src/Ushahidi/Core/Tool/Permissions/FormPermissions.php @@ -12,7 +12,7 @@ namespace Ushahidi\Core\Tool\Permissions; use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Core\Concerns\Acl as AccessControlList; use Ushahidi\Core\Concerns\AdminAccess; diff --git a/src/Ushahidi/Core/Tool/Permissions/PostPermissions.php b/src/Ushahidi/Core/Tool/Permissions/PostPermissions.php index 913bcf122e..0ff9267e06 100644 --- a/src/Ushahidi/Core/Tool/Permissions/PostPermissions.php +++ b/src/Ushahidi/Core/Tool/Permissions/PostPermissions.php @@ -12,7 +12,7 @@ namespace Ushahidi\Core\Tool\Permissions; use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\Acl as AccessControlList; use Ushahidi\Core\Entity\FormRepository; diff --git a/src/Ushahidi/Core/Usecase/Concerns/VerifyStageLoaded.php b/src/Ushahidi/Core/Usecase/Concerns/VerifyStageLoaded.php index b1ad1e66f0..c9c7c1a6ee 100644 --- a/src/Ushahidi/Core/Usecase/Concerns/VerifyStageLoaded.php +++ b/src/Ushahidi/Core/Usecase/Concerns/VerifyStageLoaded.php @@ -18,12 +18,12 @@ trait VerifyStageLoaded { /** - * @var FormRepository + * @var \Ushahidi\Core\Entity\FormStageRepository */ protected $form_stage_repo; /** - * @param FormStageRepository $repo + * @param \Ushahidi\Core\Entity\FormStageRepository $repo * @return void */ public function setStageRepository(FormStageRepository $repo) @@ -33,7 +33,7 @@ public function setStageRepository(FormStageRepository $repo) /** * Checks that the form exists. - * @param Data $input + * @param \Ushahidi\Core\Entity\FormAttribute $input * @return void */ protected function verifyStageExists(FormAttribute $entity) diff --git a/src/Ushahidi/Core/Usecase/CreateUsecase.php b/src/Ushahidi/Core/Usecase/CreateUsecase.php index fe97295dcb..8e124c874d 100644 --- a/src/Ushahidi/Core/Usecase/CreateUsecase.php +++ b/src/Ushahidi/Core/Usecase/CreateUsecase.php @@ -123,7 +123,7 @@ protected function getEntity() /** * Get the created entity. * - * @param Mixed $id + * @param mixed $id * @return Entity */ protected function getCreatedEntity($id) diff --git a/src/Ushahidi/Core/Usecase/HXL/SendHXLUsecase.php b/src/Ushahidi/Core/Usecase/HXL/SendHXLUsecase.php index 14c4c089f4..e04c76d933 100644 --- a/src/Ushahidi/Core/Usecase/HXL/SendHXLUsecase.php +++ b/src/Ushahidi/Core/Usecase/HXL/SendHXLUsecase.php @@ -11,17 +11,17 @@ namespace Ushahidi\Core\Usecase\HXL; -use Illuminate\Support\Facades\Log; use Ushahidi\Contracts\Usecase; -use Ushahidi\Core\Usecase\Concerns\Formatter as FormatterTrait; -use Ushahidi\Core\Usecase\Concerns\Authorizer as AuthorizerTrait; -use Ushahidi\Core\Usecase\Concerns\Translator as TranslatorTrait; -use Ushahidi\Core\Tool\ExternalServices\HDXInterface; -use Ushahidi\Core\Usecase\Concerns\IdentifyRecords; +use Illuminate\Support\Facades\Log; use Ushahidi\Core\Entity\ExportJobRepository; +use Ushahidi\Core\Entity\UserSettingRepository; use Ushahidi\Core\Entity\HXL\HXLLicenseRepository; use Ushahidi\Core\Entity\HXL\HXLMetadataRepository; -use Ushahidi\Core\Entity\HXL\UserSettingRepository; +use Ushahidi\Core\Usecase\Concerns\IdentifyRecords; +use Ushahidi\Core\Tool\ExternalServices\HDXInterface; +use Ushahidi\Core\Usecase\Concerns\Formatter as FormatterTrait; +use Ushahidi\Core\Usecase\Concerns\Authorizer as AuthorizerTrait; +use Ushahidi\Core\Usecase\Concerns\Translator as TranslatorTrait; use Ushahidi\Core\Entity\HXL\HXLFormAttributeHXLAttributeTagRepository; class SendHXLUsecase implements Usecase diff --git a/src/Ushahidi/Core/Usecase/OptionsUsecase.php b/src/Ushahidi/Core/Usecase/OptionsUsecase.php index 3f1494464e..941f85374a 100644 --- a/src/Ushahidi/Core/Usecase/OptionsUsecase.php +++ b/src/Ushahidi/Core/Usecase/OptionsUsecase.php @@ -32,7 +32,7 @@ class OptionsUsecase implements Usecase use IdentifyRecords; /** - * @var SearchRepository + * @var \Ushahidi\Contracts\Repository\ReadRepository */ protected $repo; diff --git a/src/Ushahidi/Core/Usecase/Post/DeletePostLock.php b/src/Ushahidi/Core/Usecase/Post/DeletePostLock.php index c49fdab60d..d383999026 100644 --- a/src/Ushahidi/Core/Usecase/Post/DeletePostLock.php +++ b/src/Ushahidi/Core/Usecase/Post/DeletePostLock.php @@ -12,7 +12,6 @@ namespace Ushahidi\Core\Usecase\Post; use Ushahidi\Core\Usecase\DeleteUsecase; -use Ushahidi\Core\Entity\PostLock; use Ushahidi\Core\Usecase\Post\Concerns\PostLock as PostLockTrait; use Ushahidi\Core\Concerns\UserContext; @@ -23,16 +22,23 @@ class DeletePostLock extends DeleteUsecase use PostLockTrait; + /** + * + * @var \Ushahidi\Core\Entity\PostLockRepository + */ + protected $repo; + // Usecase public function interact() { // Fetch a default entity and apply the payload... $post = $this->getPostEntity(); - $lock = new PostLock(); // ... verify that the entity can be locked by the current user $this->verifyLockAuth($post); + $lock = $this->repo->getEntity(); + // We have 3 mechanisms by which a lock(s) can be release // by lock id, by post id or by user id // In the case of user id we release all locks owned by this user diff --git a/src/Ushahidi/Core/Usecase/Post/ImportPost.php b/src/Ushahidi/Core/Usecase/Post/ImportPost.php index 725f77bb87..9017321758 100644 --- a/src/Ushahidi/Core/Usecase/Post/ImportPost.php +++ b/src/Ushahidi/Core/Usecase/Post/ImportPost.php @@ -12,16 +12,16 @@ namespace Ushahidi\Core\Usecase\Post; use Traversable; -use Ushahidi\Core\Entity\CSV; use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\Usecase; use Ushahidi\Core\Concerns\Event; use Ushahidi\Contracts\Transformer; +use Ushahidi\Core\Ohanzee\Entities\CSV; +use Ushahidi\Contracts\Repository\ImportRepository; use Ushahidi\Core\Usecase\Concerns\Formatter as FormatterTrait; use Ushahidi\Core\Usecase\Concerns\Validator as ValidatorTrait; use Ushahidi\Core\Usecase\Concerns\Authorizer as AuthorizerTrait; use Ushahidi\Core\Usecase\Concerns\Translator as TranslatorTrait; -use Ushahidi\Contracts\Repository\ImportRepository; class ImportPost implements Usecase { diff --git a/src/Ushahidi/Core/Usecase/User/GetResetToken.php b/src/Ushahidi/Core/Usecase/User/GetResetToken.php index 4ff9cc9a0e..441fcc56e8 100644 --- a/src/Ushahidi/Core/Usecase/User/GetResetToken.php +++ b/src/Ushahidi/Core/Usecase/User/GetResetToken.php @@ -13,11 +13,11 @@ use Ushahidi\Contracts\Mailer; use Ushahidi\Contracts\Usecase; +use Ushahidi\Core\Entity\UserRepository; use Ushahidi\Core\Usecase\Concerns\ModifyRecords; use Ushahidi\Core\Usecase\Concerns\Formatter as FormatterTrait; use Ushahidi\Core\Usecase\Concerns\Authorizer as AuthorizerTrait; use Ushahidi\Core\Usecase\Concerns\Translator as TranslatorTrait; -use Ushahidi\Contracts\Repository\Usecase\UserResetPasswordRepository; class GetResetToken implements Usecase { @@ -43,16 +43,13 @@ public function isSearch() return false; } - /** - * @var \Ushahidi\Contracts\Repository\Usecase\UserResetPasswordRepository - */ protected $repo; /** * Inject a repository * */ - public function setRepository(UserResetPasswordRepository $repo) + public function setRepository(UserRepository $repo) { $this->repo = $repo; return $this; diff --git a/src/Ushahidi/Core/Usecase/User/ResetUserPassword.php b/src/Ushahidi/Core/Usecase/User/ResetUserPassword.php index e02962bab6..40cb5a7c14 100644 --- a/src/Ushahidi/Core/Usecase/User/ResetUserPassword.php +++ b/src/Ushahidi/Core/Usecase/User/ResetUserPassword.php @@ -12,12 +12,12 @@ namespace Ushahidi\Core\Usecase\User; use Ushahidi\Contracts\Usecase; +use Ushahidi\Core\Entity\UserRepository; use Ushahidi\Core\Usecase\Concerns\ModifyRecords; use Ushahidi\Core\Usecase\Concerns\Formatter as FormatterTrait; use Ushahidi\Core\Usecase\Concerns\Validator as ValidatorTrait; use Ushahidi\Core\Usecase\Concerns\Authorizer as AuthorizerTrait; use Ushahidi\Core\Usecase\Concerns\Translator as TranslatorTrait; -use Ushahidi\Contracts\Repository\Usecase\UserResetPasswordRepository; class ResetUserPassword implements Usecase { @@ -46,7 +46,7 @@ public function isSearch() return false; } - public function setRepository(UserResetPasswordRepository $repo) + public function setRepository(UserRepository $repo) { $this->repo = $repo; return $this; diff --git a/src/Ushahidi/Modules/V2/Jobs/CreateDefaultSurvey.php b/src/Ushahidi/Modules/V2/Jobs/CreateDefaultSurvey.php index 8e627649b1..3125c15a89 100644 --- a/src/Ushahidi/Modules/V2/Jobs/CreateDefaultSurvey.php +++ b/src/Ushahidi/Modules/V2/Jobs/CreateDefaultSurvey.php @@ -4,10 +4,9 @@ use Ushahidi\Modules\V2; use Ushahidi\Core\Tool\Job; -use Ushahidi\Core\Entity\Form; -use Illuminate\Support\Facades\Log; -use Ushahidi\Core\Entity\FormStage; -use Ushahidi\Core\Entity\FormAttribute; +use Ushahidi\Core\Ohanzee\Entities\Form; +use Ushahidi\Core\Ohanzee\Entities\FormStage; +use Ushahidi\Core\Ohanzee\Entities\FormAttribute; use Ushahidi\Core\Entity; class CreateDefaultSurvey extends Job diff --git a/src/Ushahidi/Modules/V2/Jobs/ImportCategories.php b/src/Ushahidi/Modules/V2/Jobs/ImportCategories.php index bbeabbf58c..a340780397 100644 --- a/src/Ushahidi/Modules/V2/Jobs/ImportCategories.php +++ b/src/Ushahidi/Modules/V2/Jobs/ImportCategories.php @@ -4,7 +4,7 @@ use Exception; use Ushahidi\Modules\V2; -use Ushahidi\Core\Entity; +use Ushahidi\Core\Ohanzee\Entities; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Log; use Ushahidi\Modules\V2\ManifestSchemas\ImportParameters; diff --git a/src/Ushahidi/Modules/V2/Jobs/ImportIncidents.php b/src/Ushahidi/Modules/V2/Jobs/ImportIncidents.php index 115616b5d5..3e8a370852 100644 --- a/src/Ushahidi/Modules/V2/Jobs/ImportIncidents.php +++ b/src/Ushahidi/Modules/V2/Jobs/ImportIncidents.php @@ -3,7 +3,7 @@ namespace Ushahidi\Modules\V2\Jobs; use Ushahidi\Modules\V2; -use Ushahidi\Core\Entity; +use Ushahidi\Core\Ohanzee\Entities; use Ushahidi\Core\Tool\Job; use Illuminate\Support\Facades\DB; use Ushahidi\Core\Entity\PostRepository; diff --git a/src/Ushahidi/Modules/V2/Jobs/ImportMessages.php b/src/Ushahidi/Modules/V2/Jobs/ImportMessages.php index f5833aaeb1..6c53f7fc27 100644 --- a/src/Ushahidi/Modules/V2/Jobs/ImportMessages.php +++ b/src/Ushahidi/Modules/V2/Jobs/ImportMessages.php @@ -3,8 +3,6 @@ namespace Ushahidi\Modules\V2\Jobs; use Ushahidi\Modules\V2; -use Ushahidi\Core\Entity; -use Ushahidi\Core\Tool\Job; use Illuminate\Support\Facades\DB; use Ushahidi\Core\Entity\MessageRepository; diff --git a/src/Ushahidi/Modules/V2/Jobs/ImportReporters.php b/src/Ushahidi/Modules/V2/Jobs/ImportReporters.php index 46a2568266..958c9741ed 100644 --- a/src/Ushahidi/Modules/V2/Jobs/ImportReporters.php +++ b/src/Ushahidi/Modules/V2/Jobs/ImportReporters.php @@ -3,7 +3,7 @@ namespace Ushahidi\Modules\V2\Jobs; use Ushahidi\Modules\V2; -use Ushahidi\Core\Entity; +use Ushahidi\Core\Ohanzee\Entities; use Illuminate\Support\Facades\DB; use Ushahidi\Core\Entity\ContactRepository; diff --git a/src/Ushahidi/Modules/V2/Jobs/ImportUsers.php b/src/Ushahidi/Modules/V2/Jobs/ImportUsers.php index 78c6d5f62c..7207bd2a6a 100644 --- a/src/Ushahidi/Modules/V2/Jobs/ImportUsers.php +++ b/src/Ushahidi/Modules/V2/Jobs/ImportUsers.php @@ -3,7 +3,7 @@ namespace Ushahidi\Modules\V2\Jobs; use Ushahidi\Modules\V2; -use Ushahidi\Core\Entity; +use Ushahidi\Core\Ohanzee\Entities; use Illuminate\Support\Collection; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; diff --git a/src/Ushahidi/Modules/V2/Mappers/CategoryTagMapper.php b/src/Ushahidi/Modules/V2/Mappers/CategoryTagMapper.php index 9ee4b41f07..c7f1a6589c 100644 --- a/src/Ushahidi/Modules/V2/Mappers/CategoryTagMapper.php +++ b/src/Ushahidi/Modules/V2/Mappers/CategoryTagMapper.php @@ -2,8 +2,7 @@ namespace Ushahidi\Modules\V2\Mappers; -use Ushahidi\Core\Entity; -use Ushahidi\Core\Entity\Tag; +use Ushahidi\Core\Ohanzee\Entities\Tag; use Ushahidi\Modules\V2\Import; use Ushahidi\Modules\V2\Contracts\Mapper; use Ushahidi\Modules\V2\Contracts\ImportMappingRepository; diff --git a/src/Ushahidi/Modules/V2/Mappers/FormFieldAttributeMapper.php b/src/Ushahidi/Modules/V2/Mappers/FormFieldAttributeMapper.php index 11ae680cf5..73c5b3a9de 100644 --- a/src/Ushahidi/Modules/V2/Mappers/FormFieldAttributeMapper.php +++ b/src/Ushahidi/Modules/V2/Mappers/FormFieldAttributeMapper.php @@ -2,15 +2,15 @@ namespace Ushahidi\Modules\V2\Mappers; -use Ushahidi\Core\Entity\FormAttribute; -use Ushahidi\Core\Entity\FormStageRepository; use Ushahidi\Modules\V2\Import; -use Ushahidi\Modules\V2\Jobs\ImportForms; +use Illuminate\Support\Facades\Log; use Ushahidi\Modules\V2\Contracts\Mapper; -use Ushahidi\Modules\V2\Contracts\ImportMappingRepository; +use Ushahidi\Modules\V2\Jobs\ImportForms; +use Ushahidi\Core\Entity\FormStageRepository; +use Ushahidi\Core\Ohanzee\Entities\FormAttribute; use Ushahidi\Modules\V2\Contracts\ImportDataTools; -use Illuminate\Support\Facades\Log; +use Ushahidi\Modules\V2\Contracts\ImportMappingRepository; class FormFieldAttributeMapper implements Mapper { diff --git a/src/Ushahidi/Modules/V2/Mappers/FormMapper.php b/src/Ushahidi/Modules/V2/Mappers/FormMapper.php index 368977cffd..df0eaec296 100644 --- a/src/Ushahidi/Modules/V2/Mappers/FormMapper.php +++ b/src/Ushahidi/Modules/V2/Mappers/FormMapper.php @@ -2,10 +2,10 @@ namespace Ushahidi\Modules\V2\Mappers; -use Ushahidi\Core\Entity\Form; use Ushahidi\Modules\V2\Import; -use Ushahidi\Modules\V2\Contracts\Mapper; use Illuminate\Support\Facades\Log; +use Ushahidi\Core\Ohanzee\Entities\Form; +use Ushahidi\Modules\V2\Contracts\Mapper; class FormMapper implements Mapper { diff --git a/src/Ushahidi/Modules/V2/Mappers/IncidentPostMapper.php b/src/Ushahidi/Modules/V2/Mappers/IncidentPostMapper.php index e8c5f47d30..fd6366fac1 100644 --- a/src/Ushahidi/Modules/V2/Mappers/IncidentPostMapper.php +++ b/src/Ushahidi/Modules/V2/Mappers/IncidentPostMapper.php @@ -4,14 +4,14 @@ use Carbon\Carbon; use Ushahidi\Modules\V2\Import; -use Ushahidi\Core\Entity\Post; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Log; use League\Flysystem\Util\MimeType; +use Ushahidi\Core\Ohanzee\Entities\Post; use Ushahidi\Modules\V2\Contracts\Mapper; +use Ushahidi\Core\Entity\FormAttributeRepository; use Ushahidi\Modules\V2\Contracts\ImportDataTools; use Ushahidi\Modules\V2\Contracts\ImportMappingRepository; -use Ushahidi\Core\Entity\FormAttributeRepository; class IncidentPostMapper implements Mapper { diff --git a/src/Ushahidi/Modules/V2/Mappers/MessageMapper.php b/src/Ushahidi/Modules/V2/Mappers/MessageMapper.php index 8f7f71635e..416bb33537 100644 --- a/src/Ushahidi/Modules/V2/Mappers/MessageMapper.php +++ b/src/Ushahidi/Modules/V2/Mappers/MessageMapper.php @@ -2,12 +2,12 @@ namespace Ushahidi\Modules\V2\Mappers; -use Illuminate\Support\Collection; use Ushahidi\Modules\V2\Import; +use Illuminate\Support\Collection; use Ushahidi\Modules\V2\Contracts\Mapper; -use Ushahidi\Modules\V2\Contracts\ImportMappingRepository; -use Ushahidi\Core\Entity\Message; use Ushahidi\Core\Entity\ContactRepository; +use Ushahidi\Core\Ohanzee\Entities\Message; +use Ushahidi\Modules\V2\Contracts\ImportMappingRepository; class MessageMapper implements Mapper { diff --git a/src/Ushahidi/Modules/V2/Mappers/ReporterUserMapper.php b/src/Ushahidi/Modules/V2/Mappers/ReporterUserMapper.php index e74323729c..293a5bcf02 100644 --- a/src/Ushahidi/Modules/V2/Mappers/ReporterUserMapper.php +++ b/src/Ushahidi/Modules/V2/Mappers/ReporterUserMapper.php @@ -2,13 +2,12 @@ namespace Ushahidi\Modules\V2\Mappers; -use Ushahidi\Core\Entity\Contact; use Ushahidi\Modules\V2\Import; -use Ushahidi\Modules\V2\Contracts\Mapper; -use Ushahidi\Modules\V2\Contracts\ImportMappingRepository; - use Illuminate\Support\Collection; use Illuminate\Support\Facades\Log; +use Ushahidi\Modules\V2\Contracts\Mapper; +use Ushahidi\Core\Ohanzee\Entities\Contact; +use Ushahidi\Modules\V2\Contracts\ImportMappingRepository; class ReporterUserMapper implements Mapper { diff --git a/src/Ushahidi/Modules/V2/Mappers/UserMapper.php b/src/Ushahidi/Modules/V2/Mappers/UserMapper.php index 0fc3d38eef..1c601de6a1 100644 --- a/src/Ushahidi/Modules/V2/Mappers/UserMapper.php +++ b/src/Ushahidi/Modules/V2/Mappers/UserMapper.php @@ -2,8 +2,8 @@ namespace Ushahidi\Modules\V2\Mappers; -use Ushahidi\Core\Entity\User; use Ushahidi\Modules\V2\Import; +use Ushahidi\Core\Ohanzee\Entities\User; use Ushahidi\Modules\V2\Contracts\Mapper; class UserMapper implements Mapper diff --git a/src/Ushahidi/Modules/V3/ContainerConfig/AppConfig.php b/src/Ushahidi/Modules/V3/ContainerConfig/AppConfig.php index e8b0b4b1b0..1f28456673 100644 --- a/src/Ushahidi/Modules/V3/ContainerConfig/AppConfig.php +++ b/src/Ushahidi/Modules/V3/ContainerConfig/AppConfig.php @@ -387,10 +387,10 @@ public function define(Container $di): void $di->setters[V3\Validator\Form\Contact\Create::class]['setFormRepo'] = $di->lazyGet('repository.form'); - $di->setters[V3\Validator\Form\Contact\Create::class]['setContactRepo'] = - $di->lazyGet('repository.contact'); - $di->setters[V3\Validator\Form\Contact\Create::class]['setFormContactRepo'] = - $di->lazyGet('repository.form_contact'); + // $di->setters[V3\Validator\Form\Contact\Create::class]['setContactRepo'] = + // $di->lazyGet('repository.contact'); + // $di->setters[V3\Validator\Form\Contact\Create::class]['setFormContactRepo'] = + // $di->lazyGet('repository.form_contact'); // Form Attribute repository parameters diff --git a/src/Ushahidi/Modules/V3/Jobs/CombineExportedPostBatchesJob.php b/src/Ushahidi/Modules/V3/Jobs/CombineExportedPostBatchesJob.php index 92bcc76203..fd94927a4e 100644 --- a/src/Ushahidi/Modules/V3/Jobs/CombineExportedPostBatchesJob.php +++ b/src/Ushahidi/Modules/V3/Jobs/CombineExportedPostBatchesJob.php @@ -11,14 +11,13 @@ use Ushahidi\Core\Entity\ExportJob; use Ushahidi\Core\Entity\ExportBatch; use Illuminate\Support\Facades\Storage; -use Ushahidi\Core\Concerns\RecordsExportJobFailure; -use Illuminate\Support\Facades\File as LocalFilesystem; use Ushahidi\Core\Entity\ExportJobRepository; use Ushahidi\Core\Entity\ExportBatchRepository; +use Illuminate\Support\Facades\File as LocalFilesystem; class CombineExportedPostBatchesJob extends Job { - use RecordsExportJobFailure; + use Concerns\RecordsExportJobFailure; protected $jobId; diff --git a/src/Ushahidi/Core/Concerns/RecordsExportJobFailure.php b/src/Ushahidi/Modules/V3/Jobs/Concerns/RecordsExportJobFailure.php similarity index 86% rename from src/Ushahidi/Core/Concerns/RecordsExportJobFailure.php rename to src/Ushahidi/Modules/V3/Jobs/Concerns/RecordsExportJobFailure.php index 5d06bdd6e5..4c57d86635 100644 --- a/src/Ushahidi/Core/Concerns/RecordsExportJobFailure.php +++ b/src/Ushahidi/Modules/V3/Jobs/Concerns/RecordsExportJobFailure.php @@ -1,10 +1,10 @@ $form_id, 'post_id' => $postId, 'contact_id' => $contactId, - 'survey_status' => \Ushahidi\Core\Entity\TargetedSurveyState::PENDING_RESPONSE + 'survey_status' => \Ushahidi\Core\Ohanzee\Entities\TargetedSurveyState::PENDING_RESPONSE ] ); diff --git a/src/Ushahidi/Modules/V3/Listener/HandleTargetedSurveyResponse.php b/src/Ushahidi/Modules/V3/Listener/HandleTargetedSurveyResponse.php index 406ae0691c..cd954adebb 100644 --- a/src/Ushahidi/Modules/V3/Listener/HandleTargetedSurveyResponse.php +++ b/src/Ushahidi/Modules/V3/Listener/HandleTargetedSurveyResponse.php @@ -1,9 +1,9 @@ repo->create($entity); - } catch (Exception $e) { + } catch (\Exception $e) { $errors++; } service('repository.set')->addPostToSet($collection_id, $id); diff --git a/src/Ushahidi/Modules/V3/Listener/PostSetListener.php b/src/Ushahidi/Modules/V3/Listener/PostSetListener.php index e0223a60e9..cc3baa3d89 100644 --- a/src/Ushahidi/Modules/V3/Listener/PostSetListener.php +++ b/src/Ushahidi/Modules/V3/Listener/PostSetListener.php @@ -15,13 +15,13 @@ use League\Event\EventInterface; use League\Event\AbstractListener; -use Ushahidi\Core\Entity\NotificationQueueRepository; +use Ushahidi\Core\Ohanzee\Repositories\Notification\QueueRepository; class PostSetListener extends AbstractListener { protected $repo; - public function setRepo(NotificationQueueRepository $repo) + public function setRepo(QueueRepository $repo) { $this->repo = $repo; } diff --git a/src/Ushahidi/Modules/V3/Listener/SendToHDXEventListener.php b/src/Ushahidi/Modules/V3/Listener/SendToHDXEventListener.php index f0c4fce06f..d2ce5ac5b4 100644 --- a/src/Ushahidi/Modules/V3/Listener/SendToHDXEventListener.php +++ b/src/Ushahidi/Modules/V3/Listener/SendToHDXEventListener.php @@ -7,20 +7,6 @@ class SendToHDXEventListener { - /** - * Create the event listener. - * - * @return void - */ - public function __construct() - { - // - } - - protected function getUsecase() - { - } - /** * Handle the event. * diff --git a/src/Ushahidi/Modules/V3/Transformer/CSVPostTransformer.php b/src/Ushahidi/Modules/V3/Transformer/CSVPostTransformer.php index 3f896182b6..69a560a03b 100644 --- a/src/Ushahidi/Modules/V3/Transformer/CSVPostTransformer.php +++ b/src/Ushahidi/Modules/V3/Transformer/CSVPostTransformer.php @@ -11,10 +11,10 @@ namespace Ushahidi\Modules\V3\Transformer; -use Ushahidi\Contracts\MappingTransformer; +use Ushahidi\Contracts\Transformer; use Ushahidi\Core\Entity\PostRepository; -class CSVPostTransformer implements MappingTransformer +class CSVPostTransformer implements Transformer { protected $columnNames; protected $map; diff --git a/src/Ushahidi/Modules/V3/Validator/Form/Contact/Update.php b/src/Ushahidi/Modules/V3/Validator/Form/Contact/Update.php index 90e19d211a..a58637d669 100644 --- a/src/Ushahidi/Modules/V3/Validator/Form/Contact/Update.php +++ b/src/Ushahidi/Modules/V3/Validator/Form/Contact/Update.php @@ -13,31 +13,17 @@ use Ushahidi\Modules\V3\Validator\LegacyValidator; use Ushahidi\Core\Entity\FormRepository; -use Ushahidi\Core\Entity\ContactRepository; -use Ushahidi\Core\Entity\FormContactRepository; class Update extends LegacyValidator { protected $default_error_source = 'form_contact'; protected $form_repo; - protected $contact_repo; - protected $form_contact_repo; - - public function setFormContactRepo(FormContactRepository $form_contact_repo) - { - $this->form_contact_repo = $form_contact_repo; - } public function setFormRepo(FormRepository $form_repo) { $this->form_repo = $form_repo; } - public function setContactRepo(ContactRepository $contact_repo) - { - $this->contact_repo = $contact_repo; - } - protected function getRules() { return [ diff --git a/src/Ushahidi/Modules/V3/Validator/LegacyValidator.php b/src/Ushahidi/Modules/V3/Validator/LegacyValidator.php index d252abf554..7ee3e27320 100644 --- a/src/Ushahidi/Modules/V3/Validator/LegacyValidator.php +++ b/src/Ushahidi/Modules/V3/Validator/LegacyValidator.php @@ -26,15 +26,15 @@ abstract class LegacyValidator implements Validator /** * Must return an array of rules that the validator should apply * - * @return Array $rules array of $key => $rule + * @return array $rules array of $key => $rule */ abstract protected function getRules(); /** * Check the data against the rules returned by getRules() * - * @param Array $data an array of changed values to check in $key => $value format - * @param Array $fullData an array of full entity data for reference during validation + * @param array $data an array of changed values to check in $key => $value format + * @param array $fullData an array of full entity data for reference during validation * @return bool */ public function check(array $data, array $fullData = []) : bool @@ -53,8 +53,8 @@ public function check(array $data, array $fullData = []) : bool /** * Return an array of any errors that occurred during validation * - * @param String $source - * @return Array + * @param string $source + * @return array */ public function errors($source = null) : array { diff --git a/src/Ushahidi/Modules/V3/Validator/Message/Create.php b/src/Ushahidi/Modules/V3/Validator/Message/Create.php index be142b9fa7..d82965ffbc 100644 --- a/src/Ushahidi/Modules/V3/Validator/Message/Create.php +++ b/src/Ushahidi/Modules/V3/Validator/Message/Create.php @@ -11,18 +11,21 @@ namespace Ushahidi\Modules\V3\Validator\Message; -use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Usecase\CreateMessageRepository; use Ushahidi\Core\Entity\UserRepository; -use Ushahidi\DataSource\Contracts\MessageDirection; +use Ushahidi\Core\Entity\MessageRepository; use Ushahidi\DataSource\Contracts\MessageStatus; +use Ushahidi\Modules\V3\Validator\LegacyValidator; +use Ushahidi\DataSource\Contracts\MessageDirection; class Create extends LegacyValidator { protected $repo; + + protected $user_repo; + protected $default_error_source = 'message'; - public function __construct(CreateMessageRepository $repo, UserRepository $user_repo) + public function __construct(MessageRepository $repo, UserRepository $user_repo) { $this->repo = $repo; $this->user_repo = $user_repo; diff --git a/src/Ushahidi/Modules/V3/Validator/Message/Receive.php b/src/Ushahidi/Modules/V3/Validator/Message/Receive.php index 721beb98b2..028f846348 100644 --- a/src/Ushahidi/Modules/V3/Validator/Message/Receive.php +++ b/src/Ushahidi/Modules/V3/Validator/Message/Receive.php @@ -14,14 +14,14 @@ use Ushahidi\Modules\V3\Validator\LegacyValidator; use Ushahidi\DataSource\Contracts\MessageStatus; use Ushahidi\DataSource\Contracts\MessageDirection; -use Ushahidi\Contracts\Repository\Usecase\CreateMessageRepository; +use Ushahidi\Core\Entity\MessageRepository; class Receive extends LegacyValidator { protected $repo; protected $default_error_source = 'message'; - public function __construct(CreateMessageRepository $repo) + public function __construct(MessageRepository $repo) { $this->repo = $repo; } diff --git a/src/Ushahidi/Modules/V3/Validator/Message/Update.php b/src/Ushahidi/Modules/V3/Validator/Message/Update.php index d559a59103..d63f45028b 100644 --- a/src/Ushahidi/Modules/V3/Validator/Message/Update.php +++ b/src/Ushahidi/Modules/V3/Validator/Message/Update.php @@ -12,14 +12,14 @@ namespace Ushahidi\Modules\V3\Validator\Message; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Usecase\UpdateMessageRepository; +use Ushahidi\Core\Entity\MessageRepository; class Update extends LegacyValidator { protected $repo; protected $default_error_source = 'message'; - public function __construct(UpdateMessageRepository $repo) + public function __construct(MessageRepository $repo) { $this->repo = $repo; } diff --git a/src/Ushahidi/Modules/V3/Validator/Post/Create.php b/src/Ushahidi/Modules/V3/Validator/Post/Create.php index 419ff49a2d..3886782cb6 100644 --- a/src/Ushahidi/Modules/V3/Validator/Post/Create.php +++ b/src/Ushahidi/Modules/V3/Validator/Post/Create.php @@ -13,20 +13,21 @@ use Kohana\Validation\Validation; use Ushahidi\Core\Facade\Features; -use Ushahidi\Contracts\Permission; -use Ushahidi\Core\Concerns\AdminAccess; -use Ushahidi\Core\Concerns\UserContext; -use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\{ + AdminAccess, + UserContext, + Acl as AccessControlList +}; +use Ushahidi\Core\Entity\Permission; +use Ushahidi\Core\Entity\TagRepository; use Ushahidi\Core\Entity\FormRepository; +use Ushahidi\Core\Entity\PostRepository; +use Ushahidi\Core\Entity\PostLockRepository; use Ushahidi\Core\Entity\RoleRepository; use Ushahidi\Core\Entity\UserRepository; -use Ushahidi\Core\Entity\PostLockRepository; use Ushahidi\Core\Entity\FormStageRepository; -use Ushahidi\Contracts\Repository\Usecase\UpdatePostRepository; use Ushahidi\Core\Entity\FormAttributeRepository; -use Ushahidi\Contracts\Repository\Usecase\UpdatePostTagRepository; -use Ushahidi\Core\Ohanzee\Repositories\Post\ValueFactory as PostValueFactory; +use Ushahidi\Modules\V3\Validator\LegacyValidator; class Create extends LegacyValidator { @@ -39,26 +40,26 @@ class Create extends LegacyValidator use AdminAccess; protected $repo; + protected $form_repo; + protected $role_repo; protected $attribute_repo; protected $stage_repo; protected $tag_repo; - protected $post_lock_repo; protected $user_repo; - protected $post_value_factory; + protected $post_lock_repo; protected $post_value_validator_factory; protected $default_error_source = 'post'; public function __construct( - UpdatePostRepository $repo, + PostRepository $repo, FormAttributeRepository $attribute_repo, FormStageRepository $stage_repo, - UpdatePostTagRepository $tag_repo, + TagRepository $tag_repo, UserRepository $user_repo, FormRepository $form_repo, RoleRepository $role_repo, PostLockRepository $post_lock_repo, - PostValueFactory $post_value_factory, ValueFactory $post_value_validator_factory ) { @@ -70,7 +71,6 @@ public function __construct( $this->form_repo = $form_repo; $this->role_repo = $role_repo; $this->post_lock_repo = $post_lock_repo; - $this->post_value_factory = $post_value_factory; $this->post_value_validator_factory = $post_value_validator_factory; } @@ -103,9 +103,14 @@ protected function getRules() // @todo check locale is valid // @todo if the translation exists and we're performing an Update, // passing locale should not throw an error - [[$this->repo, 'doesTranslationExist'], [ - ':value', $parent_id, $type - ]], + [ + [$this->repo, 'doesTranslationExist'], + [ + ':value', + $parent_id, + $type + ] + ], ], 'form_id' => [ ['numeric'], @@ -133,20 +138,32 @@ protected function getRules() ['max_length', [':value', 150]], ], 'status' => [ - ['in_array', [':value', [ - 'published', - 'draft', - 'archived' - ]]], + [ + 'in_array', + [ + ':value', + [ + 'published', + 'draft', + 'archived' + ] + ] + ], [[$this, 'checkApprovalRequired'], [':validation', ':value', ':fulldata']], [[$this, 'checkPublishedLimit'], [':validation', ':value']] ], 'type' => [ - ['in_array', [':value', [ - 'report', - 'revision', - 'translation' - ]]], + [ + 'in_array', + [ + ':value', + [ + 'report', + 'revision', + 'translation' + ] + ] + ], ], 'published_to' => [ [[$this->role_repo, 'exists'], [':value']], @@ -195,7 +212,7 @@ public function checkApprovalRequired(Validation $validation, $status, $fullData // Are we trying to change publish a post that requires approval? if ($requireApproval && $status !== 'draft') { $validation->error('status', 'postNeedsApprovalBeforePublishing'); - // Are we trying to unpublish or archive an auto-approved post? + // Are we trying to unpublish or archive an auto-approved post? } elseif (!$requireApproval && $status !== 'published') { $validation->error('status', 'postCanOnlyBeUnpublishedByAdmin'); } @@ -212,7 +229,7 @@ public function checkTags(Validation $validation, $tags) $tag = $tag['id']; } - if (! $this->tag_repo->doesTagExist($tag)) { + if (!$this->tag_repo->doesTagExist($tag)) { $validation->error('tags', 'tagDoesNotExist', [$tag]); } } @@ -226,12 +243,12 @@ public function checkValues(Validation $validation, $attributes, $fullData) return; } - $post_id = ! empty($fullData['id']) ? $fullData['id'] : 0; + $post_id = !empty($fullData['id']) ? $fullData['id'] : 0; foreach ($attributes as $key => $values) { // Check attribute exists $attribute = $this->attribute_repo->getByKey($key, $fullData['form_id'], true); - if (! $attribute->id) { + if (!$attribute->id) { $validation->error('values', 'attributeDoesNotExist', [$key]); return; } @@ -262,8 +279,8 @@ public function checkValues(Validation $validation, $attributes, $fullData) * Check completed stages actually exist in form * * @param Validation $validation - * @param Array $attributes - * @param Array $fullData + * @param array $attributes + * @param array $fullData */ public function checkStageInForm(Validation $validation, $completed_stages, $fullData) { @@ -273,7 +290,7 @@ public function checkStageInForm(Validation $validation, $completed_stages, $ful foreach ($completed_stages as $stage_id) { // Check stage exists in form - if (! $this->stage_repo->existsInForm($stage_id, $fullData['form_id'])) { + if (!$this->stage_repo->existsInForm($stage_id, $fullData['form_id'])) { $validation->error('completed_stages', 'stageDoesNotExist', [$stage_id]); return; } @@ -284,8 +301,8 @@ public function checkStageInForm(Validation $validation, $completed_stages, $ful * Check required stages are completed before publishing * * @param Validation $validation - * @param Array $attributes - * @param Array $fullData + * @param array $attributes + * @param array $fullData */ public function checkRequiredStages(Validation $validation, $fullData) { @@ -297,7 +314,7 @@ public function checkRequiredStages(Validation $validation, $fullData) $required_stages = $this->stage_repo->getRequired($fullData['form_id']); foreach ($required_stages as $stage) { // Check the required stages have been completed - if (! in_array($stage->id, $completed_stages)) { + if (!in_array($stage->id, $completed_stages)) { // If its not completed, add a validation error $validation->error('completed_stages', 'stageRequired', [$stage->label]); } @@ -309,8 +326,8 @@ public function checkRequiredStages(Validation $validation, $fullData) * Check required attributes are completed before completing stages * * @param Validation $validation - * @param Array $attributes - * @param Array $fullData + * @param array $attributes + * @param array $fullData */ public function checkRequiredPostAttributes(Validation $validation, $attributes, $fullData) { @@ -335,8 +352,8 @@ public function checkRequiredPostAttributes(Validation $validation, $attributes, * Check required attributes are completed before completing stages * * @param Validation $validation - * @param Array $attributes - * @param Array $fullData + * @param array $attributes + * @param array $fullData */ public function checkRequiredTaskAttributes(Validation $validation, $attributes, $fullData) { @@ -369,7 +386,7 @@ public function checkRequiredTaskAttributes(Validation $validation, $attributes, */ public function onlyAuthorOrUserSet($user_id, $fullData) { - return (empty($user_id) or (empty($fullData['author_email']) and empty($fullData['author_realname'])) ); + return (empty($user_id) or (empty($fullData['author_email']) and empty($fullData['author_realname']))); } public function validDate($str) diff --git a/src/Ushahidi/Modules/V3/Validator/Tag/Update.php b/src/Ushahidi/Modules/V3/Validator/Tag/Update.php index d103625c80..8a47c72cee 100644 --- a/src/Ushahidi/Modules/V3/Validator/Tag/Update.php +++ b/src/Ushahidi/Modules/V3/Validator/Tag/Update.php @@ -11,19 +11,19 @@ namespace Ushahidi\Modules\V3\Validator\Tag; -use Ushahidi\Modules\V3\Validator\LegacyValidator; use Ushahidi\Core\Entity\RoleRepository; -use Ushahidi\Contracts\Repository\Usecase\UpdateTagRepository; +use Ushahidi\Core\Entity\TagRepository; +use Ushahidi\Modules\V3\Validator\LegacyValidator; class Update extends LegacyValidator { - protected $repo; - protected $role_repo; + protected $repo; + protected $default_error_source = 'tag'; - public function __construct(UpdateTagRepository $repo, RoleRepository $role_repo) + public function __construct(TagRepository $repo, RoleRepository $role_repo) { $this->repo = $repo; $this->role_repo = $role_repo; diff --git a/src/Ushahidi/Modules/V3/Validator/User/Register.php b/src/Ushahidi/Modules/V3/Validator/User/Register.php index 6b1d5f9708..887dbe7592 100644 --- a/src/Ushahidi/Modules/V3/Validator/User/Register.php +++ b/src/Ushahidi/Modules/V3/Validator/User/Register.php @@ -13,15 +13,15 @@ namespace Ushahidi\Modules\V3\Validator\User; +use Ushahidi\Core\Entity\UserRepository; use Ushahidi\Modules\V3\Validator\LegacyValidator; -use Ushahidi\Contracts\Repository\Usecase\UserRegisterRepository; class Register extends LegacyValidator { protected $default_error_source = 'user'; private $repo; - public function __construct(UserRegisterRepository $repo) + public function __construct(UserRepository $repo) { $this->repo = $repo; } diff --git a/src/Ushahidi/Modules/V5/Http/Resources/PostResource.php b/src/Ushahidi/Modules/V5/Http/Resources/PostResource.php index e0aebb5ffb..1971595e80 100644 --- a/src/Ushahidi/Modules/V5/Http/Resources/PostResource.php +++ b/src/Ushahidi/Modules/V5/Http/Resources/PostResource.php @@ -3,7 +3,7 @@ namespace Ushahidi\Modules\V5\Http\Resources; use Illuminate\Support\Collection; -use Ushahidi\Core\Entity\Post; +use Ushahidi\Core\Ohanzee\Entities\Post; use Ushahidi\Modules\V5\Models\Post\Post as v5Post; class PostResource extends BaseResource diff --git a/src/Ushahidi/Modules/V5/Models/Survey.php b/src/Ushahidi/Modules/V5/Models/Survey.php index 0189929a81..7f8606ee97 100644 --- a/src/Ushahidi/Modules/V5/Models/Survey.php +++ b/src/Ushahidi/Modules/V5/Models/Survey.php @@ -3,7 +3,7 @@ namespace Ushahidi\Modules\V5\Models; use Illuminate\Validation\Rule; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Entity\Permission; use Illuminate\Support\Facades\Input; use Ushahidi\Modules\V3\Validator\LegacyValidator; use Ushahidi\Core\Tool\Permissions\InteractsWithFormPermissions; diff --git a/src/Ushahidi/Modules/V5/Policies/CategoryPolicy.php b/src/Ushahidi/Modules/V5/Policies/CategoryPolicy.php index 8920b89785..06b550092e 100644 --- a/src/Ushahidi/Modules/V5/Policies/CategoryPolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/CategoryPolicy.php @@ -3,9 +3,9 @@ namespace Ushahidi\Modules\V5\Policies; use App\Auth\GenericUser; -use Ushahidi\Core\Entity; +use Ushahidi\Core\Ohanzee\Entities\Tag; use App\Auth\GenericUser as User; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Modules\V5\Models\Category; use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\AdminAccess; @@ -43,7 +43,7 @@ class CategoryPolicy */ public function index() { - $empty_tag = new Entity\Tag(); + $empty_tag = new Tag(); return $this->isAllowed($empty_tag, 'search'); } @@ -55,7 +55,7 @@ public function index() */ public function show(User $user, Category $category) { - $tag = new Entity\Tag($category->toArray()); + $tag = new Tag($category->toArray()); return $this->isAllowed($tag, 'read'); } @@ -67,7 +67,7 @@ public function show(User $user, Category $category) */ public function delete(User $user, Category $category) { - $tag = new Entity\Tag($category->toArray()); + $tag = new Tag($category->toArray()); return $this->isAllowed($tag, 'delete'); } /** @@ -77,7 +77,7 @@ public function delete(User $user, Category $category) public function update(User $user, Category $category) { // we convert to a form entity to be able to continue using the old authorizers and classes. - $tag = new Entity\Tag($category->toArray()); + $tag = new Tag($category->toArray()); return $this->isAllowed($tag, 'update'); } @@ -89,7 +89,7 @@ public function update(User $user, Category $category) public function store() { // we convert to a form entity to be able to continue using the old authorizers and classes. - $tag = new Entity\Tag(); + $tag = new Tag(); return $this->isAllowed($tag, 'create'); } /** diff --git a/src/Ushahidi/Modules/V5/Policies/CountryCodePolicy.php b/src/Ushahidi/Modules/V5/Policies/CountryCodePolicy.php index 39cd192116..8322e2e7f4 100644 --- a/src/Ushahidi/Modules/V5/Policies/CountryCodePolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/CountryCodePolicy.php @@ -3,7 +3,7 @@ namespace Ushahidi\Modules\V5\Policies; use App\Auth\GenericUser as User; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Modules\V5\Repository\Role\RoleRepository; class CountryCodePolicy diff --git a/src/Ushahidi/Modules/V5/Policies/PostPolicy.php b/src/Ushahidi/Modules/V5/Policies/PostPolicy.php index d0539bbcfb..b449526bf1 100644 --- a/src/Ushahidi/Modules/V5/Policies/PostPolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/PostPolicy.php @@ -3,8 +3,8 @@ namespace Ushahidi\Modules\V5\Policies; use Ushahidi\Modules\V5\Models\Post\Post; -use Ushahidi\Core\Entity; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Ohanzee\Entities; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\OwnerAccess; @@ -52,7 +52,7 @@ class PostPolicy */ public function index() { - $empty_form = new Entity\Form(); + $empty_form = new Entities\Form(); return $this->isAllowed($empty_form, 'search'); } @@ -64,7 +64,7 @@ public function index() */ public function show(User $user, Survey $survey) { - $form = new Entity\Form($survey->toArray()); + $form = new Entities\Form($survey->toArray()); return $this->isAllowed($form, 'read'); } @@ -76,7 +76,7 @@ public function show(User $user, Survey $survey) */ public function delete(User $user, Post $post) { - $post = new Entity\Post($post->toArray()); + $post = new Entities\Post($post->toArray()); return $this->isAllowed($post, 'delete'); } /** @@ -85,7 +85,7 @@ public function delete(User $user, Post $post) */ public function update(User $user, Post $post) { - $post = new Entity\Post($post->toArray()); + $post = new Entities\Post($post->toArray()); // we convert to a form entity to be able to continue using the old authorizers and classes. return $this->isAllowed($post, 'update'); } @@ -96,7 +96,7 @@ public function update(User $user, Post $post) public function patch(User $user, Post $post) { dd('hell'); - $post = new Entity\Post($post->toArray()); + $post = new Entities\Post($post->toArray()); // we convert to a form entity to be able to continue using the old authorizers and classes. return $this->isAllowed($post, 'update'); } @@ -106,7 +106,7 @@ public function patch(User $user, Post $post) */ public function changeStatus(User $user, Post $post) { - $post = new Entity\Post($post->toArray()); + $post = new Entities\Post($post->toArray()); // we convert to a form entity to be able to continue using the old authorizers and classes. return $this->isAllowed($post, 'update'); } @@ -118,7 +118,7 @@ public function changeStatus(User $user, Post $post) public function store(User $user, $form_id, $user_id) { // we convert to a form entity to be able to continue using the old authorizers and classes. - $post = new Entity\Post(['form_id' => $form_id, 'user_id' => $user_id]); + $post = new Entities\Post(['form_id' => $form_id, 'user_id' => $user_id]); return $this->isAllowed($post, 'create'); } /** @@ -233,7 +233,7 @@ public function isAllowed($entity, $privilege) * @param Entity $entity * @return Boolean */ - protected function isFormDisabled(Entity\Post $entity) + protected function isFormDisabled(Entities\Post $entity) { return (bool) $entity->disabled; } @@ -243,7 +243,7 @@ protected function getParent(EntityContract $entity) // If the post has a parent_id, we attempt to load it from the `PostRepository` if ($entity->parent_id) { $parent = Post::find($entity->parent_id); - return new Entity\Post($parent->toArray()); + return new Entities\Post($parent->toArray()); } return false; diff --git a/src/Ushahidi/Modules/V5/Policies/SurveyPolicy.php b/src/Ushahidi/Modules/V5/Policies/SurveyPolicy.php index 624cb569af..6de2c3878e 100644 --- a/src/Ushahidi/Modules/V5/Policies/SurveyPolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/SurveyPolicy.php @@ -3,9 +3,9 @@ namespace Ushahidi\Modules\V5\Policies; use App\Auth\GenericUser as User; -use Ushahidi\Core\Entity; +use Ushahidi\Core\Ohanzee\Entities; use Ushahidi\Modules\V5\Models\Survey; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\PrivAccess; @@ -43,7 +43,7 @@ class SurveyPolicy */ public function index() { - $empty_form = new Entity\Form(); + $empty_form = new Entities\Form(); return $this->isAllowed($empty_form, 'search'); } @@ -55,7 +55,7 @@ public function index() */ public function show(User $user, Survey $survey) { - $form = new Entity\Form($survey->toArray()); + $form = new Entities\Form($survey->toArray()); return $this->isAllowed($form, 'read'); } @@ -67,7 +67,7 @@ public function show(User $user, Survey $survey) */ public function delete(User $user, Survey $survey) { - $form = new Entity\Form($survey->toArray()); + $form = new Entities\Form($survey->toArray()); return $this->isAllowed($form, 'delete'); } /** @@ -77,7 +77,7 @@ public function delete(User $user, Survey $survey) public function update(User $user, Survey $survey) { // we convert to a form entity to be able to continue using the old authorizers and classes. - $form = new Entity\Form($survey->toArray()); + $form = new Entities\Form($survey->toArray()); return $this->isAllowed($form, 'update'); } @@ -89,7 +89,7 @@ public function update(User $user, Survey $survey) public function store() { // we convert to a form entity to be able to continue using the old authorizers and classes. - $form = new Entity\Form(); + $form = new Entities\Form(); return $this->isAllowed($form, 'create'); } /** @@ -144,7 +144,7 @@ public function isAllowed($entity, $privilege) * @param Entity $entity * @return Boolean */ - protected function isFormDisabled(Entity\Form $entity) + protected function isFormDisabled(Entities\Form $entity) { return (bool) $entity->disabled; } diff --git a/src/Ushahidi/Modules/V5/Policies/UserPolicy.php b/src/Ushahidi/Modules/V5/Policies/UserPolicy.php index 0b0b5f4462..fce4b46ba4 100644 --- a/src/Ushahidi/Modules/V5/Policies/UserPolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/UserPolicy.php @@ -4,7 +4,7 @@ use Ushahidi\Modules\V5\Models\User as ModelUser; use App\Auth\GenericUser as User; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\UserContext; @@ -31,7 +31,7 @@ class UserPolicy use AccessControlList; protected $user; - + /** * @param User $user diff --git a/src/Ushahidi/Modules/V5/Repository/UserRepository.php b/src/Ushahidi/Modules/V5/Repository/UserRepository.php deleted file mode 100644 index d5991ab89f..0000000000 --- a/src/Ushahidi/Modules/V5/Repository/UserRepository.php +++ /dev/null @@ -1,46 +0,0 @@ -setPostTestData(); // Construct StaefulData for Current Post - $mock = new MockPostData($this->test_post_data_current); + $mock = new MockPost($this->test_post_data_current); // Set StaefulData from updated Post $entity = $mock->setState($this->test_post_data_new); diff --git a/tests/Unit/Core/Usecase/ExportJob/PostCountTest.php b/tests/Unit/Core/Usecase/ExportJob/PostCountTest.php index 9dc45b39da..e7183b5660 100644 --- a/tests/Unit/Core/Usecase/ExportJob/PostCountTest.php +++ b/tests/Unit/Core/Usecase/ExportJob/PostCountTest.php @@ -5,9 +5,9 @@ use Faker; use Mockery as M; use Ushahidi\Tests\TestCase; -use Ushahidi\Core\Entity\ExportJobRepository; use Ushahidi\Contracts\Session; -use Ushahidi\Core\Entity\ExportJob; +use Ushahidi\Core\Entity\ExportJobRepository; +use Ushahidi\Core\Ohanzee\Entities\ExportJob; use Ushahidi\Core\Usecase\Export\Job\PostCount; /** diff --git a/tests/Unit/Core/Usecase/Post/ExportTest.php b/tests/Unit/Core/Usecase/Post/ExportTest.php index eb63667e88..f5528bb34f 100644 --- a/tests/Unit/Core/Usecase/Post/ExportTest.php +++ b/tests/Unit/Core/Usecase/Post/ExportTest.php @@ -11,15 +11,15 @@ use Faker; use Mockery as M; use Ushahidi\Tests\TestCase; -use Ushahidi\Core\Entity\ExportJob; +use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Entity\HXL\HXLLicense; +use Ushahidi\Core\Ohanzee\Entities\Post; +use Ushahidi\Core\Ohanzee\Entities\User; use Ushahidi\Core\Entity\HXL\HXLMetadata; -use Ushahidi\Core\Entity\Post; -use Ushahidi\Core\Entity\User; -use Ushahidi\Core\Tool\SearchData; +use Ushahidi\Core\Ohanzee\Entities\ExportJob; use Ushahidi\Core\Ohanzee\Repositories\ExportJobRepository; -use Ushahidi\Core\Ohanzee\Repositories\Form\AttributeRepository; use Ushahidi\Core\Ohanzee\Repositories\Post\ExportRepository; +use Ushahidi\Core\Ohanzee\Repositories\Form\AttributeRepository; class ExportTest extends TestCase { diff --git a/tests/Unit/Core/Usecase/ReceiveMessageTest.php b/tests/Unit/Core/Usecase/ReceiveMessageTest.php index de3562a8aa..32cadf9ba5 100644 --- a/tests/Unit/Core/Usecase/ReceiveMessageTest.php +++ b/tests/Unit/Core/Usecase/ReceiveMessageTest.php @@ -8,19 +8,19 @@ use Mockery as M; use Ushahidi\Tests\TestCase; +use Ushahidi\Core\Entity\PostRepository; +use Ushahidi\Core\Ohanzee\Entities\Post; use Ushahidi\Core\Entity\ConfigRepository; +use Ushahidi\Core\Ohanzee\Entities\Config; use Ushahidi\Core\Entity\ContactRepository; -use Ushahidi\Core\Entity\FormAttributeRepository; use Ushahidi\Core\Entity\MessageRepository; -use Ushahidi\Core\Entity\PostRepository; +use Ushahidi\Core\Ohanzee\Entities\Contact; +use Ushahidi\Core\Ohanzee\Entities\Message; +use Ushahidi\Core\Entity\FormAttributeRepository; +use Ushahidi\Modules\V3\EventSubscriber as Subscriber; use Ushahidi\Core\Entity\TargetedSurveyStateRepository; -use Ushahidi\Core\Entity\Config; -use Ushahidi\Core\Entity\Contact; -use Ushahidi\Core\Entity\Message; -use Ushahidi\Core\Entity\Post; use Ushahidi\Modules\V3\Listener\CreatePostFromMessage; use Ushahidi\Modules\V3\Listener\HandleTargetedSurveyResponse; -use Ushahidi\Modules\V3\EventSubscriber as Subscriber; /** * @backupGlobals disabled diff --git a/tests/Unit/DataSource/Console/IncomingCommandTest.php b/tests/Unit/DataSource/Console/IncomingCommandTest.php index 360b62a202..408b3d5b48 100644 --- a/tests/Unit/DataSource/Console/IncomingCommandTest.php +++ b/tests/Unit/DataSource/Console/IncomingCommandTest.php @@ -10,15 +10,15 @@ namespace Ushahidi\Tests\Unit\DataSource\Console; -use Illuminate\Console\Application as Artisan; use Mockery as M; -use phpmock\mockery\PHPMockery; use Ushahidi\Tests\TestCase; +use phpmock\mockery\PHPMockery; use Ushahidi\Core\Entity\ConfigRepository; -use Ushahidi\Core\Entity\Config; -use Ushahidi\DataSource\Console\IncomingCommand; +use Ushahidi\Core\Ohanzee\Entities\Config; use Ushahidi\DataSource\DataSourceManager; use Ushahidi\DataSource\DataSourceStorage; +use Illuminate\Console\Application as Artisan; +use Ushahidi\DataSource\Console\IncomingCommand; /** * @backupGlobals disabled diff --git a/tests/Unit/DataSource/Console/ListCommandTest.php b/tests/Unit/DataSource/Console/ListCommandTest.php index 26c9dfdd3d..12f7070e80 100644 --- a/tests/Unit/DataSource/Console/ListCommandTest.php +++ b/tests/Unit/DataSource/Console/ListCommandTest.php @@ -10,13 +10,13 @@ namespace Ushahidi\Tests\Unit\DataSource\Console; -use Illuminate\Console\Application as Artisan; use Mockery as M; use Ushahidi\Tests\TestCase; use Ushahidi\Core\Entity\ConfigRepository; -use Ushahidi\Core\Entity\Config; -use Ushahidi\DataSource\Console\ListCommand; +use Ushahidi\Core\Ohanzee\Entities\Config; use Ushahidi\DataSource\DataSourceManager; +use Ushahidi\DataSource\Console\ListCommand; +use Illuminate\Console\Application as Artisan; /** * @backupGlobals disabled diff --git a/tests/Unit/DataSource/Console/OutgoingCommandTest.php b/tests/Unit/DataSource/Console/OutgoingCommandTest.php index acd5f1f24a..0bc0241c27 100644 --- a/tests/Unit/DataSource/Console/OutgoingCommandTest.php +++ b/tests/Unit/DataSource/Console/OutgoingCommandTest.php @@ -10,14 +10,14 @@ namespace Ushahidi\Tests\Unit\DataSource\Console; -use Illuminate\Console\Application as Artisan; use Mockery as M; use Ushahidi\Tests\TestCase; use Ushahidi\Core\Entity\ConfigRepository; -use Ushahidi\Core\Entity\Config; -use Ushahidi\DataSource\Console\OutgoingCommand; +use Ushahidi\Core\Ohanzee\Entities\Config; use Ushahidi\DataSource\DataSourceManager; use Ushahidi\DataSource\DataSourceStorage; +use Illuminate\Console\Application as Artisan; +use Ushahidi\DataSource\Console\OutgoingCommand; /** * @backupGlobals disabled diff --git a/tests/Unit/DataSource/DataSourceManagerTest.php b/tests/Unit/DataSource/DataSourceManagerTest.php index b95f6eebdb..59922ba544 100644 --- a/tests/Unit/DataSource/DataSourceManagerTest.php +++ b/tests/Unit/DataSource/DataSourceManagerTest.php @@ -12,13 +12,13 @@ use Mockery as M; use Ushahidi\Tests\TestCase; -use Ushahidi\DataSource\Contracts\IncomingDataSource; -use Ushahidi\Core\Entity\ConfigRepository; -use Ushahidi\Core\Entity\Config; -use Ushahidi\DataSource\DataSourceManager; use Ushahidi\DataSource\Email\Email; use Ushahidi\DataSource\Nexmo\Nexmo; use Ushahidi\DataSource\Twitter\Twitter; +use Ushahidi\Core\Entity\ConfigRepository; +use Ushahidi\Core\Ohanzee\Entities\Config; +use Ushahidi\DataSource\DataSourceManager; +use Ushahidi\DataSource\Contracts\IncomingDataSource; /** * @backupGlobals disabled diff --git a/tests/Unit/DataSource/DataSourceStorageTest.php b/tests/Unit/DataSource/DataSourceStorageTest.php index 074aa503dd..a2e072f182 100644 --- a/tests/Unit/DataSource/DataSourceStorageTest.php +++ b/tests/Unit/DataSource/DataSourceStorageTest.php @@ -10,16 +10,16 @@ namespace Ushahidi\Tests\Unit\DataSource; -use Illuminate\Support\Facades\Log; use Mockery as M; -use Ushahidi\Core\Entity\ContactRepository; use Ushahidi\Tests\TestCase; -use Ushahidi\Core\Entity\MessageRepository; use Ushahidi\Contracts\Usecase; -use Ushahidi\Core\Entity\Message; +use Illuminate\Support\Facades\Log; +use Ushahidi\DataSource\DataSourceStorage; +use Ushahidi\Core\Entity\ContactRepository; +use Ushahidi\Core\Entity\MessageRepository; +use Ushahidi\Core\Ohanzee\Entities\Message; use Ushahidi\Core\Exception\NotFoundException; use Ushahidi\Core\Usecase\Message\ReceiveMessage; -use Ushahidi\DataSource\DataSourceStorage; /** * @backupGlobals disabled diff --git a/tests/Unit/DataSource/TwitterDataSourceTest.php b/tests/Unit/DataSource/TwitterDataSourceTest.php index 21db2dda8d..24285a95a7 100644 --- a/tests/Unit/DataSource/TwitterDataSourceTest.php +++ b/tests/Unit/DataSource/TwitterDataSourceTest.php @@ -12,8 +12,8 @@ use Mockery as M; use Ushahidi\Tests\TestCase; -use Ushahidi\Core\Entity\Config; use Ushahidi\DataSource\Twitter\Twitter; +use Ushahidi\Core\Ohanzee\Entities\Config; /** * @backupGlobals disabled @@ -162,6 +162,14 @@ function ($a, $b, $c, $d) use ($mockTwitterOAuth) { 'search_terms' => '#ushahidi,#test', ]); + // $config = M::mock(Config::class); + + // $config->shouldReceive('asArray')->once()->andReturn([ + // 'id' => 'twitter', + // 'since_id' => 1234, + // 'search_terms' => '#ushahidi,#test', + // ]); + $mockRepo->shouldReceive('get')->atLeast()->once() ->with('twitter') ->andReturn($config); diff --git a/tests/Unit/Modules/V2/ImporterTest.php b/tests/Unit/Modules/V2/ImporterTest.php index 2c396787a3..d55cb443f4 100644 --- a/tests/Unit/Modules/V2/ImporterTest.php +++ b/tests/Unit/Modules/V2/ImporterTest.php @@ -6,7 +6,6 @@ use Ushahidi\Modules\V2\Contracts\ImportMappingRepository; use Ushahidi\Modules\V2\Contracts\Mapper; use Ushahidi\Contracts\Repository\EntityCreateMany; -use Ushahidi\Core\Entity; use Illuminate\Support\Collection; use Ushahidi\Tests\TestCase; use Mockery as M; diff --git a/tests/Unit/Modules/V2/Mappers/FormFieldAttributeMapperTest.php b/tests/Unit/Modules/V2/Mappers/FormFieldAttributeMapperTest.php index 7351da7f8a..7746e8d4d2 100644 --- a/tests/Unit/Modules/V2/Mappers/FormFieldAttributeMapperTest.php +++ b/tests/Unit/Modules/V2/Mappers/FormFieldAttributeMapperTest.php @@ -2,17 +2,17 @@ namespace Ushahidi\Tests\Unit\Modules\V2\Mappers; -use Ushahidi\Modules\V2\Jobs\ImportForms; -use Ushahidi\Modules\V2\Mappers\FormFieldAttributeMapper; -use Ushahidi\Modules\V2\Contracts\ImportMappingRepository; -use Ushahidi\Modules\V2\Contracts\ImportDataTools; +use Faker; +use Mockery as M; +use Ushahidi\Tests\TestCase; use Ushahidi\Core\Entity\FormAttribute; -use Ushahidi\Core\Entity\FormStage; +use Ushahidi\Modules\V2\Jobs\ImportForms; use Ushahidi\Core\Entity\FormStageRepository; +use Ushahidi\Core\Ohanzee\Entities\FormStage; use Ushahidi\Tests\Unit\Modules\V2\ImportMock; -use Ushahidi\Tests\TestCase; -use Mockery as M; -use Faker; +use Ushahidi\Modules\V2\Contracts\ImportDataTools; +use Ushahidi\Modules\V2\Mappers\FormFieldAttributeMapper; +use Ushahidi\Modules\V2\Contracts\ImportMappingRepository; /** * @backupGlobals disabled diff --git a/tests/Unit/Modules/V2/Mappers/IncidentPostMapperTest.php b/tests/Unit/Modules/V2/Mappers/IncidentPostMapperTest.php index 840d441928..5f9018d228 100644 --- a/tests/Unit/Modules/V2/Mappers/IncidentPostMapperTest.php +++ b/tests/Unit/Modules/V2/Mappers/IncidentPostMapperTest.php @@ -2,16 +2,16 @@ namespace Ushahidi\Tests\Unit\Modules\V2\Mappers; -use Ushahidi\Modules\V2\Mappers\IncidentPostMapper; -use Ushahidi\Modules\V2\Contracts\ImportMappingRepository; -use Ushahidi\Modules\V2\Contracts\ImportDataTools; +use Faker; +use Mockery as M; +use Ushahidi\Tests\TestCase; use Ushahidi\Core\Entity\Post; -use Ushahidi\Core\Entity\FormAttribute; -use Ushahidi\Core\Entity\FormAttributeRepository; use Ushahidi\Tests\Unit\Modules\V2\ImportMock; -use Ushahidi\Tests\TestCase; -use Mockery as M; -use Faker; +use Ushahidi\Core\Entity\FormAttributeRepository; +use Ushahidi\Core\Ohanzee\Entities\FormAttribute; +use Ushahidi\Modules\V2\Contracts\ImportDataTools; +use Ushahidi\Modules\V2\Mappers\IncidentPostMapper; +use Ushahidi\Modules\V2\Contracts\ImportMappingRepository; /** * @backupGlobals disabled diff --git a/tests/Unit/Modules/V2/Mappers/MessageMapperTest.php b/tests/Unit/Modules/V2/Mappers/MessageMapperTest.php index d4b332fa85..666e40166b 100644 --- a/tests/Unit/Modules/V2/Mappers/MessageMapperTest.php +++ b/tests/Unit/Modules/V2/Mappers/MessageMapperTest.php @@ -2,17 +2,15 @@ namespace Ushahidi\Tests\Unit\Modules\V2\Mappers; -use Ushahidi\Modules\V2\Mappers\MessageMapper; -use Ushahidi\Modules\V2\Contracts\ImportMappingRepository; +use Mockery as M; +use Ushahidi\Tests\TestCase; use Ushahidi\Core\Entity\Message; -use Ushahidi\Core\Entity\Contact; use Ushahidi\Core\Entity\ContactRepository; +use Ushahidi\Core\Ohanzee\Entities\Contact; +use Ushahidi\Modules\V2\Mappers\MessageMapper; use Ushahidi\Tests\Unit\Modules\V2\ImportMock; -use Ushahidi\Tests\TestCase; -use Mockery as M; -use Faker; -use Illuminate\Support\Collection; +use Ushahidi\Modules\V2\Contracts\ImportMappingRepository; /** * @backupGlobals disabled diff --git a/tests/Unit/Modules/V3/Jobs/CombineExportedPostBatchesJobTest.php b/tests/Unit/Modules/V3/Jobs/CombineExportedPostBatchesJobTest.php index 1f04943829..6e6eb68686 100644 --- a/tests/Unit/Modules/V3/Jobs/CombineExportedPostBatchesJobTest.php +++ b/tests/Unit/Modules/V3/Jobs/CombineExportedPostBatchesJobTest.php @@ -4,12 +4,12 @@ use Mockery as M; use Ushahidi\Tests\TestCase; -use Ushahidi\Core\Entity\ExportJob; -use Ushahidi\Core\Entity\ExportBatch; use Illuminate\Support\Facades\Storage; -use Ushahidi\Modules\V3\Jobs\CombineExportedPostBatchesJob; use Ushahidi\Core\Entity\ExportJobRepository; +use Ushahidi\Core\Ohanzee\Entities\ExportJob; use Ushahidi\Core\Entity\ExportBatchRepository; +use Ushahidi\Core\Ohanzee\Entities\ExportBatch; +use Ushahidi\Modules\V3\Jobs\CombineExportedPostBatchesJob; /** * @group api diff --git a/tests/Unit/Modules/V3/Jobs/ExportPostsJobTest.php b/tests/Unit/Modules/V3/Jobs/ExportPostsJobTest.php index 12a2241dde..5544e802bf 100644 --- a/tests/Unit/Modules/V3/Jobs/ExportPostsJobTest.php +++ b/tests/Unit/Modules/V3/Jobs/ExportPostsJobTest.php @@ -3,7 +3,7 @@ use Mockery as M; use Ushahidi\Tests\TestCase; -use Ushahidi\Core\Entity\ExportJob; +use Ushahidi\Core\Ohanzee\Entities\ExportJob; use Ushahidi\Modules\V3\Jobs\ExportPostsJob; use Ushahidi\Modules\V3\Jobs\ExportPostsBatchJob; use Ushahidi\Core\Usecase\Export\Job\PostCount; diff --git a/tests/Unit/Modules/V3/Listener/CreatePostFromMessageTest.php b/tests/Unit/Modules/V3/Listener/CreatePostFromMessageTest.php index 15046a8803..3cc06e0e2b 100644 --- a/tests/Unit/Modules/V3/Listener/CreatePostFromMessageTest.php +++ b/tests/Unit/Modules/V3/Listener/CreatePostFromMessageTest.php @@ -4,11 +4,11 @@ use Mockery as M; use Ushahidi\Tests\TestCase; +use Ushahidi\Core\Ohanzee\Entities\Message; +use Ushahidi\Core\Ohanzee\Entities\Post; use Ushahidi\Core\Entity\MessageRepository; use Ushahidi\Core\Entity\PostRepository; use Ushahidi\Core\Entity\TargetedSurveyStateRepository; -use Ushahidi\Core\Entity\Message; -use Ushahidi\Core\Entity\Post; use Ushahidi\Modules\V3\Listener\CreatePostFromMessage; /** diff --git a/tests/Unit/Modules/V3/Listener/HandleTargetedSurveyResponseTest.php b/tests/Unit/Modules/V3/Listener/HandleTargetedSurveyResponseTest.php index 4955090590..1266a241fc 100644 --- a/tests/Unit/Modules/V3/Listener/HandleTargetedSurveyResponseTest.php +++ b/tests/Unit/Modules/V3/Listener/HandleTargetedSurveyResponseTest.php @@ -6,9 +6,9 @@ use Ushahidi\Core\Entity\FormAttributeRepository; use Ushahidi\Core\Entity\MessageRepository; use Ushahidi\Core\Entity\TargetedSurveyStateRepository; -use Ushahidi\Core\Entity\FormAttribute; -use Ushahidi\Core\Entity\Message; -use Ushahidi\Core\Entity\TargetedSurveyState; +use Ushahidi\Core\Ohanzee\Entities\FormAttribute; +use Ushahidi\Core\Ohanzee\Entities\Message; +use Ushahidi\Core\Ohanzee\Entities\TargetedSurveyState; use Ushahidi\Modules\V3\Listener\HandleTargetedSurveyResponse; /** @@ -273,6 +273,7 @@ function ($argument) use ($targetedSurveyState, $id) { $this->assertEquals('SURVEY FINISHED', $targetedSurveyState->survey_status); } + public function testNotInTargetedSurvey() { $id = 1; diff --git a/tests/Unit/Multisite/SiteTest.php b/tests/Unit/Multisite/SiteTest.php index a1e5f4da2d..cab93f0eb9 100644 --- a/tests/Unit/Multisite/SiteTest.php +++ b/tests/Unit/Multisite/SiteTest.php @@ -11,12 +11,12 @@ namespace Ushahidi\Tests\Unit\Multisite; use Mockery as M; -use Ushahidi\Tests\TestCase; use Illuminate\Http\Request; -// use Illuminate\Support\Facades\Mail; use Ushahidi\Multisite\Site; -use Ushahidi\Core\Entity\Config; +// use Illuminate\Support\Facades\Mail; +use Ushahidi\Tests\TestCase; use Ushahidi\Core\Entity\ConfigRepository; +use Ushahidi\Core\Ohanzee\Entities\Config; /** * @backupGlobals disabled From cd0cc1c0f6ed13b6743ad6f58b6f0715d552e262 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Thu, 30 Mar 2023 20:43:15 +0100 Subject: [PATCH 15/75] chore: remove EloquentRepository from Ohanzee Bounded Context --- .../Repositories/EloquentRepository.php | 255 ------------------ .../Repositories/ExportBatchRepository.php | 35 ++- .../Modules/V3/ContainerConfig/AppConfig.php | 6 +- 3 files changed, 34 insertions(+), 262 deletions(-) delete mode 100644 src/Ushahidi/Core/Ohanzee/Repositories/EloquentRepository.php diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/EloquentRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/EloquentRepository.php deleted file mode 100644 index 2f8642e559..0000000000 --- a/src/Ushahidi/Core/Ohanzee/Repositories/EloquentRepository.php +++ /dev/null @@ -1,255 +0,0 @@ - - * @package Ushahidi\Application - * @copyright 2014 Ushahidi - * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) - */ - -namespace Ushahidi\Core\Ohanzee\Repositories; - -use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Repository; -use Illuminate\Support\Collection; -use Illuminate\Database\ConnectionResolverInterface; - -abstract class EloquentRepository implements - Repository\CreateRepository, - Repository\ReadRepository, - Repository\UpdateRepository, - Repository\DeleteRepository, - Repository\ImportRepository -{ - protected $resolver; - - public function __construct(ConnectionResolverInterface $resolver) - { - $this->resolver = $resolver; - } - - /** - * Get current connection - * - * @return \Illuminate\Database\Connection; - */ - protected function connection() - { - return $this->resolver->connection(); - } - - /** - * Get the entity for this repository. - * - * @param array $data - * - * @return Entity - */ - abstract public function getEntity(array $data = null); - - /** - * Converts an array/collection of results into an collection - * of entities, indexed by the entity id. - * - * @param array|\Iterator $results - * - * @return \Illuminate\Support\Collection - */ - protected function getCollection($results) - { - return Collection::wrap($results)->mapWithKeys(function ($item, $key) { - $entity = $this->getEntity((array) $item); - return [$entity->getId() => $entity]; - }); - } - - /** - * Get the table name for this repository. - * - * @return string - */ - abstract protected function getTable(); - - // CreateRepository - // ReadRepository - // UpdateRepository - // DeleteRepository - public function get($id) - { - return $this->getEntity((array) $this->selectOne([ - $this->getTable() . '.id' => $id - ])); - } - - // CreateRepository - public function create(Entity $entity) - { - return $this->executeInsert($this->removeNullValues($entity->asArray())); - } - - // UpdateRepository - public function update(Entity $entity) - { - return $this->executeUpdate(['id' => $entity->id], $entity->getChanged()); - } - - // DeleteRepository - public function delete(Entity $entity) - { - return $this->executeDelete(['id' => $entity->id]); - } - - /** - * Remove all `null` values, to allow the database to set defaults. - * - * @param array $data - * - * @return array - */ - protected function removeNullValues(array $data) - { - return array_filter($data, function ($val) { - return isset($val); - }); - } - - /** - * Get a single record meeting some conditions. - * - * @param array $where hash of conditions - * - * @return array - */ - protected function selectOne(array $where = []) - { - return collect( - $this->selectQuery($where)->first() - )->toArray(); - } - - /** - * Get a count of records meeting some conditions. - * - * @param array $where hash of conditions - * - * @return integer - */ - protected function selectCount(array $where = []) - { - return $this->connection()->table($this->getTable()) - ->select($this->getTable() . '.*') // @todo do we need this? - ->where($where) // @todo do we need to handle whereIn here too? - ->count(); - } - - /** - * Return a SELECT query, optionally with preconditions. - * - * @param array $where optional hash of conditions - * - * @return \Illuminate\Database\Query\Builder - */ - protected function selectQuery(array $where = []) - { - $query = $this->connection()->table($this->getTable()) - ->select($this->getTable() . '.*') // @todo do we need this? - ->where($where) // @todo do we need to handle whereIn here too? - ; - - return $query; - } - - /** - * Create a single record from input and return the created ID. - * - * @param array $input hash of input - * - * @return integer - */ - protected function executeInsert(array $input) - { - if (!$input) { - throw new \RuntimeException(sprintf( - 'Cannot create an empty record in table "%s"', - $this->getTable() - )); - } - - return $this->connection() - ->table($this->getTable()) - ->insertGetId($input); - } - - /** - * Update records from input with conditions and return the number affected. - * - * @param array $where hash of conditions - * - * @param array $input hash of input - * - * @return integer - */ - protected function executeUpdate(array $where, array $input) - { - if (!$where) { - throw new \RuntimeException(sprintf( - 'Cannot update every record in table "%s"', - $this->getTable() - )); - } - - // Prevent overwriting created timestamp - // Probably not needed if `created` is set immutable in Entity - if (array_key_exists('created', $input)) { - unset($input['created']); - } - - if (!$input) { - return 0; // nothing would be updated, just ignore - } - - return $this->connection() - ->table($this->getTable()) - ->where($where) - ->update($input); - } - - /** - * Delete records with conditions and return the number affected. - * - * @param array $where hash of conditions - * - * @return integer - */ - protected function executeDelete(array $where) - { - if (!$where) { - throw new \RuntimeException(sprintf( - 'Cannot delete every record in table "%s"', - $this->getTable() - )); - } - - return $this->connection() - ->table($this->getTable()) - ->where($where) - ->delete(); - } - - /** - * Check if an entity with the given id exists - * - * @param int $id - * - * @return bool - */ - public function exists($id) - { - return $this->connection()->table($this->getTable()) - ->select($this->getTable() . '.*') // @todo do we need this? - // ->where($where) // @todo do we need to handle whereIn here too? - ->exists(); - } -} diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/ExportBatchRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/ExportBatchRepository.php index 0463d0d5e4..ef6274ad75 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/ExportBatchRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/ExportBatchRepository.php @@ -11,10 +11,11 @@ namespace Ushahidi\Core\Ohanzee\Repositories; +use Illuminate\Support\Collection; use Ushahidi\Core\Ohanzee\Entities\ExportBatch; use Ushahidi\Core\Entity\ExportBatchRepository as ExportBatchRepositoryContract; -class ExportBatchRepository extends EloquentRepository implements ExportBatchRepositoryContract +class ExportBatchRepository extends OhanzeeRepository implements ExportBatchRepositoryContract { /** * Get the entity for this repository. @@ -39,7 +40,7 @@ protected function getTable() * Get all batches for job id * @param int $jobId * @param string $status - * @return \Illuminate\Support\Collection + * @return array|\Illuminate\Support\Collection */ public function getByJobId($jobId, $status = ExportBatch::STATUS_COMPLETED) { @@ -48,8 +49,34 @@ public function getByJobId($jobId, $status = ExportBatch::STATUS_COMPLETED) 'export_job_id' => $jobId, 'status' => $status ]) - ->get(); + ->execute($this->db()); + + return $this->getCollection($results->as_array()); + } + + /** + * Get fields that can be used for searches. + * @return array + */ + public function getSearchFields() + { + return []; + } - return $this->getCollection($results); + /** + * Converts an array/collection of results into an collection + * of entities, indexed by the entity id. + * + * + * @param array|\iterable $results + * + * @return \Illuminate\Support\Collection + */ + protected function getCollection($results) + { + return Collection::wrap($results)->mapWithKeys(function ($item, $key) { + $entity = $this->getEntity((array) $item); + return [$entity->getId() => $entity]; + }); } } diff --git a/src/Ushahidi/Modules/V3/ContainerConfig/AppConfig.php b/src/Ushahidi/Modules/V3/ContainerConfig/AppConfig.php index 1f28456673..020d68d506 100644 --- a/src/Ushahidi/Modules/V3/ContainerConfig/AppConfig.php +++ b/src/Ushahidi/Modules/V3/ContainerConfig/AppConfig.php @@ -317,9 +317,9 @@ public function define(Container $di): void // Repository parameters // Abstract repository parameters - $di->params[Core\Ohanzee\Repositories\EloquentRepository::class] = [ - 'resolver' => $di->lazyGet('db.eloquent.resolver'), - ]; + // $di->params[Core\Ohanzee\Repositories\EloquentRepository::class] = [ + // 'resolver' => $di->lazyGet('db.eloquent.resolver'), + // ]; $di->params[Core\Ohanzee\Repositories\OhanzeeRepository::class] = [ 'resolver' => $di->lazyGet('db.ohanzee.resolver'), ]; From c44bcf05296b63c9466eee52b8a9c6c8525cfbb8 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Thu, 30 Mar 2023 21:09:45 +0100 Subject: [PATCH 16/75] chore: move contracts back to core domain --- app/Console/Commands/ApikeySetCommand.php | 2 +- .../Commands/Concerns/ConsoleFormatter.php | 4 ++-- app/Console/Commands/ConfigGetCommand.php | 4 ++-- app/Console/Commands/ConfigSetCommand.php | 2 +- app/Tools/Mailer.php | 2 +- app/Tools/Session.php | 4 ++-- .../AfricasTalking/ShortMessageController.php | 2 +- .../Addons/Mteja/ShortMessageController.php | 2 +- src/Ushahidi/Core/Concerns/Acl.php | 2 +- src/Ushahidi/Core/Concerns/AdminAccess.php | 2 +- .../Concerns/FormatterAuthorizerMetadata.php | 4 ++-- src/Ushahidi/Core/Concerns/GuestAccess.php | 2 +- src/Ushahidi/Core/Concerns/OwnerAccess.php | 2 +- src/Ushahidi/Core/Concerns/ParentAccess.php | 2 +- src/Ushahidi/Core/Concerns/PrivAccess.php | 2 +- src/Ushahidi/Core/Concerns/UserContext.php | 10 ++++---- .../Core/Concerns/ValidationEngine.php | 4 ++-- src/Ushahidi/{ => Core}/Contracts/Acl.php | 4 ++-- .../{ => Core}/Contracts/Authorizer.php | 8 +++---- .../Contracts/CollectionFormatter.php | 2 +- src/Ushahidi/{ => Core}/Contracts/Contact.php | 2 +- src/Ushahidi/{ => Core}/Contracts/Entity.php | 2 +- .../{ => Core}/Contracts/Formatter.php | 4 ++-- src/Ushahidi/{ => Core}/Contracts/Hasher.php | 2 +- src/Ushahidi/{ => Core}/Contracts/Mailer.php | 2 +- .../Contracts/PasswordAuthenticator.php | 2 +- .../{ => Core}/Contracts/RateLimiter.php | 4 ++-- .../{ => Core}/Contracts/ReaderFactory.php | 2 +- .../Contracts/Repository/CreateRepository.php | 2 +- .../Contracts/Repository/DeleteRepository.php | 6 ++--- .../Contracts/Repository/EntityCreate.php | 6 ++--- .../Contracts/Repository/EntityCreateMany.php | 4 ++-- .../Contracts/Repository/EntityExists.php | 2 +- .../Contracts/Repository/EntityGet.php | 6 ++--- .../Contracts/Repository/ImportRepository.php | 2 +- .../Contracts/Repository/ReadRepository.php | 2 +- .../Contracts/Repository/SearchRepository.php | 8 +++---- .../Contracts/Repository/UpdateRepository.php | 6 ++--- src/Ushahidi/{ => Core}/Contracts/Search.php | 2 +- src/Ushahidi/{ => Core}/Contracts/Session.php | 4 ++-- .../{ => Core}/Contracts/Transformer.php | 2 +- src/Ushahidi/{ => Core}/Contracts/Usecase.php | 4 ++-- .../{ => Core}/Contracts/ValidationEngine.php | 2 +- .../{ => Core}/Contracts/Validator.php | 2 +- src/Ushahidi/Core/Eloquent/Repository.php | 2 +- src/Ushahidi/Core/EloquentEntity.php | 2 +- src/Ushahidi/Core/Entity/ApiKey.php | 2 +- src/Ushahidi/Core/Entity/ApiKeyRepository.php | 4 ++-- src/Ushahidi/Core/Entity/Config.php | 2 +- src/Ushahidi/Core/Entity/ConfigRepository.php | 4 ++-- src/Ushahidi/Core/Entity/Contact.php | 2 +- .../Core/Entity/ContactRepository.php | 12 +++++----- src/Ushahidi/Core/Entity/ExportBatch.php | 2 +- .../Core/Entity/ExportBatchRepository.php | 4 ++-- src/Ushahidi/Core/Entity/ExportJob.php | 2 +- .../Core/Entity/ExportJobRepository.php | 8 +++---- src/Ushahidi/Core/Entity/Form.php | 2 +- src/Ushahidi/Core/Entity/FormAttribute.php | 2 +- .../Core/Entity/FormAttributeRepository.php | 10 ++++---- .../Core/Entity/FormContactRepository.php | 4 ++-- src/Ushahidi/Core/Entity/FormRepository.php | 8 +++---- src/Ushahidi/Core/Entity/FormStage.php | 2 +- .../Core/Entity/FormStageRepository.php | 6 ++--- .../Entity/HXL/HXLAttributeRepository.php | 2 +- ...FormAttributeHXLAttributeTagRepository.php | 2 +- .../Core/Entity/HXL/HXLLicenseRepository.php | 6 ++--- .../Core/Entity/HXL/HXLMetadataRepository.php | 6 ++--- .../Core/Entity/HXL/HXLTagRepository.php | 2 +- src/Ushahidi/Core/Entity/Media.php | 2 +- src/Ushahidi/Core/Entity/MediaRepository.php | 6 ++--- src/Ushahidi/Core/Entity/Message.php | 2 +- .../Core/Entity/MessageRepository.php | 12 +++++----- src/Ushahidi/Core/Entity/Permission.php | 2 +- .../Core/Entity/PermissionRepository.php | 4 ++-- src/Ushahidi/Core/Entity/Post.php | 2 +- .../Core/Entity/PostLockRepository.php | 2 +- src/Ushahidi/Core/Entity/PostRepository.php | 10 ++++---- src/Ushahidi/Core/Entity/PostValue.php | 2 +- src/Ushahidi/Core/Entity/Role.php | 2 +- src/Ushahidi/Core/Entity/RoleRepository.php | 4 ++-- src/Ushahidi/Core/Entity/Set.php | 2 +- src/Ushahidi/Core/Entity/SetRepository.php | 6 ++--- src/Ushahidi/Core/Entity/Tag.php | 2 +- src/Ushahidi/Core/Entity/TagRepository.php | 8 +++---- .../Entity/TargetedSurveyStateRepository.php | 6 ++--- src/Ushahidi/Core/Entity/TosRepository.php | 6 ++--- src/Ushahidi/Core/Entity/User.php | 2 +- src/Ushahidi/Core/Entity/UserRepository.php | 12 +++++----- src/Ushahidi/Core/Entity/UserSetting.php | 2 +- .../Core/Entity/UserSettingRepository.php | 4 ++-- .../Core/Entity/WebhookJobRepository.php | 6 ++--- .../Core/Entity/WebhookRepository.php | 4 ++-- src/Ushahidi/Core/Ohanzee/DynamicEntity.php | 2 +- .../Ohanzee/Repositories/ApiKeyRepository.php | 6 ++--- .../Ohanzee/Repositories/CSVRepository.php | 4 ++-- .../Repositories/Concerns/CachesData.php | 2 +- .../Ohanzee/Repositories/ConfigRepository.php | 8 +++---- .../Repositories/ContactRepository.php | 8 +++---- .../Repositories/CountryCodeRepository.php | 6 ++--- .../Repositories/DataProviderRepository.php | 6 ++--- .../Repositories/ExportBatchRepository.php | 2 +- .../Repositories/ExportJobRepository.php | 2 +- .../Repositories/Form/AttributeRepository.php | 4 ++-- .../Repositories/Form/ContactRepository.php | 2 +- .../Repositories/Form/RoleRepository.php | 2 +- .../Repositories/Form/StageRepository.php | 2 +- .../Repositories/Form/StatsRepository.php | 6 ++--- .../Ohanzee/Repositories/FormRepository.php | 2 +- .../HXL/HXLAttributeRepository.php | 6 ++--- ...FormAttributeHXLAttributeTagRepository.php | 6 ++--- .../Repositories/HXL/HXLTagRepository.php | 6 ++--- .../Ohanzee/Repositories/LayerRepository.php | 2 +- .../Repositories/MessageRepository.php | 2 +- .../Notification/QueueRepository.php | 4 ++-- .../Repositories/NotificationRepository.php | 4 ++-- .../Repositories/OhanzeeRepository.php | 8 +++---- .../Repositories/Post/LockRepository.php | 2 +- .../Ohanzee/Repositories/PostRepository.php | 4 ++-- .../Ohanzee/Repositories/RoleRepository.php | 2 +- .../Ohanzee/Repositories/SetRepository.php | 4 ++-- .../Ohanzee/Repositories/TagRepository.php | 4 ++-- .../Ohanzee/Repositories/TosRepository.php | 2 +- .../Repositories/User/SettingRepository.php | 2 +- .../Ohanzee/Repositories/UserRepository.php | 4 ++-- .../Repositories/Webhook/JobRepository.php | 2 +- .../Repositories/WebhookRepository.php | 2 +- src/Ushahidi/Core/Ohanzee/StaticEntity.php | 2 +- src/Ushahidi/Core/Tool/Acl.php | 2 +- .../Core/Tool/Authenticator/Password.php | 2 +- .../Core/Tool/Authorizer/ApiKeyAuthorizer.php | 4 ++-- .../Core/Tool/Authorizer/CSVAuthorizer.php | 4 ++-- .../Core/Tool/Authorizer/ConfigAuthorizer.php | 4 ++-- .../Tool/Authorizer/ConsoleAuthorizer.php | 4 ++-- .../Tool/Authorizer/ContactAuthorizer.php | 4 ++-- .../Tool/Authorizer/CountryCodeAuthorizer.php | 4 ++-- .../Authorizer/DataProviderAuthorizer.php | 4 ++-- .../Tool/Authorizer/ExportJobAuthorizer.php | 4 ++-- .../Tool/Authorizer/ExternalAuthorizer.php | 4 ++-- .../Authorizer/FormAttributeAuthorizer.php | 4 ++-- .../Core/Tool/Authorizer/FormAuthorizer.php | 4 ++-- .../Tool/Authorizer/FormContactAuthorizer.php | 4 ++-- .../Tool/Authorizer/FormRoleAuthorizer.php | 4 ++-- .../Tool/Authorizer/FormStageAuthorizer.php | 4 ++-- .../Tool/Authorizer/FormStatsAuthorizer.php | 4 ++-- .../Core/Tool/Authorizer/HXLAuthorizer.php | 4 ++-- .../Tool/Authorizer/HXLMetadataAuthorizer.php | 2 +- .../Core/Tool/Authorizer/LayerAuthorizer.php | 4 ++-- .../Core/Tool/Authorizer/MediaAuthorizer.php | 4 ++-- .../Tool/Authorizer/MessageAuthorizer.php | 4 ++-- .../Authorizer/NotificationAuthorizer.php | 4 ++-- .../Tool/Authorizer/PermissionAuthorizer.php | 4 ++-- .../Core/Tool/Authorizer/PostAuthorizer.php | 4 ++-- .../Core/Tool/Authorizer/RoleAuthorizer.php | 4 ++-- .../Core/Tool/Authorizer/SetAuthorizer.php | 4 ++-- .../Core/Tool/Authorizer/TagAuthorizer.php | 6 ++--- .../Core/Tool/Authorizer/TosAuthorizer.php | 4 ++-- .../Core/Tool/Authorizer/UserAuthorizer.php | 4 ++-- .../Tool/Authorizer/UserSettingAuthorizer.php | 4 ++-- .../Tool/Authorizer/WebhookAuthorizer.php | 4 ++-- src/Ushahidi/Core/Tool/Date.php | 2 +- src/Ushahidi/Core/Tool/FileReader/CSV.php | 2 +- .../Core/Tool/FileReader/CSVReaderFactory.php | 2 +- src/Ushahidi/Core/Tool/Hasher/Password.php | 2 +- .../Core/Tool/KohanaValidationEngine.php | 2 +- .../Core/Tool/Permissions/FormPermissions.php | 4 ++-- .../Core/Tool/Permissions/PostPermissions.php | 24 +++++++++---------- src/Ushahidi/Core/Tool/RateLimiter.php | 4 ++-- src/Ushahidi/Core/Tool/ResourceFormatter.php | 2 +- src/Ushahidi/Core/Tool/SearchData.php | 2 +- .../Core/Usecase/CSV/CreateCSVUsecase.php | 4 ++-- .../Core/Usecase/Concerns/Authorizer.php | 4 ++-- .../Core/Usecase/Concerns/Formatter.php | 2 +- .../Core/Usecase/Concerns/Validator.php | 4 ++-- .../Usecase/Concerns/VerifyEntityLoaded.php | 6 ++--- .../Usecase/Concerns/VerifyFormLoaded.php | 2 +- .../Usecase/Concerns/VerifyStageLoaded.php | 2 +- .../Core/Usecase/Config/SearchConfig.php | 4 ++-- src/Ushahidi/Core/Usecase/CreateUsecase.php | 6 ++--- src/Ushahidi/Core/Usecase/DeleteUsecase.php | 6 ++--- .../Core/Usecase/Form/UpdateFormContact.php | 2 +- .../Usecase/HXL/Organisations/GetByUser.php | 2 +- .../Core/Usecase/HXL/SendHXLUsecase.php | 2 +- .../Core/Usecase/Message/ReceiveMessage.php | 16 ++++++------- .../Core/Usecase/Message/UpdateMessage.php | 2 +- src/Ushahidi/Core/Usecase/OptionsUsecase.php | 8 +++---- .../Core/Usecase/Post/Concerns/FindPost.php | 2 +- .../Core/Usecase/Post/Concerns/PostLock.php | 2 +- src/Ushahidi/Core/Usecase/Post/ExportPost.php | 2 +- src/Ushahidi/Core/Usecase/Post/ImportPost.php | 8 +++---- src/Ushahidi/Core/Usecase/Post/UpdatePost.php | 2 +- .../Core/Usecase/Post/WebhookUpdatePost.php | 2 +- src/Ushahidi/Core/Usecase/ReadUsecase.php | 6 ++--- src/Ushahidi/Core/Usecase/SearchUsecase.php | 6 ++--- .../Core/Usecase/Set/AuthorizeSet.php | 4 ++-- src/Ushahidi/Core/Usecase/Set/CreateSet.php | 2 +- .../Core/Usecase/Set/CreateSetPost.php | 2 +- .../Core/Usecase/Set/GetSetEntityTrait.php | 2 +- .../Core/Usecase/Set/VerifySetExistsTrait.php | 2 +- src/Ushahidi/Core/Usecase/UpdateUsecase.php | 8 +++---- .../Core/Usecase/User/GetResetToken.php | 4 ++-- src/Ushahidi/Core/Usecase/User/LoginUser.php | 8 +++---- .../Core/Usecase/User/RegisterUser.php | 4 ++-- .../Core/Usecase/User/ResetUserPassword.php | 2 +- src/Ushahidi/Core/Usecase/User/UpdateUser.php | 2 +- src/Ushahidi/DataSource/Email/Email.php | 2 +- .../DataSource/Email/OutgoingEmail.php | 2 +- .../DataSource/FrontlineSMS/FrontlineSMS.php | 2 +- .../FrontlineSMS/FrontlineSMSController.php | 2 +- .../DataSource/Nexmo/NexmoController.php | 2 +- src/Ushahidi/DataSource/SMSSync/SMSSync.php | 2 +- .../DataSource/SMSSync/SMSSyncController.php | 2 +- src/Ushahidi/DataSource/Twilio/Twilio.php | 2 +- .../DataSource/Twilio/TwilioController.php | 2 +- src/Ushahidi/DataSource/Twitter/Twitter.php | 2 +- src/Ushahidi/Modules/V2/Contracts/Mapper.php | 2 +- src/Ushahidi/Modules/V2/Importer.php | 2 +- .../V3/Console/PostExporterCommand.php | 2 +- .../Modules/V3/ContainerConfig/CoreConfig.php | 2 +- .../Modules/V3/Factory/AuthorizerFactory.php | 2 +- .../Modules/V3/Factory/FormatterFactory.php | 2 +- .../Modules/V3/Factory/UsecaseFactory.php | 4 ++-- src/Ushahidi/Modules/V3/Formatter/API.php | 4 ++-- .../Modules/V3/Formatter/Collection.php | 6 ++--- src/Ushahidi/Modules/V3/Formatter/Console.php | 4 ++-- .../V3/Formatter/HXL/HXLOrganisations.php | 2 +- src/Ushahidi/Modules/V3/Formatter/JSON.php | 2 +- src/Ushahidi/Modules/V3/Formatter/JSONP.php | 2 +- src/Ushahidi/Modules/V3/Formatter/Media.php | 2 +- src/Ushahidi/Modules/V3/Formatter/Post.php | 2 +- .../Modules/V3/Formatter/Post/GeoJSON.php | 4 ++-- .../V3/Formatter/Post/GeoJSONCollection.php | 2 +- .../Modules/V3/Formatter/Post/Stats.php | 4 ++-- src/Ushahidi/Modules/V3/Formatter/User.php | 4 ++-- .../Controllers/API/MessagesController.php | 2 +- .../V3/Http/Controllers/RESTController.php | 2 +- .../Modules/V3/Listener/QueueExportJob.php | 2 +- .../V3/Transformer/CSVPostTransformer.php | 2 +- .../Modules/V3/Validator/Contact/Receive.php | 2 +- .../Modules/V3/Validator/Contact/Update.php | 2 +- .../Modules/V3/Validator/LegacyValidator.php | 2 +- .../Modules/V5/Policies/PostPolicy.php | 2 +- .../Unit/Core/Entity/MockExportJobEntity.php | 2 +- .../Repositories/PostRepositoryTest.php | 2 +- .../Core/Usecase/ExportJob/PostCountTest.php | 2 +- .../Unit/DataSource/DataSourceStorageTest.php | 2 +- tests/Unit/Modules/V2/ImporterTest.php | 2 +- tests/spec/Core/Tool/DateSpec.php | 2 +- tests/spec/Core/Usecase/CreateUsecaseSpec.php | 10 ++++---- tests/spec/Core/Usecase/DeleteUsecaseSpec.php | 8 +++---- .../Usecase/Message/ReceiveMessageSpec.php | 10 ++++---- tests/spec/Core/Usecase/ReadUsecaseSpec.php | 8 +++---- tests/spec/Core/Usecase/SearchUsecaseSpec.php | 8 +++---- tests/spec/Core/Usecase/UpdateUsecaseSpec.php | 10 ++++---- .../spec/Core/Usecase/User/LoginUserSpec.php | 12 +++++----- 254 files changed, 483 insertions(+), 483 deletions(-) rename src/Ushahidi/{ => Core}/Contracts/Acl.php (85%) rename src/Ushahidi/{ => Core}/Contracts/Authorizer.php (82%) rename src/Ushahidi/{ => Core}/Contracts/CollectionFormatter.php (91%) rename src/Ushahidi/{ => Core}/Contracts/Contact.php (92%) rename src/Ushahidi/{ => Core}/Contracts/Entity.php (97%) rename src/Ushahidi/{ => Core}/Contracts/Formatter.php (77%) rename src/Ushahidi/{ => Core}/Contracts/Hasher.php (90%) rename src/Ushahidi/{ => Core}/Contracts/Mailer.php (94%) rename src/Ushahidi/{ => Core}/Contracts/PasswordAuthenticator.php (94%) rename src/Ushahidi/{ => Core}/Contracts/RateLimiter.php (81%) rename src/Ushahidi/{ => Core}/Contracts/ReaderFactory.php (92%) rename src/Ushahidi/{ => Core}/Contracts/Repository/CreateRepository.php (88%) rename src/Ushahidi/{ => Core}/Contracts/Repository/DeleteRepository.php (77%) rename src/Ushahidi/{ => Core}/Contracts/Repository/EntityCreate.php (76%) rename src/Ushahidi/{ => Core}/Contracts/Repository/EntityCreateMany.php (77%) rename src/Ushahidi/{ => Core}/Contracts/Repository/EntityExists.php (90%) rename src/Ushahidi/{ => Core}/Contracts/Repository/EntityGet.php (80%) rename src/Ushahidi/{ => Core}/Contracts/Repository/ImportRepository.php (88%) rename src/Ushahidi/{ => Core}/Contracts/Repository/ReadRepository.php (88%) rename src/Ushahidi/{ => Core}/Contracts/Repository/SearchRepository.php (81%) rename src/Ushahidi/{ => Core}/Contracts/Repository/UpdateRepository.php (81%) rename src/Ushahidi/{ => Core}/Contracts/Search.php (94%) rename src/Ushahidi/{ => Core}/Contracts/Session.php (90%) rename src/Ushahidi/{ => Core}/Contracts/Transformer.php (91%) rename src/Ushahidi/{ => Core}/Contracts/Usecase.php (91%) rename src/Ushahidi/{ => Core}/Contracts/ValidationEngine.php (98%) rename src/Ushahidi/{ => Core}/Contracts/Validator.php (95%) diff --git a/app/Console/Commands/ApikeySetCommand.php b/app/Console/Commands/ApikeySetCommand.php index ec48b644d5..a08dfacfee 100644 --- a/app/Console/Commands/ApikeySetCommand.php +++ b/app/Console/Commands/ApikeySetCommand.php @@ -36,7 +36,7 @@ class ApikeySetCommand extends Command protected $description = 'Set apikey'; /** - * @var \Ushahidi\Contracts\Usecase + * @var \Ushahidi\Core\Contracts\Usecase */ protected $usecase; diff --git a/app/Console/Commands/Concerns/ConsoleFormatter.php b/app/Console/Commands/Concerns/ConsoleFormatter.php index 0975bdb6d7..5755bef608 100644 --- a/app/Console/Commands/Concerns/ConsoleFormatter.php +++ b/app/Console/Commands/Concerns/ConsoleFormatter.php @@ -2,7 +2,7 @@ namespace App\Console\Commands\Concerns; -use Ushahidi\Contracts\Formatter; +use Ushahidi\Core\Contracts\Formatter; trait ConsoleFormatter { @@ -11,7 +11,7 @@ protected function getFormatter() return new class implements Formatter { /** - * @param \Ushahidi\Contracts\Entity $entity + * @param \Ushahidi\Core\Contracts\Entity $entity * @return array */ public function __invoke($entity) diff --git a/app/Console/Commands/ConfigGetCommand.php b/app/Console/Commands/ConfigGetCommand.php index 52e0fee437..b148887ae0 100644 --- a/app/Console/Commands/ConfigGetCommand.php +++ b/app/Console/Commands/ConfigGetCommand.php @@ -11,7 +11,7 @@ namespace App\Console\Commands; use Illuminate\Console\Command; -use Ushahidi\Contracts\Usecase; +use Ushahidi\Core\Contracts\Usecase; use Ushahidi\Core\Usecase\ReadUsecase; use App\Console\Commands\Concerns\ConsoleFormatter; use Ushahidi\Core\Entity\ConfigRepository; @@ -43,7 +43,7 @@ class ConfigGetCommand extends Command protected $description = 'Get config params'; /** - * @var \Ushahidi\Contracts\Usecase + * @var \Ushahidi\Core\Contracts\Usecase * * @todo support multiple entity types */ diff --git a/app/Console/Commands/ConfigSetCommand.php b/app/Console/Commands/ConfigSetCommand.php index ce3ae26d2c..001e754daa 100644 --- a/app/Console/Commands/ConfigSetCommand.php +++ b/app/Console/Commands/ConfigSetCommand.php @@ -42,7 +42,7 @@ class ConfigSetCommand extends Command protected $description = 'Set config params'; /** - * @var \Ushahidi\Contracts\Usecase + * @var \Ushahidi\Core\Contracts\Usecase * @todo support multiple entity types */ protected $usecase; diff --git a/app/Tools/Mailer.php b/app/Tools/Mailer.php index 354fef3133..0d12c9c03b 100644 --- a/app/Tools/Mailer.php +++ b/app/Tools/Mailer.php @@ -12,7 +12,7 @@ use Illuminate\Support\Str; use Ushahidi\Multisite\UsesSiteInfo; -use Ushahidi\Contracts\Mailer as MailerContract; +use Ushahidi\Core\Contracts\Mailer as MailerContract; use Illuminate\Contracts\Mail\Mailer as LaravelMailer; class Mailer implements MailerContract diff --git a/app/Tools/Session.php b/app/Tools/Session.php index 701a32ca8a..bd208ff06a 100644 --- a/app/Tools/Session.php +++ b/app/Tools/Session.php @@ -11,8 +11,8 @@ namespace App\Tools; use Illuminate\Support\Facades\Auth; -use Ushahidi\Contracts\Repository\EntityGet; -use Ushahidi\Contracts\Session as SessionContract; +use Ushahidi\Core\Contracts\Repository\EntityGet; +use Ushahidi\Core\Contracts\Session as SessionContract; class Session implements SessionContract { diff --git a/src/Ushahidi/Addons/AfricasTalking/ShortMessageController.php b/src/Ushahidi/Addons/AfricasTalking/ShortMessageController.php index c7cf47a49c..f6fbbeb59c 100644 --- a/src/Ushahidi/Addons/AfricasTalking/ShortMessageController.php +++ b/src/Ushahidi/Addons/AfricasTalking/ShortMessageController.php @@ -12,7 +12,7 @@ */ use Illuminate\Http\Request; -use Ushahidi\Contracts\Contact; +use Ushahidi\Core\Contracts\Contact; use Ushahidi\DataSource\Contracts\MessageType; use Ushahidi\DataSource\DataSourceController; diff --git a/src/Ushahidi/Addons/Mteja/ShortMessageController.php b/src/Ushahidi/Addons/Mteja/ShortMessageController.php index 370b0a8089..348366a159 100644 --- a/src/Ushahidi/Addons/Mteja/ShortMessageController.php +++ b/src/Ushahidi/Addons/Mteja/ShortMessageController.php @@ -13,7 +13,7 @@ use Illuminate\Http\Request; use Ramsey\Uuid\Uuid as UUID; -use Ushahidi\Contracts\Contact; +use Ushahidi\Core\Contracts\Contact; use Ushahidi\DataSource\Contracts\MessageType; use Ushahidi\DataSource\DataSourceController; diff --git a/src/Ushahidi/Core/Concerns/Acl.php b/src/Ushahidi/Core/Concerns/Acl.php index 675094462a..f673038e7f 100644 --- a/src/Ushahidi/Core/Concerns/Acl.php +++ b/src/Ushahidi/Core/Concerns/Acl.php @@ -13,7 +13,7 @@ namespace Ushahidi\Core\Concerns; -use Ushahidi\Contracts\Acl as AclInterface; +use Ushahidi\Core\Contracts\Acl as AclInterface; trait Acl { diff --git a/src/Ushahidi/Core/Concerns/AdminAccess.php b/src/Ushahidi/Core/Concerns/AdminAccess.php index 7a6347666a..11ccbc4e95 100644 --- a/src/Ushahidi/Core/Concerns/AdminAccess.php +++ b/src/Ushahidi/Core/Concerns/AdminAccess.php @@ -22,7 +22,7 @@ trait AdminAccess { /** * Check if the user has an Admin role - * @param \Ushahidi\Contracts\Entity $user + * @param \Ushahidi\Core\Contracts\Entity $user * @return boolean */ protected function isUserAdmin(User $user) diff --git a/src/Ushahidi/Core/Concerns/FormatterAuthorizerMetadata.php b/src/Ushahidi/Core/Concerns/FormatterAuthorizerMetadata.php index bdb0c2d604..7fb91b505c 100644 --- a/src/Ushahidi/Core/Concerns/FormatterAuthorizerMetadata.php +++ b/src/Ushahidi/Core/Concerns/FormatterAuthorizerMetadata.php @@ -13,8 +13,8 @@ namespace Ushahidi\Core\Concerns; -use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Authorizer; +use Ushahidi\Core\Contracts\Entity; +use Ushahidi\Core\Contracts\Authorizer; trait FormatterAuthorizerMetadata { diff --git a/src/Ushahidi/Core/Concerns/GuestAccess.php b/src/Ushahidi/Core/Concerns/GuestAccess.php index af01e604d3..91bc63ff70 100644 --- a/src/Ushahidi/Core/Concerns/GuestAccess.php +++ b/src/Ushahidi/Core/Concerns/GuestAccess.php @@ -16,7 +16,7 @@ namespace Ushahidi\Core\Concerns; -use Ushahidi\Contracts\Entity; +use Ushahidi\Core\Contracts\Entity; trait GuestAccess { diff --git a/src/Ushahidi/Core/Concerns/OwnerAccess.php b/src/Ushahidi/Core/Concerns/OwnerAccess.php index 4922b0b14f..9cce1387b5 100644 --- a/src/Ushahidi/Core/Concerns/OwnerAccess.php +++ b/src/Ushahidi/Core/Concerns/OwnerAccess.php @@ -16,7 +16,7 @@ namespace Ushahidi\Core\Concerns; -use Ushahidi\Contracts\Entity; +use Ushahidi\Core\Contracts\Entity; trait OwnerAccess { diff --git a/src/Ushahidi/Core/Concerns/ParentAccess.php b/src/Ushahidi/Core/Concerns/ParentAccess.php index 18780793e4..0526915493 100644 --- a/src/Ushahidi/Core/Concerns/ParentAccess.php +++ b/src/Ushahidi/Core/Concerns/ParentAccess.php @@ -17,7 +17,7 @@ namespace Ushahidi\Core\Concerns; -use Ushahidi\Contracts\Entity; +use Ushahidi\Core\Contracts\Entity; // The `ParentAccess` trait checks for access to a parent entity trait ParentAccess diff --git a/src/Ushahidi/Core/Concerns/PrivAccess.php b/src/Ushahidi/Core/Concerns/PrivAccess.php index fbd4657095..dda3e21935 100644 --- a/src/Ushahidi/Core/Concerns/PrivAccess.php +++ b/src/Ushahidi/Core/Concerns/PrivAccess.php @@ -13,7 +13,7 @@ namespace Ushahidi\Core\Concerns; -use Ushahidi\Contracts\Entity; +use Ushahidi\Core\Contracts\Entity; trait PrivAccess { diff --git a/src/Ushahidi/Core/Concerns/UserContext.php b/src/Ushahidi/Core/Concerns/UserContext.php index d81a1f508c..8fb9408301 100644 --- a/src/Ushahidi/Core/Concerns/UserContext.php +++ b/src/Ushahidi/Core/Concerns/UserContext.php @@ -13,7 +13,7 @@ namespace Ushahidi\Core\Concerns; -use Ushahidi\Contracts\Session; +use Ushahidi\Core\Contracts\Session; trait UserContext { @@ -22,7 +22,7 @@ trait UserContext /** * Set the user session - * @param \Ushahidi\Contracts\Session $session set the context + * @param \Ushahidi\Core\Contracts\Session $session set the context * @return void */ public function setSession(Session $session) @@ -32,7 +32,7 @@ public function setSession(Session $session) /** * Get the user session - * @return \Ushahidi\Contracts\Session + * @return \Ushahidi\Core\Contracts\Session */ public function getSession() { @@ -41,7 +41,7 @@ public function getSession() /** * Get the user context. - * @return \Ushahidi\Contracts\Entity + * @return \Ushahidi\Core\Contracts\Entity */ public function getUser() { @@ -63,7 +63,7 @@ public function getUserId() /** * Checks if currently logged in user is the same as passed entity/array - * @param \Ushahidi\Contracts\Entity $entity entity to check + * @param \Ushahidi\Core\Contracts\Entity $entity entity to check * @return boolean */ protected function isUserSelf($entity) diff --git a/src/Ushahidi/Core/Concerns/ValidationEngine.php b/src/Ushahidi/Core/Concerns/ValidationEngine.php index ce2e5ded2a..c3f8853b78 100644 --- a/src/Ushahidi/Core/Concerns/ValidationEngine.php +++ b/src/Ushahidi/Core/Concerns/ValidationEngine.php @@ -13,12 +13,12 @@ namespace Ushahidi\Core\Concerns; -use Ushahidi\Contracts\ValidationEngine as ValidationEngineContract; +use Ushahidi\Core\Contracts\ValidationEngine as ValidationEngineContract; trait ValidationEngine { /** - * @var \Ushahidi\Contracts\ValidationEngine + * @var \Ushahidi\Core\Contracts\ValidationEngine */ protected $validation_engine; diff --git a/src/Ushahidi/Contracts/Acl.php b/src/Ushahidi/Core/Contracts/Acl.php similarity index 85% rename from src/Ushahidi/Contracts/Acl.php rename to src/Ushahidi/Core/Contracts/Acl.php index cec7410389..2a96fab9ad 100644 --- a/src/Ushahidi/Contracts/Acl.php +++ b/src/Ushahidi/Core/Contracts/Acl.php @@ -9,14 +9,14 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts; +namespace Ushahidi\Core\Contracts; interface Acl { /** * Check if user has permissions * - * @param \Ushahidi\Contracts\Entity $user + * @param \Ushahidi\Core\Contracts\Entity $user * @param string $permission The permission to check for * @return boolean */ diff --git a/src/Ushahidi/Contracts/Authorizer.php b/src/Ushahidi/Core/Contracts/Authorizer.php similarity index 82% rename from src/Ushahidi/Contracts/Authorizer.php rename to src/Ushahidi/Core/Contracts/Authorizer.php index adb952df94..4903226110 100644 --- a/src/Ushahidi/Contracts/Authorizer.php +++ b/src/Ushahidi/Core/Contracts/Authorizer.php @@ -9,9 +9,9 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts; +namespace Ushahidi\Core\Contracts; -use Ushahidi\Contracts\Entity; +use Ushahidi\Core\Contracts\Entity; interface Authorizer { @@ -25,7 +25,7 @@ public function getAllowedPrivs(Entity $entity); /** * Check if access to an entity is allowed. * - * @param \Ushahidi\Contracts\Entity $entity Entity being accessed + * @param \Ushahidi\Core\Contracts\Entity $entity Entity being accessed * @param string $privilege Privilege that is requested * @return boolean */ @@ -34,7 +34,7 @@ public function isAllowed(Entity $entity, $privilege); /** * Get the user for the current authorization context. * - * @return \Ushahidi\Contracts\Entity + * @return \Ushahidi\Core\Contracts\Entity */ public function getUser(); diff --git a/src/Ushahidi/Contracts/CollectionFormatter.php b/src/Ushahidi/Core/Contracts/CollectionFormatter.php similarity index 91% rename from src/Ushahidi/Contracts/CollectionFormatter.php rename to src/Ushahidi/Core/Contracts/CollectionFormatter.php index a94f1afe24..af46672187 100644 --- a/src/Ushahidi/Contracts/CollectionFormatter.php +++ b/src/Ushahidi/Core/Contracts/CollectionFormatter.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts; +namespace Ushahidi\Core\Contracts; interface CollectionFormatter extends Formatter { diff --git a/src/Ushahidi/Contracts/Contact.php b/src/Ushahidi/Core/Contracts/Contact.php similarity index 92% rename from src/Ushahidi/Contracts/Contact.php rename to src/Ushahidi/Core/Contracts/Contact.php index 77af6abdb9..ebda5bb5af 100644 --- a/src/Ushahidi/Contracts/Contact.php +++ b/src/Ushahidi/Core/Contracts/Contact.php @@ -10,7 +10,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts; +namespace Ushahidi\Core\Contracts; interface Contact { diff --git a/src/Ushahidi/Contracts/Entity.php b/src/Ushahidi/Core/Contracts/Entity.php similarity index 97% rename from src/Ushahidi/Contracts/Entity.php rename to src/Ushahidi/Core/Contracts/Entity.php index 2d0401413f..930c4e9f3d 100644 --- a/src/Ushahidi/Contracts/Entity.php +++ b/src/Ushahidi/Core/Contracts/Entity.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts; +namespace Ushahidi\Core\Contracts; interface Entity { diff --git a/src/Ushahidi/Contracts/Formatter.php b/src/Ushahidi/Core/Contracts/Formatter.php similarity index 77% rename from src/Ushahidi/Contracts/Formatter.php rename to src/Ushahidi/Core/Contracts/Formatter.php index 8c88792887..519e20805b 100644 --- a/src/Ushahidi/Contracts/Formatter.php +++ b/src/Ushahidi/Core/Contracts/Formatter.php @@ -9,12 +9,12 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts; +namespace Ushahidi\Core\Contracts; interface Formatter { /** - * @param \Ushahidi\Contracts\Entity|\Ushahidi\Contracts\Entity[]|mixed $data + * @param \Ushahidi\Core\Contracts\Entity|\Ushahidi\Core\Contracts\Entity[]|mixed $data * * @return mixed * diff --git a/src/Ushahidi/Contracts/Hasher.php b/src/Ushahidi/Core/Contracts/Hasher.php similarity index 90% rename from src/Ushahidi/Contracts/Hasher.php rename to src/Ushahidi/Core/Contracts/Hasher.php index 1637120e52..5c3ac05d64 100644 --- a/src/Ushahidi/Contracts/Hasher.php +++ b/src/Ushahidi/Core/Contracts/Hasher.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts; +namespace Ushahidi\Core\Contracts; interface Hasher { diff --git a/src/Ushahidi/Contracts/Mailer.php b/src/Ushahidi/Core/Contracts/Mailer.php similarity index 94% rename from src/Ushahidi/Contracts/Mailer.php rename to src/Ushahidi/Core/Contracts/Mailer.php index 04ae0ce7a7..7f66a13a0d 100644 --- a/src/Ushahidi/Contracts/Mailer.php +++ b/src/Ushahidi/Core/Contracts/Mailer.php @@ -11,7 +11,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts; +namespace Ushahidi\Core\Contracts; interface Mailer { diff --git a/src/Ushahidi/Contracts/PasswordAuthenticator.php b/src/Ushahidi/Core/Contracts/PasswordAuthenticator.php similarity index 94% rename from src/Ushahidi/Contracts/PasswordAuthenticator.php rename to src/Ushahidi/Core/Contracts/PasswordAuthenticator.php index 75a3e6a83c..3cc24a2939 100644 --- a/src/Ushahidi/Contracts/PasswordAuthenticator.php +++ b/src/Ushahidi/Core/Contracts/PasswordAuthenticator.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts; +namespace Ushahidi\Core\Contracts; interface PasswordAuthenticator { diff --git a/src/Ushahidi/Contracts/RateLimiter.php b/src/Ushahidi/Core/Contracts/RateLimiter.php similarity index 81% rename from src/Ushahidi/Contracts/RateLimiter.php rename to src/Ushahidi/Core/Contracts/RateLimiter.php index c7c54b2ad9..d0f0bb096f 100644 --- a/src/Ushahidi/Contracts/RateLimiter.php +++ b/src/Ushahidi/Core/Contracts/RateLimiter.php @@ -10,12 +10,12 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts; +namespace Ushahidi\Core\Contracts; interface RateLimiter { /** - * @param \Ushahidi\Contracts\Entity $entity + * @param \Ushahidi\Core\Contracts\Entity $entity * @throws \Exception */ public function limit(Entity $entity); diff --git a/src/Ushahidi/Contracts/ReaderFactory.php b/src/Ushahidi/Core/Contracts/ReaderFactory.php similarity index 92% rename from src/Ushahidi/Contracts/ReaderFactory.php rename to src/Ushahidi/Core/Contracts/ReaderFactory.php index f508fcea61..11aee99724 100644 --- a/src/Ushahidi/Contracts/ReaderFactory.php +++ b/src/Ushahidi/Core/Contracts/ReaderFactory.php @@ -10,7 +10,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts; +namespace Ushahidi\Core\Contracts; interface ReaderFactory { diff --git a/src/Ushahidi/Contracts/Repository/CreateRepository.php b/src/Ushahidi/Core/Contracts/Repository/CreateRepository.php similarity index 88% rename from src/Ushahidi/Contracts/Repository/CreateRepository.php rename to src/Ushahidi/Core/Contracts/Repository/CreateRepository.php index fc3d8128f1..dd179b3698 100644 --- a/src/Ushahidi/Contracts/Repository/CreateRepository.php +++ b/src/Ushahidi/Core/Contracts/Repository/CreateRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository; +namespace Ushahidi\Core\Contracts\Repository; interface CreateRepository extends EntityGet, EntityCreate { diff --git a/src/Ushahidi/Contracts/Repository/DeleteRepository.php b/src/Ushahidi/Core/Contracts/Repository/DeleteRepository.php similarity index 77% rename from src/Ushahidi/Contracts/Repository/DeleteRepository.php rename to src/Ushahidi/Core/Contracts/Repository/DeleteRepository.php index b83fc45028..2406c96947 100644 --- a/src/Ushahidi/Contracts/Repository/DeleteRepository.php +++ b/src/Ushahidi/Core/Contracts/Repository/DeleteRepository.php @@ -9,10 +9,10 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository; +namespace Ushahidi\Core\Contracts\Repository; -use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Core\Contracts\Entity; +use Ushahidi\Core\Contracts\Repository\EntityGet; interface DeleteRepository extends EntityGet { diff --git a/src/Ushahidi/Contracts/Repository/EntityCreate.php b/src/Ushahidi/Core/Contracts/Repository/EntityCreate.php similarity index 76% rename from src/Ushahidi/Contracts/Repository/EntityCreate.php rename to src/Ushahidi/Core/Contracts/Repository/EntityCreate.php index 3670a1f51b..f304004f45 100644 --- a/src/Ushahidi/Contracts/Repository/EntityCreate.php +++ b/src/Ushahidi/Core/Contracts/Repository/EntityCreate.php @@ -10,15 +10,15 @@ * GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository; +namespace Ushahidi\Core\Contracts\Repository; -use Ushahidi\Contracts\Entity; +use Ushahidi\Core\Contracts\Entity; interface EntityCreate { /** * Creates a new record and returns the created id. - * @param array|\Ushahidi\Contracts\Entity $entity + * @param array|\Ushahidi\Core\Contracts\Entity $entity * @return mixed */ public function create(Entity $entity); diff --git a/src/Ushahidi/Contracts/Repository/EntityCreateMany.php b/src/Ushahidi/Core/Contracts/Repository/EntityCreateMany.php similarity index 77% rename from src/Ushahidi/Contracts/Repository/EntityCreateMany.php rename to src/Ushahidi/Core/Contracts/Repository/EntityCreateMany.php index 7c8604e6a2..7e607f43a4 100644 --- a/src/Ushahidi/Contracts/Repository/EntityCreateMany.php +++ b/src/Ushahidi/Core/Contracts/Repository/EntityCreateMany.php @@ -10,14 +10,14 @@ * GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository; +namespace Ushahidi\Core\Contracts\Repository; use Illuminate\Support\Collection; interface EntityCreateMany { /** - * @param \Illuminate\Support\Collection<\Ushahidi\Contracts\Entity> $collection + * @param \Illuminate\Support\Collection<\Ushahidi\Core\Contracts\Entity> $collection * @return array ids of rows created */ public function createMany(Collection $collection); diff --git a/src/Ushahidi/Contracts/Repository/EntityExists.php b/src/Ushahidi/Core/Contracts/Repository/EntityExists.php similarity index 90% rename from src/Ushahidi/Contracts/Repository/EntityExists.php rename to src/Ushahidi/Core/Contracts/Repository/EntityExists.php index 3e26b3fe2f..2fc081f13a 100644 --- a/src/Ushahidi/Contracts/Repository/EntityExists.php +++ b/src/Ushahidi/Core/Contracts/Repository/EntityExists.php @@ -10,7 +10,7 @@ * GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository; +namespace Ushahidi\Core\Contracts\Repository; interface EntityExists { diff --git a/src/Ushahidi/Contracts/Repository/EntityGet.php b/src/Ushahidi/Core/Contracts/Repository/EntityGet.php similarity index 80% rename from src/Ushahidi/Contracts/Repository/EntityGet.php rename to src/Ushahidi/Core/Contracts/Repository/EntityGet.php index 2ed3e41a92..7f692c91f9 100644 --- a/src/Ushahidi/Contracts/Repository/EntityGet.php +++ b/src/Ushahidi/Core/Contracts/Repository/EntityGet.php @@ -10,7 +10,7 @@ * GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository; +namespace Ushahidi\Core\Contracts\Repository; interface EntityGet { @@ -18,7 +18,7 @@ interface EntityGet * @param mixed $id * @param array $options * - * @return \Ushahidi\Contracts\Entity + * @return \Ushahidi\Core\Contracts\Entity */ public function get($id); @@ -26,7 +26,7 @@ public function get($id); * Converts an array of data into an entity object. * * @param array $data - * @return \Ushahidi\Contracts\Entity + * @return \Ushahidi\Core\Contracts\Entity */ public function getEntity(array $data = null); } diff --git a/src/Ushahidi/Contracts/Repository/ImportRepository.php b/src/Ushahidi/Core/Contracts/Repository/ImportRepository.php similarity index 88% rename from src/Ushahidi/Contracts/Repository/ImportRepository.php rename to src/Ushahidi/Core/Contracts/Repository/ImportRepository.php index e7444e5241..ddece927a2 100644 --- a/src/Ushahidi/Contracts/Repository/ImportRepository.php +++ b/src/Ushahidi/Core/Contracts/Repository/ImportRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository; +namespace Ushahidi\Core\Contracts\Repository; interface ImportRepository extends CreateRepository, UpdateRepository { diff --git a/src/Ushahidi/Contracts/Repository/ReadRepository.php b/src/Ushahidi/Core/Contracts/Repository/ReadRepository.php similarity index 88% rename from src/Ushahidi/Contracts/Repository/ReadRepository.php rename to src/Ushahidi/Core/Contracts/Repository/ReadRepository.php index c124f6d5f1..d4d6dcc019 100644 --- a/src/Ushahidi/Contracts/Repository/ReadRepository.php +++ b/src/Ushahidi/Core/Contracts/Repository/ReadRepository.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository; +namespace Ushahidi\Core\Contracts\Repository; interface ReadRepository extends EntityGet, EntityExists { diff --git a/src/Ushahidi/Contracts/Repository/SearchRepository.php b/src/Ushahidi/Core/Contracts/Repository/SearchRepository.php similarity index 81% rename from src/Ushahidi/Contracts/Repository/SearchRepository.php rename to src/Ushahidi/Core/Contracts/Repository/SearchRepository.php index 6f7dcb99f9..4e7560a778 100644 --- a/src/Ushahidi/Contracts/Repository/SearchRepository.php +++ b/src/Ushahidi/Core/Contracts/Repository/SearchRepository.php @@ -9,9 +9,9 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository; +namespace Ushahidi\Core\Contracts\Repository; -use Ushahidi\Contracts\Search; +use Ushahidi\Core\Contracts\Search; interface SearchRepository extends EntityGet { @@ -25,7 +25,7 @@ public function getSearchFields(); /** * Set the search parameters. * - * @param \Ushahidi\Contracts\Search $search + * @param \Ushahidi\Core\Contracts\Search $search * @return $this */ public function setSearchParams(Search $search); @@ -33,7 +33,7 @@ public function setSearchParams(Search $search); /** * Get the results for the last search. * - * @return \Ushahidi\Contracts\Entity[] + * @return \Ushahidi\Core\Contracts\Entity[] */ public function getSearchResults(); diff --git a/src/Ushahidi/Contracts/Repository/UpdateRepository.php b/src/Ushahidi/Core/Contracts/Repository/UpdateRepository.php similarity index 81% rename from src/Ushahidi/Contracts/Repository/UpdateRepository.php rename to src/Ushahidi/Core/Contracts/Repository/UpdateRepository.php index 428dce6589..1e3964c0f5 100644 --- a/src/Ushahidi/Contracts/Repository/UpdateRepository.php +++ b/src/Ushahidi/Core/Contracts/Repository/UpdateRepository.php @@ -9,10 +9,10 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts\Repository; +namespace Ushahidi\Core\Contracts\Repository; -use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Core\Contracts\Entity; +use Ushahidi\Core\Contracts\Repository\EntityGet; interface UpdateRepository extends EntityGet { diff --git a/src/Ushahidi/Contracts/Search.php b/src/Ushahidi/Core/Contracts/Search.php similarity index 94% rename from src/Ushahidi/Contracts/Search.php rename to src/Ushahidi/Core/Contracts/Search.php index a52c43de92..454a99c56a 100644 --- a/src/Ushahidi/Contracts/Search.php +++ b/src/Ushahidi/Core/Contracts/Search.php @@ -8,7 +8,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts; +namespace Ushahidi\Core\Contracts; interface Search { diff --git a/src/Ushahidi/Contracts/Session.php b/src/Ushahidi/Core/Contracts/Session.php similarity index 90% rename from src/Ushahidi/Contracts/Session.php rename to src/Ushahidi/Core/Contracts/Session.php index 532059f03b..578e30d663 100644 --- a/src/Ushahidi/Contracts/Session.php +++ b/src/Ushahidi/Core/Contracts/Session.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts; +namespace Ushahidi\Core\Contracts; interface Session { @@ -17,7 +17,7 @@ interface Session /** * Get the user entity * - * @return \Ushahidi\Contracts\Entity + * @return \Ushahidi\Core\Contracts\Entity */ public function getUser(); diff --git a/src/Ushahidi/Contracts/Transformer.php b/src/Ushahidi/Core/Contracts/Transformer.php similarity index 91% rename from src/Ushahidi/Contracts/Transformer.php rename to src/Ushahidi/Core/Contracts/Transformer.php index 7edd5340a4..09a29335a5 100644 --- a/src/Ushahidi/Contracts/Transformer.php +++ b/src/Ushahidi/Core/Contracts/Transformer.php @@ -11,7 +11,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts; +namespace Ushahidi\Core\Contracts; interface Transformer { diff --git a/src/Ushahidi/Contracts/Usecase.php b/src/Ushahidi/Core/Contracts/Usecase.php similarity index 91% rename from src/Ushahidi/Contracts/Usecase.php rename to src/Ushahidi/Core/Contracts/Usecase.php index 3e3c0b8518..fc6237bfc9 100644 --- a/src/Ushahidi/Contracts/Usecase.php +++ b/src/Ushahidi/Core/Contracts/Usecase.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts; +namespace Ushahidi\Core\Contracts; interface Usecase { @@ -39,7 +39,7 @@ public function isSearch(); * - updating an entity * - deleting an entity * - * @return array|\Ushahidi\Contracts\Entity[] + * @return array|\Ushahidi\Core\Contracts\Entity[] */ public function interact(); } diff --git a/src/Ushahidi/Contracts/ValidationEngine.php b/src/Ushahidi/Core/Contracts/ValidationEngine.php similarity index 98% rename from src/Ushahidi/Contracts/ValidationEngine.php rename to src/Ushahidi/Core/Contracts/ValidationEngine.php index a3814316a3..cb70e664ca 100644 --- a/src/Ushahidi/Contracts/ValidationEngine.php +++ b/src/Ushahidi/Core/Contracts/ValidationEngine.php @@ -10,7 +10,7 @@ * GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts; +namespace Ushahidi\Core\Contracts; interface ValidationEngine { diff --git a/src/Ushahidi/Contracts/Validator.php b/src/Ushahidi/Core/Contracts/Validator.php similarity index 95% rename from src/Ushahidi/Contracts/Validator.php rename to src/Ushahidi/Core/Contracts/Validator.php index 5480b206cb..6708c91749 100644 --- a/src/Ushahidi/Contracts/Validator.php +++ b/src/Ushahidi/Core/Contracts/Validator.php @@ -9,7 +9,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Contracts; +namespace Ushahidi\Core\Contracts; interface Validator { diff --git a/src/Ushahidi/Core/Eloquent/Repository.php b/src/Ushahidi/Core/Eloquent/Repository.php index df057a6ce0..8196347000 100644 --- a/src/Ushahidi/Core/Eloquent/Repository.php +++ b/src/Ushahidi/Core/Eloquent/Repository.php @@ -2,7 +2,7 @@ namespace Ushahidi\Core\Eloquent; -use Ushahidi\Contracts\Entity; +use Ushahidi\Core\Contracts\Entity; use Illuminate\Container\Container; abstract class Repository { diff --git a/src/Ushahidi/Core/EloquentEntity.php b/src/Ushahidi/Core/EloquentEntity.php index 2c89491ae2..79a8b1df5f 100644 --- a/src/Ushahidi/Core/EloquentEntity.php +++ b/src/Ushahidi/Core/EloquentEntity.php @@ -15,7 +15,7 @@ namespace Ushahidi\Core; use Illuminate\Support\Arr; -use Ushahidi\Contracts\Entity; +use Ushahidi\Core\Contracts\Entity; use Ushahidi\Core\Concerns\DeriveData; use Illuminate\Database\Eloquent\Model; use Ushahidi\Core\Concerns\DefaultData; diff --git a/src/Ushahidi/Core/Entity/ApiKey.php b/src/Ushahidi/Core/Entity/ApiKey.php index b19db55c9e..95b72312eb 100644 --- a/src/Ushahidi/Core/Entity/ApiKey.php +++ b/src/Ushahidi/Core/Entity/ApiKey.php @@ -1,7 +1,7 @@ setters[Usecase\Set\AuthorizeSet::class]['setSetAuthorizer'] = $di->lazyGet('authorizer.set'); - // repositories for Ushahidi\Contracts\Repository\Usecase\Post\Export usecase + // repositories for Ushahidi\Core\Contracts\Repository\Usecase\Post\Export usecase $di->setters[Usecase\Post\ExportPost::class]['setExportJobRepository'] = $di->lazyGet('repository.export_job'); $di->setters[Usecase\Post\ExportPost::class]['setFormAttributeRepository'] diff --git a/src/Ushahidi/Modules/V3/Factory/AuthorizerFactory.php b/src/Ushahidi/Modules/V3/Factory/AuthorizerFactory.php index 1ef571af4f..21014a7fa3 100644 --- a/src/Ushahidi/Modules/V3/Factory/AuthorizerFactory.php +++ b/src/Ushahidi/Modules/V3/Factory/AuthorizerFactory.php @@ -34,7 +34,7 @@ public function __construct(array $map) /** * Gets an authorizer from the map by resource. * @param string $resource - * @return \Ushahidi\Contracts\Authorizer + * @return \Ushahidi\Core\Contracts\Authorizer */ public function get($resource) { diff --git a/src/Ushahidi/Modules/V3/Factory/FormatterFactory.php b/src/Ushahidi/Modules/V3/Factory/FormatterFactory.php index d14b3c64bc..c7ef6c8045 100644 --- a/src/Ushahidi/Modules/V3/Factory/FormatterFactory.php +++ b/src/Ushahidi/Modules/V3/Factory/FormatterFactory.php @@ -68,7 +68,7 @@ public function isCollection($action) * * @param string $resource * @param string $action - * @return \Ushahidi\Contracts\Formatter + * @return \Ushahidi\Core\Contracts\Formatter */ public function get($resource, $action) { diff --git a/src/Ushahidi/Modules/V3/Factory/UsecaseFactory.php b/src/Ushahidi/Modules/V3/Factory/UsecaseFactory.php index c3ece186d4..edc15c1acc 100644 --- a/src/Ushahidi/Modules/V3/Factory/UsecaseFactory.php +++ b/src/Ushahidi/Modules/V3/Factory/UsecaseFactory.php @@ -11,7 +11,7 @@ namespace Ushahidi\Modules\V3\Factory; -use Ushahidi\Contracts\Usecase; +use Ushahidi\Core\Contracts\Usecase; class UsecaseFactory { @@ -92,7 +92,7 @@ public function __construct( * @param string $resource * @param string $action * - * @return \Ushahidi\Contracts\Usecase + * @return \Ushahidi\Core\Contracts\Usecase */ public function get($resource, $action) : Usecase { diff --git a/src/Ushahidi/Modules/V3/Formatter/API.php b/src/Ushahidi/Modules/V3/Formatter/API.php index 779cb4c795..135aad1a8a 100644 --- a/src/Ushahidi/Modules/V3/Formatter/API.php +++ b/src/Ushahidi/Modules/V3/Formatter/API.php @@ -13,8 +13,8 @@ namespace Ushahidi\Modules\V3\Formatter; -use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Formatter; +use Ushahidi\Core\Contracts\Entity; +use Ushahidi\Core\Contracts\Formatter; use Ushahidi\Core\Exception\FormatterException; use Ushahidi\Modules\V3\Http\Controllers\RESTController; use Illuminate\Support\Str; diff --git a/src/Ushahidi/Modules/V3/Formatter/Collection.php b/src/Ushahidi/Modules/V3/Formatter/Collection.php index 52dc5ef0ee..457e5e2939 100644 --- a/src/Ushahidi/Modules/V3/Formatter/Collection.php +++ b/src/Ushahidi/Modules/V3/Formatter/Collection.php @@ -13,8 +13,8 @@ namespace Ushahidi\Modules\V3\Formatter; -use Ushahidi\Contracts\Formatter; -use Ushahidi\Contracts\CollectionFormatter; +use Ushahidi\Core\Contracts\Formatter; +use Ushahidi\Core\Contracts\CollectionFormatter; use Ushahidi\Core\Exception\FormatterException; class Collection implements CollectionFormatter @@ -34,7 +34,7 @@ class Collection implements CollectionFormatter /** * Collection formatter recursively invokes an entity-specific formatter. * - * @param \Ushahidi\Contracts\Formatter $formatter + * @param \Ushahidi\Core\Contracts\Formatter $formatter */ public function __construct(Formatter $formatter) { diff --git a/src/Ushahidi/Modules/V3/Formatter/Console.php b/src/Ushahidi/Modules/V3/Formatter/Console.php index f2935e2fd4..fe53b342f2 100644 --- a/src/Ushahidi/Modules/V3/Formatter/Console.php +++ b/src/Ushahidi/Modules/V3/Formatter/Console.php @@ -13,8 +13,8 @@ namespace Ushahidi\Modules\V3\Formatter; -use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Formatter; +use Ushahidi\Core\Contracts\Entity; +use Ushahidi\Core\Contracts\Formatter; use Ushahidi\Core\Exception\FormatterException; use Illuminate\Support\Str; diff --git a/src/Ushahidi/Modules/V3/Formatter/HXL/HXLOrganisations.php b/src/Ushahidi/Modules/V3/Formatter/HXL/HXLOrganisations.php index 88fb630a44..41d1880a6f 100644 --- a/src/Ushahidi/Modules/V3/Formatter/HXL/HXLOrganisations.php +++ b/src/Ushahidi/Modules/V3/Formatter/HXL/HXLOrganisations.php @@ -11,7 +11,7 @@ namespace Ushahidi\Modules\V3\Formatter\HXL; -use Ushahidi\Contracts\Formatter; +use Ushahidi\Core\Contracts\Formatter; use Ushahidi\Core\Concerns\FormatterAuthorizerMetadata; class HXLOrganisations implements Formatter diff --git a/src/Ushahidi/Modules/V3/Formatter/JSON.php b/src/Ushahidi/Modules/V3/Formatter/JSON.php index b882d69b96..4665d99d9d 100644 --- a/src/Ushahidi/Modules/V3/Formatter/JSON.php +++ b/src/Ushahidi/Modules/V3/Formatter/JSON.php @@ -11,7 +11,7 @@ namespace Ushahidi\Modules\V3\Formatter; -use Ushahidi\Contracts\Formatter; +use Ushahidi\Core\Contracts\Formatter; use Ushahidi\Core\Tool\OutputFormatter; use Ushahidi\Core\Exception\FormatterException; diff --git a/src/Ushahidi/Modules/V3/Formatter/JSONP.php b/src/Ushahidi/Modules/V3/Formatter/JSONP.php index d8997dce8a..87304bae88 100644 --- a/src/Ushahidi/Modules/V3/Formatter/JSONP.php +++ b/src/Ushahidi/Modules/V3/Formatter/JSONP.php @@ -11,7 +11,7 @@ namespace Ushahidi\Modules\V3\Formatter; -use Ushahidi\Contracts\Formatter; +use Ushahidi\Core\Contracts\Formatter; use Ushahidi\Core\Tool\OutputFormatter; class JSONP extends JSON implements Formatter, OutputFormatter diff --git a/src/Ushahidi/Modules/V3/Formatter/Media.php b/src/Ushahidi/Modules/V3/Formatter/Media.php index 2c8f5de184..ff78fd4051 100644 --- a/src/Ushahidi/Modules/V3/Formatter/Media.php +++ b/src/Ushahidi/Modules/V3/Formatter/Media.php @@ -11,7 +11,7 @@ namespace Ushahidi\Modules\V3\Formatter; -use Ushahidi\Contracts\Entity; +use Ushahidi\Core\Contracts\Entity; use Ushahidi\Core\Concerns\FormatterAuthorizerMetadata; use Illuminate\Support\Facades\Storage; diff --git a/src/Ushahidi/Modules/V3/Formatter/Post.php b/src/Ushahidi/Modules/V3/Formatter/Post.php index 147d33025a..ae359a95a6 100644 --- a/src/Ushahidi/Modules/V3/Formatter/Post.php +++ b/src/Ushahidi/Modules/V3/Formatter/Post.php @@ -11,7 +11,7 @@ namespace Ushahidi\Modules\V3\Formatter; -use Ushahidi\Contracts\Formatter; +use Ushahidi\Core\Contracts\Formatter; use Ushahidi\Core\Concerns\FormatterAuthorizerMetadata; class Post extends API diff --git a/src/Ushahidi/Modules/V3/Formatter/Post/GeoJSON.php b/src/Ushahidi/Modules/V3/Formatter/Post/GeoJSON.php index 358ec2a3a0..e9668753d2 100644 --- a/src/Ushahidi/Modules/V3/Formatter/Post/GeoJSON.php +++ b/src/Ushahidi/Modules/V3/Formatter/Post/GeoJSON.php @@ -11,8 +11,8 @@ namespace Ushahidi\Modules\V3\Formatter\Post; -use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Formatter; +use Ushahidi\Core\Contracts\Entity; +use Ushahidi\Core\Contracts\Formatter; use Ushahidi\Core\Concerns\GeometryConverter; class GeoJSON implements Formatter diff --git a/src/Ushahidi/Modules/V3/Formatter/Post/GeoJSONCollection.php b/src/Ushahidi/Modules/V3/Formatter/Post/GeoJSONCollection.php index 770a581138..7b2af506ac 100644 --- a/src/Ushahidi/Modules/V3/Formatter/Post/GeoJSONCollection.php +++ b/src/Ushahidi/Modules/V3/Formatter/Post/GeoJSONCollection.php @@ -12,7 +12,7 @@ namespace Ushahidi\Modules\V3\Formatter\Post; use Ushahidi\Core\Tool\SearchData; -use Ushahidi\Contracts\Formatter; +use Ushahidi\Core\Contracts\Formatter; use Ushahidi\Core\Exception\FormatterException; use Ushahidi\Modules\V3\Http\Controllers\RESTController; use Ushahidi\Core\Concerns\GeometryConverter; diff --git a/src/Ushahidi/Modules/V3/Formatter/Post/Stats.php b/src/Ushahidi/Modules/V3/Formatter/Post/Stats.php index 6dbb6dae4b..e606a76b55 100644 --- a/src/Ushahidi/Modules/V3/Formatter/Post/Stats.php +++ b/src/Ushahidi/Modules/V3/Formatter/Post/Stats.php @@ -12,9 +12,9 @@ namespace Ushahidi\Modules\V3\Formatter\Post; use Ushahidi\Core\Concerns\FormatterAuthorizerMetadata; -use Ushahidi\Contracts\Entity; +use Ushahidi\Core\Contracts\Entity; use Ushahidi\Core\Tool\SearchData; -use Ushahidi\Contracts\Formatter; +use Ushahidi\Core\Contracts\Formatter; use Ushahidi\Core\Exception\FormatterException; class Stats implements Formatter diff --git a/src/Ushahidi/Modules/V3/Formatter/User.php b/src/Ushahidi/Modules/V3/Formatter/User.php index bb758a8b7b..8a9c0b28b8 100644 --- a/src/Ushahidi/Modules/V3/Formatter/User.php +++ b/src/Ushahidi/Modules/V3/Formatter/User.php @@ -11,8 +11,8 @@ namespace Ushahidi\Modules\V3\Formatter; -use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Authorizer; +use Ushahidi\Core\Contracts\Entity; +use Ushahidi\Core\Contracts\Authorizer; use Ushahidi\Core\Concerns\FormatterAuthorizerMetadata; class User extends API diff --git a/src/Ushahidi/Modules/V3/Http/Controllers/API/MessagesController.php b/src/Ushahidi/Modules/V3/Http/Controllers/API/MessagesController.php index 0bcba0f8be..a4eb01f80c 100644 --- a/src/Ushahidi/Modules/V3/Http/Controllers/API/MessagesController.php +++ b/src/Ushahidi/Modules/V3/Http/Controllers/API/MessagesController.php @@ -23,7 +23,7 @@ class MessagesController extends RESTController protected $usecaseFactory; /** - * @var \Ushahidi\Contracts\Usecase + * @var \Ushahidi\Core\Contracts\Usecase */ protected $usecase; diff --git a/src/Ushahidi/Modules/V3/Http/Controllers/RESTController.php b/src/Ushahidi/Modules/V3/Http/Controllers/RESTController.php index da26b0f765..048d6d17f6 100644 --- a/src/Ushahidi/Modules/V3/Http/Controllers/RESTController.php +++ b/src/Ushahidi/Modules/V3/Http/Controllers/RESTController.php @@ -41,7 +41,7 @@ abstract class RESTController extends BaseController protected $multisite; /** - * @var \Ushahidi\Contracts\Usecase + * @var \Ushahidi\Core\Contracts\Usecase */ protected $usecase; diff --git a/src/Ushahidi/Modules/V3/Listener/QueueExportJob.php b/src/Ushahidi/Modules/V3/Listener/QueueExportJob.php index f9d873965d..4bafd12a6c 100644 --- a/src/Ushahidi/Modules/V3/Listener/QueueExportJob.php +++ b/src/Ushahidi/Modules/V3/Listener/QueueExportJob.php @@ -2,7 +2,7 @@ namespace Ushahidi\Modules\V3\Listener; -use Ushahidi\Contracts\Entity; +use Ushahidi\Core\Contracts\Entity; use Ushahidi\Modules\V3\Jobs\ExportPostsJob; class QueueExportJob diff --git a/src/Ushahidi/Modules/V3/Transformer/CSVPostTransformer.php b/src/Ushahidi/Modules/V3/Transformer/CSVPostTransformer.php index 69a560a03b..8d0e265a6f 100644 --- a/src/Ushahidi/Modules/V3/Transformer/CSVPostTransformer.php +++ b/src/Ushahidi/Modules/V3/Transformer/CSVPostTransformer.php @@ -11,7 +11,7 @@ namespace Ushahidi\Modules\V3\Transformer; -use Ushahidi\Contracts\Transformer; +use Ushahidi\Core\Contracts\Transformer; use Ushahidi\Core\Entity\PostRepository; class CSVPostTransformer implements Transformer diff --git a/src/Ushahidi/Modules/V3/Validator/Contact/Receive.php b/src/Ushahidi/Modules/V3/Validator/Contact/Receive.php index 8032879935..9b9e04ee28 100644 --- a/src/Ushahidi/Modules/V3/Validator/Contact/Receive.php +++ b/src/Ushahidi/Modules/V3/Validator/Contact/Receive.php @@ -11,7 +11,7 @@ namespace Ushahidi\Modules\V3\Validator\Contact; -use Ushahidi\Contracts\Contact; +use Ushahidi\Core\Contracts\Contact; class Receive extends Create { diff --git a/src/Ushahidi/Modules/V3/Validator/Contact/Update.php b/src/Ushahidi/Modules/V3/Validator/Contact/Update.php index 2c76ee2738..c9e5aaecc0 100644 --- a/src/Ushahidi/Modules/V3/Validator/Contact/Update.php +++ b/src/Ushahidi/Modules/V3/Validator/Contact/Update.php @@ -11,7 +11,7 @@ namespace Ushahidi\Modules\V3\Validator\Contact; -use Ushahidi\Contracts\Contact; +use Ushahidi\Core\Contracts\Contact; use Ushahidi\Modules\V3\Validator\LegacyValidator; use Ushahidi\Core\Entity\UserRepository; diff --git a/src/Ushahidi/Modules/V3/Validator/LegacyValidator.php b/src/Ushahidi/Modules/V3/Validator/LegacyValidator.php index 7ee3e27320..07b7271bf5 100644 --- a/src/Ushahidi/Modules/V3/Validator/LegacyValidator.php +++ b/src/Ushahidi/Modules/V3/Validator/LegacyValidator.php @@ -11,7 +11,7 @@ namespace Ushahidi\Modules\V3\Validator; -use Ushahidi\Contracts\Validator; +use Ushahidi\Core\Contracts\Validator; use Ushahidi\Core\Concerns\ValidationEngine; abstract class LegacyValidator implements Validator diff --git a/src/Ushahidi/Modules/V5/Policies/PostPolicy.php b/src/Ushahidi/Modules/V5/Policies/PostPolicy.php index b449526bf1..60ce755bcc 100644 --- a/src/Ushahidi/Modules/V5/Policies/PostPolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/PostPolicy.php @@ -14,7 +14,7 @@ use Ushahidi\Modules\V5\Models\Survey; use Ushahidi\Core\Concerns\Acl as AccessControlList; use Ushahidi\Core\Concerns\PrivateDeployment; -use Ushahidi\Contracts\Entity as EntityContract; +use Ushahidi\Core\Contracts\Entity as EntityContract; class PostPolicy { diff --git a/tests/Unit/Core/Entity/MockExportJobEntity.php b/tests/Unit/Core/Entity/MockExportJobEntity.php index 9a3306bb50..bb059d6e64 100644 --- a/tests/Unit/Core/Entity/MockExportJobEntity.php +++ b/tests/Unit/Core/Entity/MockExportJobEntity.php @@ -2,7 +2,7 @@ namespace Ushahidi\Tests\Unit\Core\Entity; -use Ushahidi\Contracts\Entity; +use Ushahidi\Core\Contracts\Entity; /** * Ushahidi Export Job diff --git a/tests/Unit/Core/Ohanzee/Repositories/PostRepositoryTest.php b/tests/Unit/Core/Ohanzee/Repositories/PostRepositoryTest.php index 472be99118..ab363c89af 100644 --- a/tests/Unit/Core/Ohanzee/Repositories/PostRepositoryTest.php +++ b/tests/Unit/Core/Ohanzee/Repositories/PostRepositoryTest.php @@ -8,7 +8,7 @@ use Ohanzee\Database; use Ushahidi\Tests\TestCase; use Aura\Di\Injection\Factory; -use Ushahidi\Contracts\Session; +use Ushahidi\Core\Contracts\Session; use Illuminate\Support\Collection; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Tool\OhanzeeResolver; diff --git a/tests/Unit/Core/Usecase/ExportJob/PostCountTest.php b/tests/Unit/Core/Usecase/ExportJob/PostCountTest.php index e7183b5660..f55e61d039 100644 --- a/tests/Unit/Core/Usecase/ExportJob/PostCountTest.php +++ b/tests/Unit/Core/Usecase/ExportJob/PostCountTest.php @@ -5,7 +5,7 @@ use Faker; use Mockery as M; use Ushahidi\Tests\TestCase; -use Ushahidi\Contracts\Session; +use Ushahidi\Core\Contracts\Session; use Ushahidi\Core\Entity\ExportJobRepository; use Ushahidi\Core\Ohanzee\Entities\ExportJob; use Ushahidi\Core\Usecase\Export\Job\PostCount; diff --git a/tests/Unit/DataSource/DataSourceStorageTest.php b/tests/Unit/DataSource/DataSourceStorageTest.php index a2e072f182..bf4ab1539d 100644 --- a/tests/Unit/DataSource/DataSourceStorageTest.php +++ b/tests/Unit/DataSource/DataSourceStorageTest.php @@ -12,7 +12,7 @@ use Mockery as M; use Ushahidi\Tests\TestCase; -use Ushahidi\Contracts\Usecase; +use Ushahidi\Core\Contracts\Usecase; use Illuminate\Support\Facades\Log; use Ushahidi\DataSource\DataSourceStorage; use Ushahidi\Core\Entity\ContactRepository; diff --git a/tests/Unit/Modules/V2/ImporterTest.php b/tests/Unit/Modules/V2/ImporterTest.php index d55cb443f4..02e59c8c00 100644 --- a/tests/Unit/Modules/V2/ImporterTest.php +++ b/tests/Unit/Modules/V2/ImporterTest.php @@ -5,7 +5,7 @@ use Ushahidi\Modules\V2\Importer; use Ushahidi\Modules\V2\Contracts\ImportMappingRepository; use Ushahidi\Modules\V2\Contracts\Mapper; -use Ushahidi\Contracts\Repository\EntityCreateMany; +use Ushahidi\Core\Contracts\Repository\EntityCreateMany; use Illuminate\Support\Collection; use Ushahidi\Tests\TestCase; use Mockery as M; diff --git a/tests/spec/Core/Tool/DateSpec.php b/tests/spec/Core/Tool/DateSpec.php index f5e98a6667..d2ba666141 100644 --- a/tests/spec/Core/Tool/DateSpec.php +++ b/tests/spec/Core/Tool/DateSpec.php @@ -2,7 +2,7 @@ namespace spec\Ushahidi\Core\Tool; use PhpSpec\ObjectBehavior; -use Ushahidi\Contracts\Entity; +use Ushahidi\Core\Contracts\Entity; use Ushahidi\Core\Entity\ConfigRepository; use Ushahidi\Core\Tool\Date; diff --git a/tests/spec/Core/Usecase/CreateUsecaseSpec.php b/tests/spec/Core/Usecase/CreateUsecaseSpec.php index 0cd171013a..29ea5c91a7 100644 --- a/tests/spec/Core/Usecase/CreateUsecaseSpec.php +++ b/tests/spec/Core/Usecase/CreateUsecaseSpec.php @@ -6,11 +6,11 @@ use Illuminate\Contracts\Translation\Translator; use PhpSpec\ObjectBehavior; use Prophecy\Argument; -use Ushahidi\Contracts\Authorizer; -use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Formatter; -use Ushahidi\Contracts\Repository\CreateRepository; -use Ushahidi\Contracts\Validator; +use Ushahidi\Core\Contracts\Authorizer; +use Ushahidi\Core\Contracts\Entity; +use Ushahidi\Core\Contracts\Formatter; +use Ushahidi\Core\Contracts\Repository\CreateRepository; +use Ushahidi\Core\Contracts\Validator; class CreateUsecaseSpec extends ObjectBehavior { diff --git a/tests/spec/Core/Usecase/DeleteUsecaseSpec.php b/tests/spec/Core/Usecase/DeleteUsecaseSpec.php index dfbb17745a..ff6f6b6b37 100644 --- a/tests/spec/Core/Usecase/DeleteUsecaseSpec.php +++ b/tests/spec/Core/Usecase/DeleteUsecaseSpec.php @@ -4,10 +4,10 @@ use PhpSpec\ObjectBehavior; use Prophecy\Argument; -use Ushahidi\Contracts\Authorizer; -use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Formatter; -use Ushahidi\Contracts\Repository\DeleteRepository; +use Ushahidi\Core\Contracts\Authorizer; +use Ushahidi\Core\Contracts\Entity; +use Ushahidi\Core\Contracts\Formatter; +use Ushahidi\Core\Contracts\Repository\DeleteRepository; class DeleteUsecaseSpec extends ObjectBehavior { diff --git a/tests/spec/Core/Usecase/Message/ReceiveMessageSpec.php b/tests/spec/Core/Usecase/Message/ReceiveMessageSpec.php index 1ec9eaf6d7..6c8e7ec86d 100644 --- a/tests/spec/Core/Usecase/Message/ReceiveMessageSpec.php +++ b/tests/spec/Core/Usecase/Message/ReceiveMessageSpec.php @@ -6,12 +6,12 @@ use Illuminate\Contracts\Translation\Translator; use PhpSpec\ObjectBehavior; use Prophecy\Argument; -use Ushahidi\Contracts\Authorizer; -use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Formatter; -use Ushahidi\Contracts\Repository\CreateRepository; +use Ushahidi\Core\Contracts\Authorizer; +use Ushahidi\Core\Contracts\Entity; +use Ushahidi\Core\Contracts\Formatter; +use Ushahidi\Core\Contracts\Repository\CreateRepository; use Ushahidi\Core\Entity\ContactRepository; -use Ushahidi\Contracts\Validator; +use Ushahidi\Core\Contracts\Validator; use Ushahidi\Core\Entity\Contact; use Ushahidi\Core\Exception\ValidatorException; use Ushahidi\Core\Usecase\Message\ReceiveMessage; diff --git a/tests/spec/Core/Usecase/ReadUsecaseSpec.php b/tests/spec/Core/Usecase/ReadUsecaseSpec.php index dd3c8b29cd..0875c22aac 100644 --- a/tests/spec/Core/Usecase/ReadUsecaseSpec.php +++ b/tests/spec/Core/Usecase/ReadUsecaseSpec.php @@ -4,10 +4,10 @@ use PhpSpec\ObjectBehavior; use Prophecy\Argument; -use Ushahidi\Contracts\Authorizer; -use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Formatter; -use Ushahidi\Contracts\Repository\ReadRepository; +use Ushahidi\Core\Contracts\Authorizer; +use Ushahidi\Core\Contracts\Entity; +use Ushahidi\Core\Contracts\Formatter; +use Ushahidi\Core\Contracts\Repository\ReadRepository; class ReadUsecaseSpec extends ObjectBehavior { diff --git a/tests/spec/Core/Usecase/SearchUsecaseSpec.php b/tests/spec/Core/Usecase/SearchUsecaseSpec.php index f594a643d3..7ddde5bca8 100644 --- a/tests/spec/Core/Usecase/SearchUsecaseSpec.php +++ b/tests/spec/Core/Usecase/SearchUsecaseSpec.php @@ -4,12 +4,12 @@ use Prophecy\Argument; use PhpSpec\ObjectBehavior; -use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Authorizer; +use Ushahidi\Core\Contracts\Entity; +use Ushahidi\Core\Contracts\Authorizer; use Ushahidi\Core\Tool\SearchData; -use Ushahidi\Contracts\CollectionFormatter; +use Ushahidi\Core\Contracts\CollectionFormatter; use Illuminate\Contracts\Translation\Translator; -use Ushahidi\Contracts\Repository\SearchRepository; +use Ushahidi\Core\Contracts\Repository\SearchRepository; class SearchUsecaseSpec extends ObjectBehavior { diff --git a/tests/spec/Core/Usecase/UpdateUsecaseSpec.php b/tests/spec/Core/Usecase/UpdateUsecaseSpec.php index 34b8e0389e..bd21604af4 100644 --- a/tests/spec/Core/Usecase/UpdateUsecaseSpec.php +++ b/tests/spec/Core/Usecase/UpdateUsecaseSpec.php @@ -5,11 +5,11 @@ use Illuminate\Contracts\Translation\Translator; use PhpSpec\ObjectBehavior; use Prophecy\Argument; -use Ushahidi\Contracts\Authorizer; -use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Formatter; -use Ushahidi\Contracts\Repository\UpdateRepository; -use Ushahidi\Contracts\Validator; +use Ushahidi\Core\Contracts\Authorizer; +use Ushahidi\Core\Contracts\Entity; +use Ushahidi\Core\Contracts\Formatter; +use Ushahidi\Core\Contracts\Repository\UpdateRepository; +use Ushahidi\Core\Contracts\Validator; class UpdateUsecaseSpec extends ObjectBehavior { diff --git a/tests/spec/Core/Usecase/User/LoginUserSpec.php b/tests/spec/Core/Usecase/User/LoginUserSpec.php index fe2c308d28..b3546d55dc 100644 --- a/tests/spec/Core/Usecase/User/LoginUserSpec.php +++ b/tests/spec/Core/Usecase/User/LoginUserSpec.php @@ -3,13 +3,13 @@ namespace spec\Ushahidi\Core\Usecase\User; use PhpSpec\ObjectBehavior; -use Ushahidi\Contracts\Authorizer; -use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Formatter; -use Ushahidi\Contracts\RateLimiter; +use Ushahidi\Core\Contracts\Authorizer; +use Ushahidi\Core\Contracts\Entity; +use Ushahidi\Core\Contracts\Formatter; +use Ushahidi\Core\Contracts\RateLimiter; use Ushahidi\Core\Entity\UserRepository; -use Ushahidi\Contracts\Repository\ReadRepository; -use Ushahidi\Contracts\PasswordAuthenticator; +use Ushahidi\Core\Contracts\Repository\ReadRepository; +use Ushahidi\Core\Contracts\PasswordAuthenticator; class LoginUserSpec extends ObjectBehavior { From 0b02f184d48d50503d0b8a4259c90520857fc092 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Thu, 30 Mar 2023 21:53:28 +0100 Subject: [PATCH 17/75] chore: rename Acl interface to AccessControl --- src/Ushahidi/Core/Concerns/Acl.php | 4 ++-- src/Ushahidi/Core/Contracts/{Acl.php => AccessControl.php} | 2 +- src/Ushahidi/Core/Tool/Acl.php | 7 +++---- src/Ushahidi/Core/Tool/Authorizer/ApiKeyAuthorizer.php | 4 ++-- src/Ushahidi/Core/Tool/Authorizer/CSVAuthorizer.php | 4 ++-- src/Ushahidi/Core/Tool/Authorizer/ConfigAuthorizer.php | 4 ++-- .../Core/Tool/Authorizer/CountryCodeAuthorizer.php | 4 ++-- .../Core/Tool/Authorizer/DataProviderAuthorizer.php | 4 ++-- src/Ushahidi/Core/Tool/Authorizer/ExportJobAuthorizer.php | 4 ++-- src/Ushahidi/Core/Tool/Authorizer/ExternalAuthorizer.php | 4 ++-- src/Ushahidi/Core/Tool/Authorizer/FormAuthorizer.php | 4 ++-- src/Ushahidi/Core/Tool/Authorizer/FormStatsAuthorizer.php | 4 ++-- src/Ushahidi/Core/Tool/Authorizer/HXLAuthorizer.php | 4 ++-- .../Core/Tool/Authorizer/HXLMetadataAuthorizer.php | 4 ++-- src/Ushahidi/Core/Tool/Authorizer/MessageAuthorizer.php | 4 ++-- src/Ushahidi/Core/Tool/Authorizer/PostAuthorizer.php | 4 ++-- src/Ushahidi/Core/Tool/Authorizer/SetAuthorizer.php | 4 ++-- src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php | 4 ++-- src/Ushahidi/Core/Tool/Authorizer/UserAuthorizer.php | 4 ++-- .../Core/Tool/Authorizer/UserSettingAuthorizer.php | 4 ++-- src/Ushahidi/Core/Tool/Permissions/FormPermissions.php | 4 ++-- src/Ushahidi/Core/Tool/Permissions/PostPermissions.php | 4 ++-- src/Ushahidi/Modules/V3/Validator/Post/Create.php | 4 ++-- src/Ushahidi/Modules/V5/Policies/CategoryPolicy.php | 4 ++-- src/Ushahidi/Modules/V5/Policies/PostPolicy.php | 4 ++-- src/Ushahidi/Modules/V5/Policies/SurveyPolicy.php | 4 ++-- src/Ushahidi/Modules/V5/Policies/UserPolicy.php | 4 ++-- src/Ushahidi/Modules/V5/Policies/UserSettingPolicy.php | 4 ++-- 28 files changed, 56 insertions(+), 57 deletions(-) rename src/Ushahidi/Core/Contracts/{Acl.php => AccessControl.php} (95%) diff --git a/src/Ushahidi/Core/Concerns/Acl.php b/src/Ushahidi/Core/Concerns/Acl.php index f673038e7f..66c16a38de 100644 --- a/src/Ushahidi/Core/Concerns/Acl.php +++ b/src/Ushahidi/Core/Concerns/Acl.php @@ -13,13 +13,13 @@ namespace Ushahidi\Core\Concerns; -use Ushahidi\Core\Contracts\Acl as AclInterface; +use Ushahidi\Core\Contracts\AccessControl; trait Acl { public $acl; - public function setAcl(AclInterface $acl) + public function setAcl(AccessControl $acl) { $this->acl = $acl; } diff --git a/src/Ushahidi/Core/Contracts/Acl.php b/src/Ushahidi/Core/Contracts/AccessControl.php similarity index 95% rename from src/Ushahidi/Core/Contracts/Acl.php rename to src/Ushahidi/Core/Contracts/AccessControl.php index 2a96fab9ad..2f1290fd5c 100644 --- a/src/Ushahidi/Core/Contracts/Acl.php +++ b/src/Ushahidi/Core/Contracts/AccessControl.php @@ -11,7 +11,7 @@ namespace Ushahidi\Core\Contracts; -interface Acl +interface AccessControl { /** * Check if user has permissions diff --git a/src/Ushahidi/Core/Tool/Acl.php b/src/Ushahidi/Core/Tool/Acl.php index f9d7fb4c00..fb5fc1a02a 100644 --- a/src/Ushahidi/Core/Tool/Acl.php +++ b/src/Ushahidi/Core/Tool/Acl.php @@ -11,13 +11,12 @@ namespace Ushahidi\Core\Tool; -use Ushahidi\Core\Entity\Permission; -use Ushahidi\Core\Contracts\Acl as AclInterface; -use Ushahidi\Core\Entity\User as Entity; +use Ushahidi\Core\Contracts\AccessControl; use Ushahidi\Core\Facade\Features; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Core\Entity\RoleRepository; -class Acl implements AclInterface +class Acl implements AccessControl { protected $role_repo; diff --git a/src/Ushahidi/Core/Tool/Authorizer/ApiKeyAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/ApiKeyAuthorizer.php index 204a715535..66e4107f3c 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/ApiKeyAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/ApiKeyAuthorizer.php @@ -18,7 +18,7 @@ use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\PrivateDeployment; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; class ApiKeyAuthorizer implements Authorizer { @@ -35,7 +35,7 @@ class ApiKeyAuthorizer implements Authorizer use PrivateDeployment; // Check that the user has the necessary permissions - use AccessControlList; + use Acl; /* Authorizer */ public function isAllowed(Entity $entity, $privilege) diff --git a/src/Ushahidi/Core/Tool/Authorizer/CSVAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/CSVAuthorizer.php index 6bf0c436bd..3a81f61788 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/CSVAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/CSVAuthorizer.php @@ -18,7 +18,7 @@ use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\PrivAccess; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; use Ushahidi\Core\Facade\Features; class CSVAuthorizer implements Authorizer @@ -33,7 +33,7 @@ class CSVAuthorizer implements Authorizer // Check that the user has the necessary permissions // if roles are available for this deployment. - use AccessControlList; + use Acl; /* Authorizer */ public function isAllowed(Entity $entity, $privilege) diff --git a/src/Ushahidi/Core/Tool/Authorizer/ConfigAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/ConfigAuthorizer.php index d0af6de088..82ec35adca 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/ConfigAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/ConfigAuthorizer.php @@ -17,7 +17,7 @@ use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\PrivAccess; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; // The `ConfigAuthorizer` class is responsible for access checks on `Config` Entities class ConfigAuthorizer implements Authorizer @@ -33,7 +33,7 @@ class ConfigAuthorizer implements Authorizer // Check that the user has the necessary permissions // if roles are available for this deployment. - use AccessControlList; + use Acl; /** * Public config groups diff --git a/src/Ushahidi/Core/Tool/Authorizer/CountryCodeAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/CountryCodeAuthorizer.php index e8e24236ff..3b13a09da2 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/CountryCodeAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/CountryCodeAuthorizer.php @@ -17,7 +17,7 @@ use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\PrivAccess; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; class CountryCodeAuthorizer implements Authorizer { @@ -32,7 +32,7 @@ class CountryCodeAuthorizer implements Authorizer // Check that the user has the necessary permissions // if roles are available for this deployment. - use AccessControlList; + use Acl; /* Authorizer */ public function isAllowed(Entity $entity, $privilege) diff --git a/src/Ushahidi/Core/Tool/Authorizer/DataProviderAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/DataProviderAuthorizer.php index 95a02f93a1..b5c684dd4d 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/DataProviderAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/DataProviderAuthorizer.php @@ -17,7 +17,7 @@ use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\PrivAccess; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; // The `DataProviderAuthorizer` class is responsible for access checks on `DataProvider` Entities class DataProviderAuthorizer implements Authorizer @@ -33,7 +33,7 @@ class DataProviderAuthorizer implements Authorizer // Check that the user has the necessary permissions // if roles are available for this deployment. - use AccessControlList; + use Acl; // Authorizer public function isAllowed(Entity $entity, $privilege) diff --git a/src/Ushahidi/Core/Tool/Authorizer/ExportJobAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/ExportJobAuthorizer.php index f64ac2c61a..d00c123534 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/ExportJobAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/ExportJobAuthorizer.php @@ -19,7 +19,7 @@ use Ushahidi\Core\Entity\Permission; use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\PrivateDeployment; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; class ExportJobAuthorizer implements Authorizer { @@ -40,7 +40,7 @@ class ExportJobAuthorizer implements Authorizer // Check that the user has the necessary permissions // if roles are available for this deployment. - use AccessControlList; + use Acl; /* Authorizer */ diff --git a/src/Ushahidi/Core/Tool/Authorizer/ExternalAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/ExternalAuthorizer.php index ffb6648d3b..35804b502c 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/ExternalAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/ExternalAuthorizer.php @@ -18,7 +18,7 @@ use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\PrivateDeployment; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; class ExternalAuthorizer implements Authorizer { @@ -39,7 +39,7 @@ class ExternalAuthorizer implements Authorizer // Check that the user has the necessary permissions // if roles are available for this deployment. - use AccessControlList; + use Acl; /* Authorizer */ diff --git a/src/Ushahidi/Core/Tool/Authorizer/FormAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/FormAuthorizer.php index 1e952d5919..ed3d75d764 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/FormAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/FormAuthorizer.php @@ -19,7 +19,7 @@ use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\ParentAccess; use Ushahidi\Core\Concerns\PrivateDeployment; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; use Ushahidi\Core\Entity\FormRepository; // The `FormAuthorizer` class is responsible for access checks on `Forms` @@ -40,7 +40,7 @@ class FormAuthorizer implements Authorizer use PrivateDeployment; // Check that the user has the necessary permissions - use AccessControlList; + use Acl; // It requires a `FormRepository` to load parent posts too. protected $form_repo; diff --git a/src/Ushahidi/Core/Tool/Authorizer/FormStatsAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/FormStatsAuthorizer.php index 4037f6eb03..ffcad1ce29 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/FormStatsAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/FormStatsAuthorizer.php @@ -18,7 +18,7 @@ use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\PrivateDeployment; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; // The `FormStageAuthorizer` class is responsible for access checks on `Forms` class FormStatsAuthorizer implements Authorizer @@ -38,7 +38,7 @@ class FormStatsAuthorizer implements Authorizer use PrivateDeployment; // Check that the user has the necessary permissions - use AccessControlList; + use Acl; /* Authorizer */ public function isAllowed(Entity $entity, $privilege) diff --git a/src/Ushahidi/Core/Tool/Authorizer/HXLAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/HXLAuthorizer.php index 2d925ee55f..0e14a146c1 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/HXLAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/HXLAuthorizer.php @@ -17,7 +17,7 @@ use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\PrivAccess; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; // The `HXLAuthorizer` class is responsible for access checks on `HXL` Entities class HXLAuthorizer implements Authorizer @@ -33,7 +33,7 @@ class HXLAuthorizer implements Authorizer // Check that the user has the necessary permissions // if roles are available for this deployment. - use AccessControlList; + use Acl; /* Authorizer */ diff --git a/src/Ushahidi/Core/Tool/Authorizer/HXLMetadataAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/HXLMetadataAuthorizer.php index 99e55d4780..c9d27e3a42 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/HXLMetadataAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/HXLMetadataAuthorizer.php @@ -16,7 +16,7 @@ use Ushahidi\Core\Concerns\OwnerAccess; use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\PrivAccess; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; // The `HXLMetadataAuthorizer` class is responsible for access checks on `HXLMetadata` Entity class HXLMetadataAuthorizer extends HXLAuthorizer @@ -32,7 +32,7 @@ class HXLMetadataAuthorizer extends HXLAuthorizer // Check that the user has the necessary permissions // if roles are available for this deployment. - use AccessControlList; + use Acl; use OwnerAccess; diff --git a/src/Ushahidi/Core/Tool/Authorizer/MessageAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/MessageAuthorizer.php index 682198e77b..d8e9368e2f 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/MessageAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/MessageAuthorizer.php @@ -19,7 +19,7 @@ use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\PrivateDeployment; use Ushahidi\Core\Entity\Permission; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; // The `MessageAuthorizer` class is responsible for access checks on `Message` class MessageAuthorizer implements Authorizer @@ -40,7 +40,7 @@ class MessageAuthorizer implements Authorizer // Check that the user has the necessary permissions // if roles are available for this deployment. - use AccessControlList; + use Acl; /* Authorizer */ public function isAllowed(Entity $entity, $privilege) diff --git a/src/Ushahidi/Core/Tool/Authorizer/PostAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/PostAuthorizer.php index 037c33cc16..5ed70e1899 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/PostAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/PostAuthorizer.php @@ -20,7 +20,7 @@ use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\ParentAccess; use Ushahidi\Core\Concerns\PrivateDeployment; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; use Ushahidi\Core\Entity\FormRepository; use Ushahidi\Core\Entity\PostRepository; @@ -44,7 +44,7 @@ class PostAuthorizer implements Authorizer // Check that the user has the necessary permissions // if roles are available for this deployment. - use AccessControlList; + use Acl; /** * Get a list of all possible privilges. diff --git a/src/Ushahidi/Core/Tool/Authorizer/SetAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/SetAuthorizer.php index b40bb239e7..a8d147f95f 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/SetAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/SetAuthorizer.php @@ -20,7 +20,7 @@ use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\PrivateDeployment; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; // The `SetAuthorizer` class is responsible for access checks on `Sets` class SetAuthorizer implements Authorizer @@ -41,7 +41,7 @@ class SetAuthorizer implements Authorizer // Check that the user has the necessary permissions // if roles are available for this deployment. - use AccessControlList; + use Acl; protected function isVisibleToUser(Set $entity, $user) { diff --git a/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php index f8136a0d5c..f69b370b71 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php @@ -20,7 +20,7 @@ use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\ParentAccess; use Ushahidi\Core\Concerns\PrivateDeployment; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; // The `TagAuthorizer` class is responsible for access checks on `Tags` class TagAuthorizer implements Authorizer @@ -42,7 +42,7 @@ class TagAuthorizer implements Authorizer // Check that the user has the necessary permissions // if roles are available for this deployment. - use AccessControlList; + use Acl; // It requires a `TagRepository` to load parents too. protected $tag_repo; diff --git a/src/Ushahidi/Core/Tool/Authorizer/UserAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/UserAuthorizer.php index 6036f5174c..a8f4d68d02 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/UserAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/UserAuthorizer.php @@ -19,7 +19,7 @@ use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\PrivateDeployment; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; // The `UserAuthorizer` class is responsible for access checks on `Users` class UserAuthorizer implements Authorizer @@ -37,7 +37,7 @@ class UserAuthorizer implements Authorizer use PrivateDeployment; // Check that the user has the necessary permissions - use AccessControlList; + use Acl; /** * Get a list of all possible privilges. diff --git a/src/Ushahidi/Core/Tool/Authorizer/UserSettingAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/UserSettingAuthorizer.php index 4642022df6..80fed0c482 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/UserSettingAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/UserSettingAuthorizer.php @@ -20,7 +20,7 @@ use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\OwnerAccess; use Ushahidi\Core\Concerns\PrivateDeployment; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; // The `UserAuthorizer` class is responsible for access checks on `Users` class UserSettingAuthorizer implements Authorizer @@ -38,7 +38,7 @@ class UserSettingAuthorizer implements Authorizer use PrivateDeployment; // Check that the user has the necessary permissions - use AccessControlList; + use Acl; /** * Get a list of all possible privilges. diff --git a/src/Ushahidi/Core/Tool/Permissions/FormPermissions.php b/src/Ushahidi/Core/Tool/Permissions/FormPermissions.php index 241a8b4475..1283a62a5c 100644 --- a/src/Ushahidi/Core/Tool/Permissions/FormPermissions.php +++ b/src/Ushahidi/Core/Tool/Permissions/FormPermissions.php @@ -13,12 +13,12 @@ use Ushahidi\Core\Contracts\Entity; use Ushahidi\Core\Entity\Permission; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; use Ushahidi\Core\Concerns\AdminAccess; class FormPermissions { - use AccessControlList; + use Acl; use AdminAccess; /** diff --git a/src/Ushahidi/Core/Tool/Permissions/PostPermissions.php b/src/Ushahidi/Core/Tool/Permissions/PostPermissions.php index e5a752ed7d..0772bd6319 100644 --- a/src/Ushahidi/Core/Tool/Permissions/PostPermissions.php +++ b/src/Ushahidi/Core/Tool/Permissions/PostPermissions.php @@ -14,12 +14,12 @@ use Ushahidi\Core\Contracts\Entity; use Ushahidi\Core\Entity\Permission; use Ushahidi\Core\Concerns\AdminAccess; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; use Ushahidi\Core\Entity\FormRepository; class PostPermissions { - use AccessControlList; + use Acl; use AdminAccess; /** diff --git a/src/Ushahidi/Modules/V3/Validator/Post/Create.php b/src/Ushahidi/Modules/V3/Validator/Post/Create.php index 3886782cb6..1eaeb1f439 100644 --- a/src/Ushahidi/Modules/V3/Validator/Post/Create.php +++ b/src/Ushahidi/Modules/V3/Validator/Post/Create.php @@ -16,7 +16,7 @@ use Ushahidi\Core\Concerns\{ AdminAccess, UserContext, - Acl as AccessControlList + Acl as Acl }; use Ushahidi\Core\Entity\Permission; use Ushahidi\Core\Entity\TagRepository; @@ -34,7 +34,7 @@ class Create extends LegacyValidator use UserContext; // Provides `acl` - use AccessControlList; + use Acl; // Checks if user is Admin use AdminAccess; diff --git a/src/Ushahidi/Modules/V5/Policies/CategoryPolicy.php b/src/Ushahidi/Modules/V5/Policies/CategoryPolicy.php index 06b550092e..81d6073d74 100644 --- a/src/Ushahidi/Modules/V5/Policies/CategoryPolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/CategoryPolicy.php @@ -11,7 +11,7 @@ use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\PrivateDeployment; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; class CategoryPolicy { @@ -30,7 +30,7 @@ class CategoryPolicy use PrivateDeployment; // Check that the user has the necessary permissions - use AccessControlList; + use Acl; protected $user; diff --git a/src/Ushahidi/Modules/V5/Policies/PostPolicy.php b/src/Ushahidi/Modules/V5/Policies/PostPolicy.php index 60ce755bcc..e27cdc3190 100644 --- a/src/Ushahidi/Modules/V5/Policies/PostPolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/PostPolicy.php @@ -12,7 +12,7 @@ use Ushahidi\Core\Concerns\ParentAccess; use App\Auth\GenericUser as User; use Ushahidi\Modules\V5\Models\Survey; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; use Ushahidi\Core\Concerns\PrivateDeployment; use Ushahidi\Core\Contracts\Entity as EntityContract; @@ -33,7 +33,7 @@ class PostPolicy use PrivateDeployment; // Check that the user has the necessary permissions - use AccessControlList; + use Acl; use ParentAccess; use OwnerAccess; diff --git a/src/Ushahidi/Modules/V5/Policies/SurveyPolicy.php b/src/Ushahidi/Modules/V5/Policies/SurveyPolicy.php index 6de2c3878e..65a798b8f9 100644 --- a/src/Ushahidi/Modules/V5/Policies/SurveyPolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/SurveyPolicy.php @@ -10,7 +10,7 @@ use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\PrivateDeployment; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; class SurveyPolicy { @@ -29,7 +29,7 @@ class SurveyPolicy use PrivateDeployment; // Check that the user has the necessary permissions - use AccessControlList; + use Acl; protected $user; diff --git a/src/Ushahidi/Modules/V5/Policies/UserPolicy.php b/src/Ushahidi/Modules/V5/Policies/UserPolicy.php index fce4b46ba4..1eca627fa3 100644 --- a/src/Ushahidi/Modules/V5/Policies/UserPolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/UserPolicy.php @@ -9,7 +9,7 @@ use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\PrivateDeployment; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; use Ushahidi\Core\Tool\Acl; class UserPolicy @@ -28,7 +28,7 @@ class UserPolicy use PrivateDeployment; // Check that the user has the necessary permissions - use AccessControlList; + use Acl; protected $user; diff --git a/src/Ushahidi/Modules/V5/Policies/UserSettingPolicy.php b/src/Ushahidi/Modules/V5/Policies/UserSettingPolicy.php index 726ad89e21..5b2745d820 100644 --- a/src/Ushahidi/Modules/V5/Policies/UserSettingPolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/UserSettingPolicy.php @@ -9,7 +9,7 @@ use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\PrivateDeployment; use Ushahidi\Core\Concerns\OwnerAccess; -use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Concerns\Acl; class UserSettingPolicy { @@ -27,7 +27,7 @@ class UserSettingPolicy use PrivateDeployment; // Check that the user has the necessary permissions - use AccessControlList; + use Acl; use OwnerAccess; From c3bcc8543c68a398626d65afddac301cfb81ba3b Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Sat, 1 Apr 2023 22:05:58 +0100 Subject: [PATCH 18/75] chore: update gitignore --- .gitignore | 1 + .phpunit.result.cache | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 .phpunit.result.cache diff --git a/.gitignore b/.gitignore index a431e14034..2c38c451e2 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,7 @@ Puppetfile.lock .tmp/* *.vscode .env +.phpunit.result.cache phpunit.xml phpspec.yml phinx.yml diff --git a/.phpunit.result.cache b/.phpunit.result.cache deleted file mode 100644 index c9b6be1160..0000000000 --- a/.phpunit.result.cache +++ /dev/null @@ -1 +0,0 @@ -{"version":1,"defects":[],"times":{"Ushahidi\\Tests\\Unit\\App\\ExternalServices\\HDXInterfaceTest::testGetDatasetIDByName":0.111,"Ushahidi\\Tests\\Unit\\App\\ExternalServices\\HDXInterfaceTest::testSlugIsFormatted":0.079,"Ushahidi\\Tests\\Unit\\App\\ExternalServices\\HDXInterfaceTest::testGetAllOrganizationsForUser":0.078,"Ushahidi\\Tests\\Unit\\App\\Http\\Middleware\\SetCacheHeadersIfAuthTest::testGuestMinimalCache":0.09,"Ushahidi\\Tests\\Unit\\App\\Http\\Middleware\\SetCacheHeadersIfAuthTest::testGuestCacheDisabled":0.077,"Ushahidi\\Tests\\Unit\\App\\Http\\Middleware\\SetCacheHeadersIfAuthTest::testAuthDoesntCache":0.081,"Ushahidi\\Tests\\Unit\\App\\Http\\Middleware\\SetCacheHeadersIfAuthTest::testAuthVary":0.093,"Ushahidi\\Tests\\Unit\\App\\Http\\Middleware\\SignatureAuthTest::testValidSignature":0.075,"Ushahidi\\Tests\\Unit\\App\\Http\\Middleware\\SignatureAuthTest::testInvalidSignature":0.091,"Ushahidi\\Tests\\Unit\\App\\PlatformVerifier\\DatabaseTest::testConnectionErrorHasExplainer":0.178,"Ushahidi\\Tests\\Unit\\App\\PlatformVerifier\\DatabaseTest::testUncoveredErrorsResponds":0.114,"Ushahidi\\Tests\\Unit\\App\\PlatformVerifier\\DatabaseTest::testConnectionSuccessMessage":0.089,"Ushahidi\\Tests\\Unit\\App\\PlatformVerifier\\EnvTest::testMissingEnvFileError":0.082,"Ushahidi\\Tests\\Unit\\App\\PlatformVerifier\\EnvTest::testSuccessEnvKeys":0.09,"Ushahidi\\Tests\\Unit\\App\\PlatformVerifier\\EnvTest::testMissingEnvVarsError":0.083,"Ushahidi\\Tests\\Unit\\App\\PlatformVerifier\\EnvTest::testMultipleMissingEnvVarsError":0.115,"Ushahidi\\Tests\\Unit\\App\\Tools\\MailerTest::testSend":0.122,"Ushahidi\\Tests\\Unit\\Bus\\Command\\CommandBusTest::testShouldFailWhenWrongActionIsProvidedToRegister":0.009,"Ushahidi\\Tests\\Unit\\Bus\\Command\\CommandBusTest::testShouldFailWhenProvidedHandlerIsIncorrect":0.001,"Ushahidi\\Tests\\Unit\\Bus\\Command\\CommandBusTest::testShouldFailWhenWrongCommandIsNotRegistered":0,"Ushahidi\\Tests\\Unit\\Bus\\Command\\CommandBusTest::testShouldSucceedWhenCommandHasItsHandler":0.002,"Tests\\Unit\\Bus\\Handler\\Query\\FetchCountryCodeByIdQueryHandlerTest::testShouldReturnCountryCode":0.003,"Tests\\Unit\\Bus\\Handler\\Query\\FetchCountryCodeByIdQueryHandlerTest::testShouldThrowExceptionWhenProvidedActionIsNotSupported":0.001,"Tests\\Unit\\Bus\\Handler\\Query\\FetchCountryCodeByIdQueryHandlerTest::testShouldThrowExceptionWhenCountryCodeIsNotFound":0,"Tests\\Unit\\Bus\\Handler\\Query\\FetchCountryCodeQueryHandlerTest::testShouldReturnCountryCodeCollection":0.088,"Ushahidi\\Tests\\Unit\\Bus\\Query\\QueryBusTest::testShouldFailWhenWrongActionIsProvidedToRegister":0.001,"Ushahidi\\Tests\\Unit\\Bus\\Query\\QueryBusTest::testShouldFailWhenProvidedHandlerIsIncorrect":0,"Ushahidi\\Tests\\Unit\\Bus\\Query\\QueryBusTest::testShouldFailWhenWrongQueryIsNotRegistered":0,"Ushahidi\\Tests\\Unit\\Bus\\Query\\QueryBusTest::testShouldSucceedWhenQueryHasItsHandler":0.001,"ExtendableTest::testExtendingExtendableClass":0.075,"ExtendableTest::testSettingDeclaredPropertyOnClass":0.09,"ExtendableTest::testSettingDeclaredPropertyOnBehavior":0.079,"ExtendableTest::testDynamicPropertyOnClass":0.071,"ExtendableTest::testDynamicallyImplementingClass":0.072,"ExtendableTest::testDynamicallyExtendingClass":0.073,"ExtendableTest::testDynamicMethodOnClass":0.069,"ExtendableTest::testDynamicExtendAndMethodOnClass":0.071,"ExtendableTest::testDynamicClosureOnClass":0.075,"ExtendableTest::testDynamicCallableOnClass":0.068,"ExtendableTest::testCallingStaticMethod":0.078,"ExtendableTest::testCallingUndefinedStaticMethod":0.082,"ExtendableTest::testAccessingProtectedMethod":0.074,"ExtendableTest::testAccessingProtectedStaticMethod":0.07,"ExtendableTest::testInvalidImplementValue":0.072,"ExtendableTest::testSoftImplementFake":0.078,"ExtendableTest::testSoftImplementReal":0.072,"ExtendableTest::testSoftImplementCombo":0.069,"ExtendableTest::testDotNotation":0.071,"ExtendableTest::testMethodExists":0.072,"ExtendableTest::testMethodNotExists":0.072,"ExtendableTest::testDynamicMethodExists":0.079,"ExtendableTest::testGetClassMethods":0.097,"ExtendableTest::testIsInstanceOf":0.078,"ExtensionTest::testExtendingBehavior":0.073,"Ushahidi\\Tests\\Unit\\Core\\Ohanzee\\Repositories\\ContactRepositoryTest::testCreateMany":0.398,"Ushahidi\\Tests\\Unit\\Core\\Ohanzee\\Repositories\\MessageRepositoryTest::testCreateMany":0.187,"Ushahidi\\Tests\\Unit\\Core\\Ohanzee\\Repositories\\PostRepositoryTest::testCreateMany":0.503,"Ushahidi\\Tests\\Unit\\Core\\Ohanzee\\Repositories\\PostRepositoryTest::testCreateManyWithMedia":0.19,"Ushahidi\\Tests\\Unit\\Core\\Ohanzee\\Repositories\\PostRepositoryTest::testSetSearchParamsLimitedUnprivileged":0.151,"Ushahidi\\Tests\\Unit\\Core\\Ohanzee\\Repositories\\PostRepositoryTest::testSetSearchParamsLimitedPrivileged":0.099,"Ushahidi\\Tests\\Unit\\Core\\Ohanzee\\Repositories\\PostRepositoryTest::testSetSearchParamsNonlimitedUnprivileged":0.089,"Ushahidi\\Tests\\Unit\\Core\\Ohanzee\\Repositories\\PostRepositoryTest::testSetSearchParamsNonlimitedPrivileged":0.097,"Ushahidi\\Tests\\Unit\\Core\\Ohanzee\\Repositories\\PostValueRepositoryTest::testGet":0.004,"Ushahidi\\Tests\\Unit\\Core\\Ohanzee\\Repositories\\PostValueRepositoryTest::testGetAllForPost":0.001,"Ushahidi\\Tests\\Unit\\Core\\Ohanzee\\Repositories\\TagRepositoryTest::testCreateMany":0.156,"Ushahidi\\Tests\\Unit\\Core\\Ohanzee\\Repositories\\UserRepositoryTest::testGetResetToken":0.089,"Ushahidi\\Tests\\Unit\\Core\\Ohanzee\\Repositories\\UserRepositoryTest::testCreateMany":0.343,"Ushahidi\\Tests\\Unit\\Ohanzee\\Repositories\\StatefulDataTest::testSetStatePost":0.002,"Ushahidi\\Tests\\Unit\\Core\\Tool\\VerifierTest::testValidSignature":0.077,"Ushahidi\\Tests\\Unit\\Core\\Tool\\VerifierTest::testValidSignatureWithEmptyPayload":0.074,"Ushahidi\\Tests\\Unit\\Core\\Tool\\VerifierTest::testInvalidApiKeySignature":0.075,"Ushahidi\\Tests\\Unit\\Core\\Tool\\VerifierTest::testInvalidSecretSignature":0.074,"Ushahidi\\Tests\\Unit\\Core\\Tool\\VerifierTest::testInvalidDataSignature":0.07,"Ushahidi\\Tests\\Unit\\Core\\Tool\\VerifierTest::testCheckSignature":0.07,"Ushahidi\\Tests\\Unit\\Core\\Tool\\VerifierTest::testCheckApiKey":0.071,"Ushahidi\\Tests\\Unit\\Core\\Traits\\DataTransformerTest::testTransformDate":0.001,"Ushahidi\\Tests\\Unit\\Core\\Usecase\\ExportJob\\PostCountTest::testCount":0.075,"Ushahidi\\Tests\\Unit\\Core\\Usecase\\Post\\ExportTest::testJobIsUpdated":0.378,"Ushahidi\\Tests\\Unit\\Core\\Usecase\\ReceiveMessageTest::testReceiveMessage":0.086,"Ushahidi\\Tests\\Unit\\DataSource\\Console\\IncomingCommandTest::testIncoming":0.168,"Ushahidi\\Tests\\Unit\\DataSource\\Console\\IncomingCommandTest::testIncomingAll":0.108,"Ushahidi\\Tests\\Unit\\DataSource\\Console\\IncomingCommandTest::testIncomingTwitter":0.099,"Ushahidi\\Tests\\Unit\\DataSource\\Console\\ListCommandTest::testList":0.101,"Ushahidi\\Tests\\Unit\\DataSource\\Console\\ListCommandTest::testListAll":0.099,"Ushahidi\\Tests\\Unit\\DataSource\\Console\\OutgoingCommandTest::testOutgoing":0.106,"Ushahidi\\Tests\\Unit\\DataSource\\Console\\OutgoingCommandTest::testOutgoingAll":0.105,"Ushahidi\\Tests\\Unit\\DataSource\\Console\\OutgoingCommandTest::testOutgoingNexmo":0.098,"Ushahidi\\Tests\\Unit\\DataSource\\DataSourceManagerTest::testGetSource":0.075,"Ushahidi\\Tests\\Unit\\DataSource\\DataSourceManagerTest::testEnabledSources":0.071,"Ushahidi\\Tests\\Unit\\DataSource\\DataSourceManagerTest::testAvailableSources":0.071,"Ushahidi\\Tests\\Unit\\DataSource\\DataSourceManagerTest::testCustomSources":0.073,"Ushahidi\\Tests\\Unit\\DataSource\\DataSourceManagerTest::testGetSourceForType":0.072,"Ushahidi\\Tests\\Unit\\DataSource\\DataSourceStorageTest::testReceive":0.075,"Ushahidi\\Tests\\Unit\\DataSource\\DataSourceStorageTest::testFailedReceive":0.077,"Ushahidi\\Tests\\Unit\\DataSource\\DataSourceStorageTest::testGetPendingMessages":0.07,"Ushahidi\\Tests\\Unit\\DataSource\\DataSourceStorageTest::testGetPendingMessagesByType":0.083,"Ushahidi\\Tests\\Unit\\DataSource\\DataSourceStorageTest::testUpdateMessageStatus":0.08,"Ushahidi\\Tests\\Unit\\DataSource\\EmailDataSourceTest::testSend":0.074,"Ushahidi\\Tests\\Unit\\DataSource\\EmailDataSourceTest::testFetch":0.082,"Ushahidi\\Tests\\Unit\\DataSource\\FrontlineSMSDataSourceTest::testSendWithoutConfig":0.074,"Ushahidi\\Tests\\Unit\\DataSource\\FrontlineSMSDataSourceTest::testSend":0.072,"Ushahidi\\Tests\\Unit\\DataSource\\FrontlineSMSDataSourceTest::testSendFails":0.082,"Ushahidi\\Tests\\Unit\\DataSource\\FrontlineSMSDataSourceTest::testVerifySecret":0.074,"Ushahidi\\Tests\\Unit\\DataSource\\NexmoDataSourceTest::testSendWithoutConfig":0.074,"Ushahidi\\Tests\\Unit\\DataSource\\NexmoDataSourceTest::testSend":0.089,"Ushahidi\\Tests\\Unit\\DataSource\\NexmoDataSourceTest::testSendFails":0.079,"Ushahidi\\Tests\\Unit\\DataSource\\SMSSyncDataSourceTest::testVerifySecret":0.071,"Ushahidi\\Tests\\Unit\\DataSource\\TwilioDataSourceTest::testSendWithoutConfig":0.073,"Ushahidi\\Tests\\Unit\\DataSource\\TwilioDataSourceTest::testSend":0.087,"Ushahidi\\Tests\\Unit\\DataSource\\TwilioDataSourceTest::testSendFails":0.08,"Ushahidi\\Tests\\Unit\\DataSource\\TwilioDataSourceTest::testVerifySid":0.078,"Ushahidi\\Tests\\Unit\\DataSource\\TwilioDataSourceTest::testGetSmsAutoResponse":0.083,"Ushahidi\\Tests\\Unit\\DataSource\\TwitterDataSourceTest::testSendWithoutConfig":0.083,"Ushahidi\\Tests\\Unit\\DataSource\\TwitterDataSourceTest::testSend":0.072,"Ushahidi\\Tests\\Unit\\DataSource\\TwitterDataSourceTest::testSendFailed":0.075,"Ushahidi\\Tests\\Unit\\DataSource\\TwitterDataSourceTest::testFetch":0.075,"Ushahidi\\Tests\\Unit\\Modules\\V2\\ImporterTest::testImporter":0.148,"Ushahidi\\Tests\\Unit\\Modules\\V2\\Mappers\\CategoryTagMapperTest::testMap":0.072,"Ushahidi\\Tests\\Unit\\Modules\\V2\\Mappers\\CategoryTagMapperTest::testMapWithParent":0.076,"Ushahidi\\Tests\\Unit\\Modules\\V2\\Mappers\\CategoryTagMapperTest::testMapVisiblity":0.075,"Ushahidi\\Tests\\Unit\\Modules\\V2\\Mappers\\FormFieldAttributeMapperTest::testMap with data set \"datefield\"":0.074,"Ushahidi\\Tests\\Unit\\Modules\\V2\\Mappers\\FormFieldAttributeMapperTest::testMap with data set \"textfield\"":0.072,"Ushahidi\\Tests\\Unit\\Modules\\V2\\Mappers\\FormFieldAttributeMapperTest::testMap with data set \"checkboxfield\"":0.072,"Ushahidi\\Tests\\Unit\\Modules\\V2\\Mappers\\FormFieldAttributeMapperTest::testMap with data set \"radio\"":0.073,"Ushahidi\\Tests\\Unit\\Modules\\V2\\Mappers\\FormFieldAttributeMapperTest::testMap with data set \"unknown\"":0.072,"Ushahidi\\Tests\\Unit\\Modules\\V2\\Mappers\\FormMapperTest::testMap":0.074,"Ushahidi\\Tests\\Unit\\Modules\\V2\\Mappers\\FormMapperTest::testMapDisabled":0.077,"Ushahidi\\Tests\\Unit\\Modules\\V2\\Mappers\\IncidentPostMapperTest::testMap":0.089,"Ushahidi\\Tests\\Unit\\Modules\\V2\\Mappers\\IncidentPostMapperTest::testMapWithMedia":0.088,"Ushahidi\\Tests\\Unit\\Modules\\V2\\Mappers\\IncidentPostMapperTest::testMapWithFormResponses":0.093,"Ushahidi\\Tests\\Unit\\Modules\\V2\\Mappers\\MessageMapperTest::testMap with data set \"email-message\"":0.071,"Ushahidi\\Tests\\Unit\\Modules\\V2\\Mappers\\MessageMapperTest::testMap with data set \"sms-message\"":0.072,"Ushahidi\\Tests\\Unit\\Modules\\V2\\Mappers\\MessageMapperTest::testMap with data set \"message-with-location\"":0.072,"Ushahidi\\Tests\\Unit\\Modules\\V2\\Mappers\\ReporterUserMapperTest::testMap with data set \"email-reporter\"":0.08,"Ushahidi\\Tests\\Unit\\Modules\\V2\\Mappers\\ReporterUserMapperTest::testMap with data set \"sms-reporter\"":0.075,"Ushahidi\\Tests\\Unit\\Modules\\V2\\Mappers\\ReporterUserMapperTest::testMap with data set \"twitter-reporter\"":0.072,"Ushahidi\\Tests\\Unit\\Modules\\V2\\Mappers\\ReporterUserMapperTest::testMap with data set \"other-reporter\"":0.088,"Ushahidi\\Tests\\Unit\\Modules\\V2\\Mappers\\UserMapperTest::testMapAdmin":0.073,"Ushahidi\\Tests\\Unit\\Modules\\V2\\Mappers\\UserMapperTest::testMapSuperAdmin":0.071,"Ushahidi\\Tests\\Unit\\Modules\\V2\\Mappers\\UserMapperTest::testMapOtherRole":0.073,"Ushahidi\\Tests\\Unit\\Modules\\V3\\Formatter\\Post\\CSVTest::testCSVRowsAreCreated":0.076,"Ushahidi\\Tests\\Unit\\Modules\\V3\\Jobs\\CombineExportedPostBatchesJobTest::testCombineBatchesJob":0.079,"Ushahidi\\Tests\\Unit\\Modules\\V3\\Jobs\\CombineExportedPostBatchesJobTest::testCombineBatchesNotReady":0.083,"Ushahidi\\Tests\\Unit\\Modules\\V3\\Jobs\\CombineExportedPostBatchesJobTest::testJobAlreadyComplete":0.073,"Ushahidi\\Tests\\Unit\\Modules\\V3\\Jobs\\ExportPostsBatchJobTest::testExportPostsBatchJob":0.081,"Ushahidi\\Tests\\Unit\\Modules\\V3\\Jobs\\ExportPostsBatchJobTest::testExportFinalBatch":0.074,"Ushahidi\\Tests\\Unit\\Modules\\V3\\Jobs\\ExportPostsJobTest::testExportPostsJob":0.079,"Ushahidi\\Tests\\Unit\\Modules\\V3\\Jobs\\ExportPostsJobTest::testExportPostsJobErrorHandling":0.07,"Ushahidi\\Tests\\Unit\\Modules\\V3\\Listener\\CreatePostFromMessageTest::testCreatesSimplePost":0.071,"Ushahidi\\Tests\\Unit\\Modules\\V3\\Listener\\CreatePostFromMessageTest::testCreatesPostAndMapsFields":0.079,"Ushahidi\\Tests\\Unit\\Modules\\V3\\Listener\\HandleTargetedSurveyResponseTest::testReceivesResponse":0.071,"Ushahidi\\Tests\\Unit\\Modules\\V3\\Listener\\HandleTargetedSurveyResponseTest::testReceivesFinalResponse":0.073,"Ushahidi\\Tests\\Unit\\Modules\\V3\\Listener\\HandleTargetedSurveyResponseTest::testNotInTargetedSurvey":0.071,"Ushahidi\\Tests\\Unit\\Modules\\V3\\Validator\\Role\\UpdateTest::testRoleDisabled":0.078,"Ushahidi\\Tests\\Unit\\Modules\\V3\\Validator\\Role\\UpdateTest::testRoleEnabled":0.069,"Ushahidi\\Tests\\Unit\\Multisite\\Middleware\\CheckDemoExpirationTest::testMultisiteDisabled":0.097,"Ushahidi\\Tests\\Unit\\Multisite\\Middleware\\CheckDemoExpirationTest::testGetRequest":0.07,"Ushahidi\\Tests\\Unit\\Multisite\\Middleware\\CheckDemoExpirationTest::testPaidTierRequest":0.076,"Ushahidi\\Tests\\Unit\\Multisite\\Middleware\\CheckDemoExpirationTest::testDemoTierNotExpired":0.07,"Ushahidi\\Tests\\Unit\\Multisite\\Middleware\\CheckDemoExpirationTest::testDemoTierExpired":0.072,"Ushahidi\\Tests\\Unit\\Multisite\\Middleware\\CheckDemoExpirationTest::testDemoTierExtended":0.069,"Ushahidi\\Tests\\Unit\\Multisite\\Middleware\\CheckDemoExpirationTest::testDemoTierExtensionExpired":0.071,"Ushahidi\\Tests\\Unit\\Multisite\\Middleware\\DetectSiteTest::testNothingCalledWhenDisabled":0.071,"Ushahidi\\Tests\\Unit\\Multisite\\Middleware\\DetectSiteTest::testSiteNotFound":0.071,"Ushahidi\\Tests\\Unit\\Multisite\\Middleware\\DetectSiteTest::testSiteNotReady":0.07,"Ushahidi\\Tests\\Unit\\Multisite\\Middleware\\DetectSiteTest::testSiteInMaintenance":0.07,"Ushahidi\\Tests\\Unit\\Multisite\\Middleware\\DetectSiteTest::testSiteDbNotReady":0.077,"Ushahidi\\Tests\\Unit\\Multisite\\Middleware\\DetectSiteTest::testSiteSetSuccesfully":0.072,"Ushahidi\\Tests\\Unit\\Multisite\\MultisiteManagerTest::testItCanParseAKnownSubdomain":0.073,"Ushahidi\\Tests\\Unit\\Multisite\\MultisiteManagerTest::testItCanParseAKnownDomain":0.072,"Ushahidi\\Tests\\Unit\\Multisite\\MultisiteManagerTest::testItCanParseAnUnknownDomain":0.074,"Ushahidi\\Tests\\Unit\\Multisite\\MultisiteManagerTest::testItCanSetSiteById":0.071,"Ushahidi\\Tests\\Unit\\Multisite\\MultisiteManagerTest::testItReturnsFalseWhenNoSite":0.07,"Ushahidi\\Tests\\Unit\\Multisite\\SiteTest::testItShouldReturnMultisiteEmail":0.07,"Ushahidi\\Tests\\Unit\\Multisite\\SiteTest::testItShouldReturnSiteEmail":0.069,"Ushahidi\\Tests\\Unit\\Multisite\\SiteTest::testItShouldReturnFallbackEmail":0.079,"Ushahidi\\Tests\\Unit\\Util\\BoundingBoxTest::testToWKT":0.001,"Ushahidi\\Tests\\Unit\\Util\\BoundingBoxTest::testAsArray":0.001,"Ushahidi\\Tests\\Unit\\Util\\BoundingBoxTest::testToGeometry":0.002,"Ushahidi\\Tests\\Unit\\Util\\TileTest::testNumTiles":0.001,"Ushahidi\\Tests\\Unit\\Util\\TileTest::testTileToBoundingBox":0.001,"Ushahidi\\Tests\\Unit\\Util\\TileTest::testTileToLon":0,"Ushahidi\\Tests\\Unit\\Util\\TileTest::testTileToLat":0}} \ No newline at end of file From 96318343dd960806b5c28a364b75c5f2340be83e Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Wed, 19 Apr 2023 17:40:12 +0100 Subject: [PATCH 19/75] fix: lint issues --- app/Providers/AppServiceProvider.php | 6 ++---- src/Ushahidi/Core/Entity/ApiKey.php | 3 ++- src/Ushahidi/Core/Entity/Config.php | 3 ++- src/Ushahidi/Core/Entity/Contact.php | 3 ++- src/Ushahidi/Core/Entity/ExportBatch.php | 1 - src/Ushahidi/Core/Entity/Form.php | 3 ++- src/Ushahidi/Core/Entity/FormStage.php | 3 ++- src/Ushahidi/Core/Ohanzee/Entities/FormStage.php | 1 - src/Ushahidi/Core/Ohanzee/Entities/Set.php | 1 - src/Ushahidi/Core/Ohanzee/Entities/User.php | 1 - .../Core/Ohanzee/Repositories/CSVRepository.php | 6 ++++-- .../Ohanzee/Repositories/ExportBatchRepository.php | 12 ++++++------ .../Ohanzee/Repositories/Form/RoleRepository.php | 3 ++- .../Repositories/Notification/QueueRepository.php | 4 +++- .../Ohanzee/Repositories/NotificationRepository.php | 3 ++- src/Ushahidi/Modules/V3/ServiceProvider.php | 1 - src/Ushahidi/Modules/V3/Validator/Post/Create.php | 8 +++----- 17 files changed, 32 insertions(+), 30 deletions(-) diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 8a753810d9..7d9ab34630 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -7,10 +7,8 @@ use Ushahidi\Core\Config\FeatureManager; use Ushahidi\Core\Tool\OhanzeeResolver; use Ushahidi\Core\Entity\ConfigRepository; -use Ushahidi\Addons\{ - Mteja\MtejaSource, - AfricasTalking\AfricasTalkingSource -}; +use Ushahidi\Addons\Mteja\MtejaSource; +use Ushahidi\Addons\AfricasTalking\AfricasTalkingSource; use Ushahidi\Modules\V5\Repository\Set; use Ushahidi\Modules\V5\Repository\User; use Ushahidi\Modules\V5\Models\Post\Post; diff --git a/src/Ushahidi/Core/Entity/ApiKey.php b/src/Ushahidi/Core/Entity/ApiKey.php index b19db55c9e..007bb1f5b4 100644 --- a/src/Ushahidi/Core/Entity/ApiKey.php +++ b/src/Ushahidi/Core/Entity/ApiKey.php @@ -3,6 +3,7 @@ use Ushahidi\Contracts\Entity; -interface Apikey extends Entity { +interface Apikey extends Entity +{ } diff --git a/src/Ushahidi/Core/Entity/Config.php b/src/Ushahidi/Core/Entity/Config.php index 46d9d9c9a1..f1df530c65 100644 --- a/src/Ushahidi/Core/Entity/Config.php +++ b/src/Ushahidi/Core/Entity/Config.php @@ -3,6 +3,7 @@ use Ushahidi\Contracts\Entity; -interface Config extends Entity { +interface Config extends Entity +{ } diff --git a/src/Ushahidi/Core/Entity/Contact.php b/src/Ushahidi/Core/Entity/Contact.php index 3eeec4b6dd..6c35b65b50 100644 --- a/src/Ushahidi/Core/Entity/Contact.php +++ b/src/Ushahidi/Core/Entity/Contact.php @@ -3,6 +3,7 @@ use Ushahidi\Contracts\Entity; -interface Contact extends Entity { +interface Contact extends Entity +{ } diff --git a/src/Ushahidi/Core/Entity/ExportBatch.php b/src/Ushahidi/Core/Entity/ExportBatch.php index 8451d0a346..69c22c15b4 100644 --- a/src/Ushahidi/Core/Entity/ExportBatch.php +++ b/src/Ushahidi/Core/Entity/ExportBatch.php @@ -10,5 +10,4 @@ interface ExportBatch extends Entity const STATUS_COMPLETED = 'completed'; const STATUS_FAILED = 'failed'; - } diff --git a/src/Ushahidi/Core/Entity/Form.php b/src/Ushahidi/Core/Entity/Form.php index 52cf40aafb..588e21cb84 100644 --- a/src/Ushahidi/Core/Entity/Form.php +++ b/src/Ushahidi/Core/Entity/Form.php @@ -3,6 +3,7 @@ use Ushahidi\Contracts\Entity; -interface Form extends Entity { +interface Form extends Entity +{ } diff --git a/src/Ushahidi/Core/Entity/FormStage.php b/src/Ushahidi/Core/Entity/FormStage.php index 0068771d36..ab8ad385a1 100644 --- a/src/Ushahidi/Core/Entity/FormStage.php +++ b/src/Ushahidi/Core/Entity/FormStage.php @@ -3,6 +3,7 @@ use Ushahidi\Contracts\Entity; -interface FormStage extends Entity { +interface FormStage extends Entity +{ } diff --git a/src/Ushahidi/Core/Ohanzee/Entities/FormStage.php b/src/Ushahidi/Core/Ohanzee/Entities/FormStage.php index 59af687b02..57db73d5c3 100644 --- a/src/Ushahidi/Core/Ohanzee/Entities/FormStage.php +++ b/src/Ushahidi/Core/Ohanzee/Entities/FormStage.php @@ -97,5 +97,4 @@ public static function buildEntity(array $input, $action = "create", array $old_ : self::DEFAULT_TASK_IS_INTERNAL_ONLY, ]); } - } diff --git a/src/Ushahidi/Core/Ohanzee/Entities/Set.php b/src/Ushahidi/Core/Ohanzee/Entities/Set.php index 7477405f88..e7745c9975 100644 --- a/src/Ushahidi/Core/Ohanzee/Entities/Set.php +++ b/src/Ushahidi/Core/Ohanzee/Entities/Set.php @@ -96,5 +96,4 @@ public static function buildEntity(array $input, $action = "create", array $old_ "updated" => time() ]); } - } diff --git a/src/Ushahidi/Core/Ohanzee/Entities/User.php b/src/Ushahidi/Core/Ohanzee/Entities/User.php index 29b98f7c99..1e7be7279c 100644 --- a/src/Ushahidi/Core/Ohanzee/Entities/User.php +++ b/src/Ushahidi/Core/Ohanzee/Entities/User.php @@ -102,5 +102,4 @@ public static function buildEntity(array $input, $action = "create", array $old_ "created" => time() ]); } - } diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/CSVRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/CSVRepository.php index f1b2144266..6560411ce0 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/CSVRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/CSVRepository.php @@ -13,12 +13,14 @@ use Ushahidi\Core\Tool\SearchData; use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Repository\{EntityGet, EntityExists}; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; use Ushahidi\Core\Ohanzee\Entities\CSV; use Ushahidi\Core\Concerns\Event; class CSVRepository extends OhanzeeRepository implements - EntityGet, EntityExists + EntityGet, + EntityExists { // Use the JSON transcoder to encode properties diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/ExportBatchRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/ExportBatchRepository.php index ef6274ad75..32719753e5 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/ExportBatchRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/ExportBatchRepository.php @@ -54,14 +54,14 @@ public function getByJobId($jobId, $status = ExportBatch::STATUS_COMPLETED) return $this->getCollection($results->as_array()); } - /** - * Get fields that can be used for searches. - * @return array - */ - public function getSearchFields() + /** + * Get fields that can be used for searches. + * @return array + */ + public function getSearchFields() { return []; - } + } /** * Converts an array/collection of results into an collection diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/Form/RoleRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Form/RoleRepository.php index cd4cd05f97..60bd067b98 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/Form/RoleRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Form/RoleRepository.php @@ -12,7 +12,8 @@ namespace Ushahidi\Core\Ohanzee\Repositories\Form; use Ohanzee\DB; -use Ushahidi\Contracts\Repository\{EntityGet, EntityExists}; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; use Ushahidi\Core\Ohanzee\Entities\FormRole; use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; use Ushahidi\Core\Tool\SearchData; diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/Notification/QueueRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/Notification/QueueRepository.php index a0a4aa9b06..62679e23ce 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/Notification/QueueRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/Notification/QueueRepository.php @@ -12,7 +12,9 @@ namespace Ushahidi\Core\Ohanzee\Repositories\Notification; use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Repository\{EntityGet, EntityExists, CreateRepository}; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; +use Ushahidi\Contracts\Repository\CreateRepository; use Ushahidi\Core\Ohanzee\Entities\NotificationQueue; use Ushahidi\Core\Ohanzee\Repositories\OhanzeeRepository; use Ushahidi\Core\Tool\SearchData; diff --git a/src/Ushahidi/Core/Ohanzee/Repositories/NotificationRepository.php b/src/Ushahidi/Core/Ohanzee/Repositories/NotificationRepository.php index b7141e9cd1..bf2fd74ada 100644 --- a/src/Ushahidi/Core/Ohanzee/Repositories/NotificationRepository.php +++ b/src/Ushahidi/Core/Ohanzee/Repositories/NotificationRepository.php @@ -12,7 +12,8 @@ namespace Ushahidi\Core\Ohanzee\Repositories; use Ushahidi\Contracts\Entity; -use Ushahidi\Contracts\Repository\{EntityGet, EntityExists}; +use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Contracts\Repository\EntityExists; use Ushahidi\Core\Tool\SearchData; use Ushahidi\Core\Ohanzee\Entities\Notification; use Ushahidi\Core\Concerns\AdminAccess; diff --git a/src/Ushahidi/Modules/V3/ServiceProvider.php b/src/Ushahidi/Modules/V3/ServiceProvider.php index 7c3577fdd6..94a0ec933d 100644 --- a/src/Ushahidi/Modules/V3/ServiceProvider.php +++ b/src/Ushahidi/Modules/V3/ServiceProvider.php @@ -25,7 +25,6 @@ use Ushahidi\Modules\V3\Console; use Ushahidi\Modules\V3\Factory\UsecaseFactory; - class ServiceProvider extends BaseServiceProvider { /** diff --git a/src/Ushahidi/Modules/V3/Validator/Post/Create.php b/src/Ushahidi/Modules/V3/Validator/Post/Create.php index 88af217e9e..dda4be45ad 100644 --- a/src/Ushahidi/Modules/V3/Validator/Post/Create.php +++ b/src/Ushahidi/Modules/V3/Validator/Post/Create.php @@ -13,11 +13,9 @@ use Kohana\Validation\Validation; use Ushahidi\Core\Facade\Feature; -use Ushahidi\Core\Concerns\{ - AdminAccess, - UserContext, - Acl as Acl -}; +use Ushahidi\Core\Concerns\AdminAccess; +use Ushahidi\Core\Concerns\UserContext; +use Ushahidi\Core\Concerns\Acl as Acl; use Ushahidi\Core\Entity\Permission; use Ushahidi\Core\Entity\TagRepository; use Ushahidi\Core\Entity\FormRepository; From e662c84e34bd4d7797f9d0899366e52cc3e80c8c Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Wed, 19 Apr 2023 20:10:47 +0100 Subject: [PATCH 20/75] test: fix unit tests with extension package --- src/Ushahidi/Core/Config/Site.php | 4 +- src/Ushahidi/Core/DynamicEntity.php | 2 +- .../Core/Extension/ExtendableTrait.php | 3 +- src/Ushahidi/Core/Ohanzee/Entities/Config.php | 2 +- tests/Unit/Core/Entity/MockPostEntity.php | 2 +- .../Extension/ExampleExtendableInterface.php | 7 + tests/Unit/Core/Extension/ExtendableTest.php | 282 ++++-------------- .../ExtendableTestExampleBehaviorClass1.php | 32 ++ .../ExtendableTestExampleBehaviorClass2.php | 14 + .../Extension/ExtendableTestExampleClass.php | 13 + .../ExtendableTestExampleExtendableClass.php | 36 +++ ...eTestExampleExtendableClassDotNotation.php | 36 +++ ...ampleExtendableSoftImplementComboClass.php | 16 + ...xampleExtendableSoftImplementFakeClass.php | 17 ++ ...xampleExtendableSoftImplementRealClass.php | 12 + ...xtendableTestExampleImplementableClass.php | 12 + .../ExtendableTestInvalidExtendableClass.php | 14 + tests/Unit/Core/Extension/ExtensionTest.php | 18 +- .../ExtensionTestExampleBehaviorClass1.php | 12 + .../ExtensionTestExampleExtendableClass.php | 12 + tests/Unit/Core/Ohanzee/Entities/MockPost.php | 2 +- .../{Ohanzee => Tool}/StatefulDataTest.php | 0 22 files changed, 299 insertions(+), 249 deletions(-) create mode 100644 tests/Unit/Core/Extension/ExampleExtendableInterface.php create mode 100644 tests/Unit/Core/Extension/ExtendableTestExampleBehaviorClass1.php create mode 100644 tests/Unit/Core/Extension/ExtendableTestExampleBehaviorClass2.php create mode 100644 tests/Unit/Core/Extension/ExtendableTestExampleClass.php create mode 100644 tests/Unit/Core/Extension/ExtendableTestExampleExtendableClass.php create mode 100644 tests/Unit/Core/Extension/ExtendableTestExampleExtendableClassDotNotation.php create mode 100644 tests/Unit/Core/Extension/ExtendableTestExampleExtendableSoftImplementComboClass.php create mode 100644 tests/Unit/Core/Extension/ExtendableTestExampleExtendableSoftImplementFakeClass.php create mode 100644 tests/Unit/Core/Extension/ExtendableTestExampleExtendableSoftImplementRealClass.php create mode 100644 tests/Unit/Core/Extension/ExtendableTestExampleImplementableClass.php create mode 100644 tests/Unit/Core/Extension/ExtendableTestInvalidExtendableClass.php create mode 100644 tests/Unit/Core/Extension/ExtensionTestExampleBehaviorClass1.php create mode 100644 tests/Unit/Core/Extension/ExtensionTestExampleExtendableClass.php rename tests/Unit/Core/{Ohanzee => Tool}/StatefulDataTest.php (100%) diff --git a/src/Ushahidi/Core/Config/Site.php b/src/Ushahidi/Core/Config/Site.php index daa78cceef..e6d215f4fe 100644 --- a/src/Ushahidi/Core/Config/Site.php +++ b/src/Ushahidi/Core/Config/Site.php @@ -11,11 +11,11 @@ namespace Ushahidi\Core\Config; -use Ushahidi\Core\Entity\Site as SiteEntity; use Ushahidi\Core\StaticEntity; use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Request; -use Ushahidi\Contracts\Repository\Entity\ConfigRepository; +use Ushahidi\Core\Entity\ConfigRepository; +use Ushahidi\Core\Entity\Site as SiteEntity; class Site extends StaticEntity implements SiteEntity { diff --git a/src/Ushahidi/Core/DynamicEntity.php b/src/Ushahidi/Core/DynamicEntity.php index 8ef89d7a42..293d71eff5 100644 --- a/src/Ushahidi/Core/DynamicEntity.php +++ b/src/Ushahidi/Core/DynamicEntity.php @@ -12,7 +12,7 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Core\Ohanzee; +namespace Ushahidi\Core; use Ushahidi\Contracts\Entity; use Ushahidi\Core\Tool\StatefulData; diff --git a/src/Ushahidi/Core/Extension/ExtendableTrait.php b/src/Ushahidi/Core/Extension/ExtendableTrait.php index 049c0721e1..3841592abe 100644 --- a/src/Ushahidi/Core/Extension/ExtendableTrait.php +++ b/src/Ushahidi/Core/Extension/ExtendableTrait.php @@ -141,7 +141,8 @@ protected function extensionExtractMethods($extensionName, $extensionObject) if (!method_exists($extensionObject, 'extensionIsHiddenMethod')) { throw new Exception( sprintf( - 'Extension %s should inherit Ushahidi\Core\Extension\ExtensionBase or $this->behaviors Ushahidi\Core\Extension\ExtensionTrait.', + 'Extension %s should inherit Ushahidi\Core\Extension\ExtensionBase + or $this->behaviors Ushahidi\Core\Extension\ExtensionTrait.', $extensionName ) ); diff --git a/src/Ushahidi/Core/Ohanzee/Entities/Config.php b/src/Ushahidi/Core/Ohanzee/Entities/Config.php index f9dda9b036..a151e14841 100644 --- a/src/Ushahidi/Core/Ohanzee/Entities/Config.php +++ b/src/Ushahidi/Core/Ohanzee/Entities/Config.php @@ -12,7 +12,7 @@ namespace Ushahidi\Core\Ohanzee\Entities; use Ushahidi\Core\Entity\Config as EntityConfig; -use Ushahidi\Core\Ohanzee\DynamicEntity; +use Ushahidi\Core\DynamicEntity; class Config extends DynamicEntity implements EntityConfig { diff --git a/tests/Unit/Core/Entity/MockPostEntity.php b/tests/Unit/Core/Entity/MockPostEntity.php index eff91dec0c..760a3c1db0 100644 --- a/tests/Unit/Core/Entity/MockPostEntity.php +++ b/tests/Unit/Core/Entity/MockPostEntity.php @@ -8,7 +8,7 @@ namespace Ushahidi\Tests\Unit\Core\Entity; -use Ushahidi\Core\Ohanzee\StatefulData; +use Ushahidi\Core\Tool\StatefulData; class MockPostEntity { diff --git a/tests/Unit/Core/Extension/ExampleExtendableInterface.php b/tests/Unit/Core/Extension/ExampleExtendableInterface.php new file mode 100644 index 0000000000..0eec9ae75f --- /dev/null +++ b/tests/Unit/Core/Extension/ExampleExtendableInterface.php @@ -0,0 +1,7 @@ +expectException(\BadMethodCallException::class); - // $this->expectExceptionMessage("Call to undefined property ExtendableTestExampleExtendableClass::newAttribute"); + // $this->expectExceptionMessage("Call to undefined property + // ExtendableTestExampleExtendableClass::newAttribute" + // ); // $subject = new ExtendableTestExampleExtendableClass; // $subject->newAttribute = 'Test'; @@ -38,12 +47,12 @@ public function testSettingDeclaredPropertyOnClass() public function testSettingDeclaredPropertyOnBehavior() { $subject = new ExtendableTestExampleExtendableClass; - $behavior = $subject->getClassExtension('ExtendableTestExampleBehaviorClass1'); + $behavior = $subject->getClassExtension(ExtendableTestExampleBehaviorClass1::class); $subject->behaviorAttribute = 'Test'; $this->assertEquals('Test', $subject->behaviorAttribute); $this->assertEquals('Test', $behavior->behaviorAttribute); - $this->assertTrue($subject->isClassExtendedWith('ExtendableTestExampleBehaviorClass1')); + $this->assertTrue($subject->isClassExtendedWith(ExtendableTestExampleBehaviorClass1::class)); } public function testDynamicPropertyOnClass() @@ -58,29 +67,29 @@ public function testDynamicPropertyOnClass() public function testDynamicallyImplementingClass() { ExtendableTestExampleImplementableClass::extend(function ($obj) { - $obj->implementClassWith('ExtendableTestExampleBehaviorClass2'); - $obj->implementClassWith('ExtendableTestExampleBehaviorClass2'); - $obj->implementClassWith('ExtendableTestExampleBehaviorClass2'); + $obj->implementClassWith(ExtendableTestExampleBehaviorClass2::class); + $obj->implementClassWith(ExtendableTestExampleBehaviorClass2::class); + $obj->implementClassWith(ExtendableTestExampleBehaviorClass2::class); }); $subject = new ExtendableTestExampleImplementableClass; - $this->assertTrue($subject->isClassExtendedWith('ExtendableTestExampleBehaviorClass1')); - $this->assertTrue($subject->isClassExtendedWith('ExtendableTestExampleBehaviorClass2')); + $this->assertTrue($subject->isClassExtendedWith(ExtendableTestExampleBehaviorClass1::class)); + $this->assertTrue($subject->isClassExtendedWith(ExtendableTestExampleBehaviorClass2::class)); } public function testDynamicallyExtendingClass() { $subject = new ExtendableTestExampleExtendableClass; - $subject->extendClassWith('ExtendableTestExampleBehaviorClass2'); + $subject->extendClassWith(ExtendableTestExampleBehaviorClass2::class); - $this->assertTrue($subject->isClassExtendedWith('ExtendableTestExampleBehaviorClass1')); - $this->assertTrue($subject->isClassExtendedWith('ExtendableTestExampleBehaviorClass2')); + $this->assertTrue($subject->isClassExtendedWith(ExtendableTestExampleBehaviorClass1::class)); + $this->assertTrue($subject->isClassExtendedWith(ExtendableTestExampleBehaviorClass2::class)); } public function testDynamicMethodOnClass() { $subject = new ExtendableTestExampleExtendableClass; - $subject->addDynamicMethod('getFooAnotherWay', 'getFoo', 'ExtendableTestExampleBehaviorClass1'); + $subject->addDynamicMethod('getFooAnotherWay', 'getFoo', ExtendableTestExampleBehaviorClass1::class); $this->assertEquals('foo', $subject->getFoo()); $this->assertEquals('foo', $subject->getFooAnotherWay()); @@ -89,11 +98,11 @@ public function testDynamicMethodOnClass() public function testDynamicExtendAndMethodOnClass() { $subject = new ExtendableTestExampleExtendableClass; - $subject->extendClassWith('ExtendableTestExampleBehaviorClass2'); - $subject->addDynamicMethod('getOriginalFoo', 'getFoo', 'ExtendableTestExampleBehaviorClass1'); + $subject->extendClassWith(ExtendableTestExampleBehaviorClass2::class); + $subject->addDynamicMethod('getOriginalFoo', 'getFoo', ExtendableTestExampleBehaviorClass1::class); - $this->assertTrue($subject->isClassExtendedWith('ExtendableTestExampleBehaviorClass1')); - $this->assertTrue($subject->isClassExtendedWith('ExtendableTestExampleBehaviorClass2')); + $this->assertTrue($subject->isClassExtendedWith(ExtendableTestExampleBehaviorClass1::class)); + $this->assertTrue($subject->isClassExtendedWith(ExtendableTestExampleBehaviorClass2::class)); $this->assertEquals('bar', $subject->getFoo()); $this->assertEquals('foo', $subject->getOriginalFoo()); } @@ -111,9 +120,9 @@ public function testDynamicClosureOnClass() public function testDynamicCallableOnClass() { $subject = new ExtendableTestExampleExtendableClass; - $subject->addDynamicMethod('getAppName', ['ExtendableTestExampleClass', 'getName']); + $subject->addDynamicMethod('getAppName', [ExtendableTestExampleClass::class, 'getName']); - $this->assertEquals('october', $subject->getAppName()); + $this->assertEquals('ushahidi', $subject->getAppName()); } public function testCallingStaticMethod() @@ -127,29 +136,23 @@ public function testCallingStaticMethod() public function testCallingUndefinedStaticMethod() { - $this->expectException(BadMethodCallException::class); - $this->expectExceptionMessage('Call to undefined method ExtendableTestExampleExtendableClass::undefinedMethod()'); + $this->expectException(\BadMethodCallException::class); + $this->expectExceptionMessage( + 'Call to undefined method ' . + ExtendableTestExampleExtendableClass::class . '::undefinedMethod()' + ); $result = ExtendableTestExampleExtendableClass::undefinedMethod(); $this->assertEquals('bar', $result); } - // public function testAccessingProtectedProperty() - // { - // $this->expectException(BadMethodCallException::class); - // $this->expectExceptionMessage('Call to undefined property ExtendableTestExampleExtendableClass::protectedFoo'); - - // $subject = new ExtendableTestExampleExtendableClass; - // $this->assertEmpty($subject->protectedFoo); - - // $subject->protectedFoo = 'snickers'; - // $this->assertEquals('bar', $subject->getProtectedFooAttribute()); - // } - public function testAccessingProtectedMethod() { - $this->expectException(BadMethodCallException::class); - $this->expectExceptionMessage('Call to undefined method ExtendableTestExampleExtendableClass::protectedBar()'); + $this->expectException(\BadMethodCallException::class); + $this->expectExceptionMessage( + 'Call to undefined method ' . + ExtendableTestExampleExtendableClass::class . '::protectedBar()' + ); $subject = new ExtendableTestExampleExtendableClass; echo $subject->protectedBar(); @@ -157,16 +160,23 @@ public function testAccessingProtectedMethod() public function testAccessingProtectedStaticMethod() { - $this->expectException(BadMethodCallException::class); - $this->expectExceptionMessage('Call to undefined method ExtendableTestExampleExtendableClass::protectedMars()'); + $this->expectException(\BadMethodCallException::class); + $this->expectExceptionMessage( + 'Call to undefined method ' . + ExtendableTestExampleExtendableClass::class . '::protectedMars()' + ); echo ExtendableTestExampleExtendableClass::protectedMars(); } public function testInvalidImplementValue() { - $this->expectException(Exception::class); - $this->expectExceptionMessage('Class ExtendableTestInvalidExtendableClass contains an invalid $behaviors value'); + $this->expectException(\Exception::class); + $this->expectExceptionMessage( + 'Class ' . + ExtendableTestInvalidExtendableClass::class + . ' contains an invalid $behaviors value' + ); $result = new ExtendableTestInvalidExtendableClass; } @@ -181,7 +191,7 @@ public function testSoftImplementFake() public function testSoftImplementReal() { $result = new ExtendableTestExampleExtendableSoftImplementRealClass; - $this->assertTrue($result->isClassExtendedWith('ExtendableTestExampleBehaviorClass1')); + $this->assertTrue($result->isClassExtendedWith(ExtendableTestExampleBehaviorClass1::class)); $this->assertEquals('foo', $result->getFoo()); } @@ -189,9 +199,10 @@ public function testSoftImplementCombo() { $result = new ExtendableTestExampleExtendableSoftImplementComboClass; $this->assertFalse($result->isClassExtendedWith('RabbleRabbleRabble')); - $this->assertTrue($result->isClassExtendedWith('ExtendableTestExampleBehaviorClass1')); - $this->assertTrue($result->isClassExtendedWith('ExtendableTestExampleBehaviorClass2')); - $this->assertEquals('bar', $result->getFoo()); // ExtendableTestExampleBehaviorClass2 takes priority, defined last + $this->assertTrue($result->isClassExtendedWith(ExtendableTestExampleBehaviorClass1::class)); + $this->assertTrue($result->isClassExtendedWith(ExtendableTestExampleBehaviorClass2::class)); + // ExtendableTestExampleBehaviorClass2 takes priority, defined last + $this->assertEquals('bar', $result->getFoo()); } public function testDotNotation() @@ -218,7 +229,7 @@ public function testMethodNotExists() public function testDynamicMethodExists() { $subject = new ExtendableTestExampleExtendableClass; - $subject->addDynamicMethod('getFooAnotherWay', 'getFoo', 'ExtendableTestExampleBehaviorClass1'); + $subject->addDynamicMethod('getFooAnotherWay', 'getFoo', ExtendableTestExampleBehaviorClass1::class); $this->assertTrue($subject->methodExists('getFooAnotherWay')); } @@ -226,7 +237,7 @@ public function testDynamicMethodExists() public function testGetClassMethods() { $subject = new ExtendableTestExampleExtendableClass; - $subject->addDynamicMethod('getFooAnotherWay', 'getFoo', 'ExtendableTestExampleBehaviorClass1'); + $subject->addDynamicMethod('getFooAnotherWay', 'getFoo', ExtendableTestExampleBehaviorClass1::class); $methods = $subject->getClassMethods(); $this->assertContains('extend', $methods); @@ -246,182 +257,3 @@ public function testIsInstanceOf() $this->assertTrue($subject3->isClassInstanceOf(ExampleExtendableInterface::class)); } } - -// -// Test classes -// - -interface ExampleExtendableInterface -{ - public function hasPanda(); -} - -/** - * Example behavior classes - */ -class ExtendableTestExampleBehaviorClass1 extends ExtensionBase -{ - public $behaviorAttribute; - - public function getFoo() - { - return 'foo'; - } - - public static function getStaticBar() - { - return 'bar'; - } - - public static function vanillaIceIce() - { - return 'cream'; - } - - public function hasPanda() - { - return true; - } -} - -class ExtendableTestExampleBehaviorClass2 extends ExtensionBase -{ - public $behaviorAttribute; - - public function getFoo() - { - return 'bar'; - } -} - -/* - * Example class that has an invalid implementation - */ -class ExtendableTestInvalidExtendableClass extends Extendable -{ - public $behaviors = 24; - - public $classAttribute; -} - -/* - * Example class that has extensions enabled - */ -class ExtendableTestExampleExtendableClass extends Extendable -{ - public $behaviors = ['ExtendableTestExampleBehaviorClass1']; - - public $classAttribute; - - protected $protectedFoo = 'bar'; - - public static function vanillaIceIce() - { - return 'baby'; - } - - protected function protectedBar() - { - return 'foo'; - } - - protected static function protectedMars() - { - return 'bar'; - } - - public function getProtectedFooAttribute() - { - return $this->protectedFoo; - } -} - -/** - * ExtendableTestExampleImplementableClass - */ -class ExtendableTestExampleImplementableClass extends Extendable -{ - public $behaviors = ['ExtendableTestExampleBehaviorClass1']; -} - -/** - * A normal class without extensions enabled - */ -class ExtendableTestExampleClass -{ - public static function getName() - { - return 'october'; - } -} - -/* - * Example class with soft implement failure - */ -class ExtendableTestExampleExtendableSoftImplementFakeClass extends Extendable -{ - public $behaviors = ['@RabbleRabbleRabble']; - - public static function getStatus() - { - return 'working'; - } -} - -/* - * Example class with soft implement success - */ -class ExtendableTestExampleExtendableSoftImplementRealClass extends Extendable -{ - public $behaviors = ['@ExtendableTestExampleBehaviorClass1']; -} - -/* - * Example class with soft implement hybrid - */ -class ExtendableTestExampleExtendableSoftImplementComboClass extends Extendable -{ - public $behaviors = [ - 'ExtendableTestExampleBehaviorClass1', - '@ExtendableTestExampleBehaviorClass2', - '@RabbleRabbleRabble' - ]; -} - -/* - * Example class that has extensions enabled using dot notation - */ -class ExtendableTestExampleExtendableClassDotNotation extends Extendable -{ - public $behaviors = ['ExtendableTest.ExampleBehaviorClass1']; - - public $classAttribute; - - protected $protectedFoo = 'bar'; - - public static function vanillaIceIce() - { - return 'baby'; - } - - protected function protectedBar() - { - return 'foo'; - } - - protected static function protectedMars() - { - return 'bar'; - } - - public function getProtectedFooAttribute() - { - return $this->protectedFoo; - } -} - -/* - * Add namespaced aliases for dot notation test - */ -class_alias('ExtendableTestExampleBehaviorClass1', 'ExtendableTest\\ExampleBehaviorClass1'); -class_alias('ExtendableTestExampleBehaviorClass2', 'ExtendableTest\\ExampleBehaviorClass2'); diff --git a/tests/Unit/Core/Extension/ExtendableTestExampleBehaviorClass1.php b/tests/Unit/Core/Extension/ExtendableTestExampleBehaviorClass1.php new file mode 100644 index 0000000000..e28e276806 --- /dev/null +++ b/tests/Unit/Core/Extension/ExtendableTestExampleBehaviorClass1.php @@ -0,0 +1,32 @@ +protectedFoo; + } +} diff --git a/tests/Unit/Core/Extension/ExtendableTestExampleExtendableClassDotNotation.php b/tests/Unit/Core/Extension/ExtendableTestExampleExtendableClassDotNotation.php new file mode 100644 index 0000000000..86485b5123 --- /dev/null +++ b/tests/Unit/Core/Extension/ExtendableTestExampleExtendableClassDotNotation.php @@ -0,0 +1,36 @@ +protectedFoo; + } +} diff --git a/tests/Unit/Core/Extension/ExtendableTestExampleExtendableSoftImplementComboClass.php b/tests/Unit/Core/Extension/ExtendableTestExampleExtendableSoftImplementComboClass.php new file mode 100644 index 0000000000..aa475976f0 --- /dev/null +++ b/tests/Unit/Core/Extension/ExtendableTestExampleExtendableSoftImplementComboClass.php @@ -0,0 +1,16 @@ + Date: Fri, 28 Apr 2023 00:29:15 +0100 Subject: [PATCH 21/75] chore: resolve issues breaking behat tests --- app/Providers/AppServiceProvider.php | 4 ++++ src/Ushahidi/Authzn/ServiceProvider.php | 2 +- src/Ushahidi/Core/Entity/Post.php | 3 +++ src/Ushahidi/Modules/V3/ServiceProvider.php | 1 + .../Modules/V5/Actions/Post/Commands/CreatePostCommand.php | 4 ++-- .../Modules/V5/Actions/Post/Commands/UpdatePostCommand.php | 2 +- .../Modules/V5/Http/Resources/Post/PostResource.php | 6 +++--- .../Modules/V5/Http/Resources/Survey/SurveyResource.php | 2 +- 8 files changed, 16 insertions(+), 8 deletions(-) diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 7d9ab34630..2417423eb8 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -15,6 +15,8 @@ use Ushahidi\Modules\V5\Repository\Survey; use Ushahidi\Modules\V5\Repository\Tos\TosRepository; use Ushahidi\Modules\V5\Repository\Tos\EloquentTosRepository; +use Ushahidi\Modules\V5\Repository\Category\CategoryRepository; +use Ushahidi\Modules\V5\Repository\Category\EloquentCategoryRepository; use Ushahidi\Modules\V5\Repository\Post\PostRepository; use Ushahidi\Modules\V5\Repository\Post\EloquentPostRepository; use Ushahidi\Modules\V5\Repository\Role\RoleRepository; @@ -23,6 +25,8 @@ use Ushahidi\Modules\V5\Repository\CountryCode\EloquentCountryCodeRepository; use Ushahidi\Modules\V5\Repository\Permissions\PermissionsRepository; use Ushahidi\Modules\V5\Repository\Permissions\EloquentPermissionsRepository; +use Ushahidi\Modules\V5\Repository\Translation\TranslationRepository; +use Ushahidi\Modules\V5\Repository\Translation\EloquentTranslationRepository; class AppServiceProvider extends ServiceProvider { diff --git a/src/Ushahidi/Authzn/ServiceProvider.php b/src/Ushahidi/Authzn/ServiceProvider.php index afd6398201..576bebd962 100644 --- a/src/Ushahidi/Authzn/ServiceProvider.php +++ b/src/Ushahidi/Authzn/ServiceProvider.php @@ -4,7 +4,7 @@ use Ushahidi\Core\Tool\Acl; use Ushahidi\Contracts\Acl as AclInterface; -use Ushahidi\Contracts\Repository\Entity\RoleRepository; +use Ushahidi\Core\Entity\RoleRepository; use Illuminate\Support\ServiceProvider as BaseServiceProvider; class ServiceProvider extends BaseServiceProvider diff --git a/src/Ushahidi/Core/Entity/Post.php b/src/Ushahidi/Core/Entity/Post.php index 7f127d314b..1c67531d25 100644 --- a/src/Ushahidi/Core/Entity/Post.php +++ b/src/Ushahidi/Core/Entity/Post.php @@ -14,4 +14,7 @@ interface Post extends Entity { + const DEFAULT_STATUS = 'draft'; + const DEFAULT_LOCAL = 'en_US'; + } diff --git a/src/Ushahidi/Modules/V3/ServiceProvider.php b/src/Ushahidi/Modules/V3/ServiceProvider.php index 94a0ec933d..359dd678ae 100644 --- a/src/Ushahidi/Modules/V3/ServiceProvider.php +++ b/src/Ushahidi/Modules/V3/ServiceProvider.php @@ -7,6 +7,7 @@ use Ushahidi\Core\Entity\SetRepository; use Ushahidi\Core\Entity\PostRepository; use Ushahidi\Core\Entity\UserRepository; +use Ushahidi\Core\Entity\RoleRepository; use Ushahidi\Core\Entity\MediaRepository; use Ushahidi\Core\Entity\ApiKeyRepository; use Ushahidi\Core\Entity\ConfigRepository; diff --git a/src/Ushahidi/Modules/V5/Actions/Post/Commands/CreatePostCommand.php b/src/Ushahidi/Modules/V5/Actions/Post/Commands/CreatePostCommand.php index 2d41e3f8e2..5a1fb1a054 100644 --- a/src/Ushahidi/Modules/V5/Actions/Post/Commands/CreatePostCommand.php +++ b/src/Ushahidi/Modules/V5/Actions/Post/Commands/CreatePostCommand.php @@ -6,7 +6,7 @@ use Ushahidi\Modules\V5\Models\Post\Post; use Ushahidi\Modules\V5\Requests\PostRequest; use Illuminate\Support\Facades\Auth; -use Ushahidi\Core\Entity\Post as PostEntity; +use Ushahidi\Core\Ohanzee\Entities\Post as PostEntity; use Ushahidi\Modules\V5\Models\Stage; class CreatePostCommand implements Command @@ -28,7 +28,7 @@ class CreatePostCommand implements Command private $post_content; private $translations; - + // todo: At some point we might want to change it into a parameter const DEFAULT_LANUGAGE = 'en'; private $availableLanguages; diff --git a/src/Ushahidi/Modules/V5/Actions/Post/Commands/UpdatePostCommand.php b/src/Ushahidi/Modules/V5/Actions/Post/Commands/UpdatePostCommand.php index db23d46b74..983e77a315 100644 --- a/src/Ushahidi/Modules/V5/Actions/Post/Commands/UpdatePostCommand.php +++ b/src/Ushahidi/Modules/V5/Actions/Post/Commands/UpdatePostCommand.php @@ -5,7 +5,7 @@ use App\Bus\Command\Command; use Ushahidi\Modules\V5\Models\Post\Post; use Ushahidi\Modules\V5\Requests\PostRequest; -use Ushahidi\Core\Entity\Post as PostEntity; +use Ushahidi\Core\Ohanzee\Entities\Post as PostEntity; use Illuminate\Support\Facades\Auth; class UpdatePostCommand implements Command diff --git a/src/Ushahidi/Modules/V5/Http/Resources/Post/PostResource.php b/src/Ushahidi/Modules/V5/Http/Resources/Post/PostResource.php index e863869cbe..2d020a926c 100644 --- a/src/Ushahidi/Modules/V5/Http/Resources/Post/PostResource.php +++ b/src/Ushahidi/Modules/V5/Http/Resources/Post/PostResource.php @@ -3,15 +3,15 @@ namespace Ushahidi\Modules\V5\Http\Resources\Post; use Illuminate\Support\Collection; -use Ushahidi\Core\Entity\Post; +use Ushahidi\Core\Ohanzee\Entities\Post; use Ushahidi\Modules\V5\Models\Post\Post as v5Post; -use Ushahidi\Modules\V5\Http\Resources\Survey\TaskCollection; use Ushahidi\Modules\V5\Http\Resources\BaseResource; +use Ushahidi\Modules\V5\Http\Resources\LockCollection; use Ushahidi\Modules\V5\Http\Resources\PostValueCollection; +use Ushahidi\Modules\V5\Http\Resources\Survey\TaskCollection; use Ushahidi\Modules\V5\Http\Resources\TranslationCollection; use Ushahidi\Modules\V5\Http\Resources\ContactPointerResource; use Ushahidi\Modules\V5\Http\Resources\MessagePointerResource; -use Ushahidi\Modules\V5\Http\Resources\LockCollection; class PostResource extends BaseResource { diff --git a/src/Ushahidi/Modules/V5/Http/Resources/Survey/SurveyResource.php b/src/Ushahidi/Modules/V5/Http/Resources/Survey/SurveyResource.php index 625e1cfd2f..a3f3f08ce8 100644 --- a/src/Ushahidi/Modules/V5/Http/Resources/Survey/SurveyResource.php +++ b/src/Ushahidi/Modules/V5/Http/Resources/Survey/SurveyResource.php @@ -1,7 +1,7 @@ Date: Fri, 28 Apr 2023 00:38:54 +0100 Subject: [PATCH 22/75] chore: resolve lint errors --- src/Ushahidi/Core/Entity/Post.php | 1 - tests/Unit/Core/Extension/ExtensionTest.php | 1 - 2 files changed, 2 deletions(-) diff --git a/src/Ushahidi/Core/Entity/Post.php b/src/Ushahidi/Core/Entity/Post.php index 1c67531d25..c39b2668ff 100644 --- a/src/Ushahidi/Core/Entity/Post.php +++ b/src/Ushahidi/Core/Entity/Post.php @@ -16,5 +16,4 @@ interface Post extends Entity { const DEFAULT_STATUS = 'draft'; const DEFAULT_LOCAL = 'en_US'; - } diff --git a/tests/Unit/Core/Extension/ExtensionTest.php b/tests/Unit/Core/Extension/ExtensionTest.php index 9debadaa1a..9daff17ae3 100644 --- a/tests/Unit/Core/Extension/ExtensionTest.php +++ b/tests/Unit/Core/Extension/ExtensionTest.php @@ -18,4 +18,3 @@ public function testExtendingBehavior() $this->assertEquals('bar', $subject->behaviorAttribute); } } - From 29b46c1cef750843e254d29644cf25d810a67930 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Mon, 8 May 2023 11:35:05 +0100 Subject: [PATCH 23/75] chore: syntax modifications --- src/Ushahidi/Contracts/Repository/EntityGet.php | 4 +++- src/Ushahidi/Core/Concerns/Acl.php | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Ushahidi/Contracts/Repository/EntityGet.php b/src/Ushahidi/Contracts/Repository/EntityGet.php index 2ed3e41a92..6982187124 100644 --- a/src/Ushahidi/Contracts/Repository/EntityGet.php +++ b/src/Ushahidi/Contracts/Repository/EntityGet.php @@ -15,7 +15,9 @@ interface EntityGet { /** - * @param mixed $id + * Finds an entity with ID. + * + * @param int|string $id * @param array $options * * @return \Ushahidi\Contracts\Entity diff --git a/src/Ushahidi/Core/Concerns/Acl.php b/src/Ushahidi/Core/Concerns/Acl.php index 45974aa225..c34a20b222 100644 --- a/src/Ushahidi/Core/Concerns/Acl.php +++ b/src/Ushahidi/Core/Concerns/Acl.php @@ -13,13 +13,13 @@ namespace Ushahidi\Core\Concerns; -use Ushahidi\Contracts\AccessControl; +use Ushahidi\Contracts\AccessControl as AccessControlInterface; trait Acl { public $acl; - public function setAcl(AccessControl $acl) + public function setAcl(AccessControlInterface $acl) { $this->acl = $acl; } From d7e4555a9d6b32a56e682346a46a057064ea21a8 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Mon, 8 May 2023 11:35:58 +0100 Subject: [PATCH 24/75] feat:(wip) Eloquent Model & Repository implementation --- .../Core/Eloquent/Concerns/HasState.php | 29 ++++ .../Core/Eloquent/Contracts/Cacheable.php | 20 +++ src/Ushahidi/Core/Eloquent/Criterion.php | 13 ++ .../Core/Eloquent/Critieria/Eager.php | 34 +++++ .../Core/Eloquent/Critieria/Latest.php | 17 +++ .../Core/Eloquent/Critieria/Order.php | 39 ++++++ src/Ushahidi/Core/Eloquent/Elegible.php | 13 ++ src/Ushahidi/Core/Eloquent/Models/User.php | 20 +++ src/Ushahidi/Core/Eloquent/Repository.php | 124 ++++++++++++++++++ 9 files changed, 309 insertions(+) create mode 100644 src/Ushahidi/Core/Eloquent/Concerns/HasState.php create mode 100644 src/Ushahidi/Core/Eloquent/Contracts/Cacheable.php create mode 100644 src/Ushahidi/Core/Eloquent/Criterion.php create mode 100644 src/Ushahidi/Core/Eloquent/Critieria/Eager.php create mode 100644 src/Ushahidi/Core/Eloquent/Critieria/Latest.php create mode 100644 src/Ushahidi/Core/Eloquent/Critieria/Order.php create mode 100644 src/Ushahidi/Core/Eloquent/Elegible.php create mode 100644 src/Ushahidi/Core/Eloquent/Models/User.php create mode 100644 src/Ushahidi/Core/Eloquent/Repository.php diff --git a/src/Ushahidi/Core/Eloquent/Concerns/HasState.php b/src/Ushahidi/Core/Eloquent/Concerns/HasState.php new file mode 100644 index 0000000000..247f66b4ba --- /dev/null +++ b/src/Ushahidi/Core/Eloquent/Concerns/HasState.php @@ -0,0 +1,29 @@ +original)) { + $this->syncOriginal(); + } + + $this->fill($data); + + return $this; + } + + public function hasChanged($key, $array_key = null) + { + return $this->isDirty($key); + } + + public function getChanged() + { + return $this->getDirty(); + } +} diff --git a/src/Ushahidi/Core/Eloquent/Contracts/Cacheable.php b/src/Ushahidi/Core/Eloquent/Contracts/Cacheable.php new file mode 100644 index 0000000000..c10e2b4c31 --- /dev/null +++ b/src/Ushahidi/Core/Eloquent/Contracts/Cacheable.php @@ -0,0 +1,20 @@ +relations = Arr::flatten($relations); + } + + /** + * @param \Illuminate\Database\Eloquent\Builder|mixed $model + * + * @return \Illuminate\Database\Eloquent\Builder|mixed + */ + public function apply($model) + { + return $model->with($this->relations); + } +} diff --git a/src/Ushahidi/Core/Eloquent/Critieria/Latest.php b/src/Ushahidi/Core/Eloquent/Critieria/Latest.php new file mode 100644 index 0000000000..0068221b8e --- /dev/null +++ b/src/Ushahidi/Core/Eloquent/Critieria/Latest.php @@ -0,0 +1,17 @@ +column = $column; + $this->sortBy = $sortBy; + } +} diff --git a/src/Ushahidi/Core/Eloquent/Critieria/Order.php b/src/Ushahidi/Core/Eloquent/Critieria/Order.php new file mode 100644 index 0000000000..825f1b45a3 --- /dev/null +++ b/src/Ushahidi/Core/Eloquent/Critieria/Order.php @@ -0,0 +1,39 @@ +column = $column; + $this->sortBy = $sortBy; + } + + /** + * @param \Illuminate\Database\Eloquent\Builder|mixed $model + * + * @return \Illuminate\Database\Eloquent\Builder|mixed + */ + public function apply($model) + { + return $model->orderBy($this->column, $this->sortBy); + } +} diff --git a/src/Ushahidi/Core/Eloquent/Elegible.php b/src/Ushahidi/Core/Eloquent/Elegible.php new file mode 100644 index 0000000000..099cb4d7a9 --- /dev/null +++ b/src/Ushahidi/Core/Eloquent/Elegible.php @@ -0,0 +1,13 @@ +container = $container; + $this->cache = $cache; + + if ($this->entity) { + $this->resolveModel(); + } + } + + /** + * @param string $entity + * + * @return self + * + * @throws \Illuminate\Contracts\Container\BindingResolutionException + */ + public function setEntity($entity): self + { + $this->entity = $entity; + $this->resolveModel(); + + return $this; + } + + /** + * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Builder + * @throws \Illuminate\Contracts\Container\BindingResolutionException + */ + private function resolveModel(): void + { + $this->model = $this->container->make($this->entity); + } + + /** + * Sets listed criteria for entity. + * + * @param mixed ...$criteria + * + * @return self + */ + public function withCriteria(...$criteria): self + { + $criteria = Arr::flatten($criteria); + + foreach ($criteria as $criterion) { + /** @var \Ushahidi\Core\Eloquent\Criterion $criterion */ + $this->model = $criterion->apply($this->model); + } + + return $this; + } + + /** + * Defines cache key. + * + * @return string + */ + public function cacheKey(): string + { + return $this->model->getTable(); + } + + /** + * Get cache time-to-live value from property or method if available. + * + * @return int + */ + private function cacheTTLValue(): int + { + if (method_exists($this, 'cacheTTL')) { + return $this->cacheTTL(); + } + + return $this->cacheTTL; + } +} From f7b071d8517b7d794345d068fa211818c28858fe Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Mon, 8 May 2023 16:08:22 +0100 Subject: [PATCH 25/75] chore: changes to eloquent package --- .../Core/Eloquent/Concerns/HasState.php | 3 +- src/Ushahidi/Core/Eloquent/Models/User.php | 32 +++++++++++-------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/Ushahidi/Core/Eloquent/Concerns/HasState.php b/src/Ushahidi/Core/Eloquent/Concerns/HasState.php index 247f66b4ba..bdb6773567 100644 --- a/src/Ushahidi/Core/Eloquent/Concerns/HasState.php +++ b/src/Ushahidi/Core/Eloquent/Concerns/HasState.php @@ -2,7 +2,8 @@ namespace Ushahidi\Core\Eloquent; /** - * @mixin \Ushahidi\Contracts\Entity + * @property-read \Illuminate\Database\Eloquent\Model $model + * @see \Ushahidi\Contracts\Entity */ trait HasState { diff --git a/src/Ushahidi/Core/Eloquent/Models/User.php b/src/Ushahidi/Core/Eloquent/Models/User.php index 49c222f48f..fc6beb7877 100644 --- a/src/Ushahidi/Core/Eloquent/Models/User.php +++ b/src/Ushahidi/Core/Eloquent/Models/User.php @@ -1,20 +1,26 @@ getAttributeFromArray($this->getKeyName()); + } + + public function getResource() + { + return 'users'; + } + + public function asArray() + { + return $this->toArray(); + } } From 4156e3f8800cfb9d0ca52fe3316f2dcd381ba4a9 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Thu, 8 Jun 2023 14:09:34 +0100 Subject: [PATCH 26/75] chore: resolve language error with Set Ohanzee Entity class and remove redundant file --- src/Ushahidi/Core/Ohanzee/Entities/Set.php | 2 +- src/Ushahidi/Modules/V5/Entity/PostEntity.php | 25 ------------------- 2 files changed, 1 insertion(+), 26 deletions(-) delete mode 100644 src/Ushahidi/Modules/V5/Entity/PostEntity.php diff --git a/src/Ushahidi/Core/Ohanzee/Entities/Set.php b/src/Ushahidi/Core/Ohanzee/Entities/Set.php index d5afe3e706..e5bad2e0b9 100644 --- a/src/Ushahidi/Core/Ohanzee/Entities/Set.php +++ b/src/Ushahidi/Core/Ohanzee/Entities/Set.php @@ -67,7 +67,7 @@ protected function getDerived() ]; } - public static function buildEntity(array $input, $action = "create", array $old_Values = null): Set + public static function buildEntity(array $input, $action = "create", array $old_Values = null) { if ($action === "update") { diff --git a/src/Ushahidi/Modules/V5/Entity/PostEntity.php b/src/Ushahidi/Modules/V5/Entity/PostEntity.php deleted file mode 100644 index 86c67b776e..0000000000 --- a/src/Ushahidi/Modules/V5/Entity/PostEntity.php +++ /dev/null @@ -1,25 +0,0 @@ -id = $id; - } - - public static function fromModel(Post $post): self - { - return new self($post->id); - } - - public function getId(): int - { - return $this->id; - } -} From 701dab427d6fd3049e229db155b16f7a1bfd3a16 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Wed, 5 Jul 2023 14:45:18 +0100 Subject: [PATCH 27/75] chore: resolve entities usage via ohanzee and eloquent --- src/Ushahidi/Core/Entity/Layer.php | 9 +++ src/Ushahidi/Core/Ohanzee/Entities/Layer.php | 3 +- .../{Entity => Ohanzee/Entities}/SetPost.php | 2 +- .../Contact/Commands/CreateContactCommand.php | 4 +- .../Layer/Commands/CreateLayerCommand.php | 2 +- .../Layer/Commands/UpdateLayerCommand.php | 2 +- .../Message/Commands/UpdateMessageCommand.php | 2 +- .../Commands/CreateNotificationCommand.php | 4 +- .../Commands/UpdateNotificationCommand.php | 2 +- .../Resources/Contact/ContactResource.php | 2 +- .../V5/Http/Resources/Layer/LayerResource.php | 2 +- .../Resources/Message/MessageResource.php | 2 +- src/Ushahidi/Modules/V5/Models/Tos.php | 2 +- .../Modules/V5/Policies/CategoryPolicy.php | 12 ++-- .../Modules/V5/Policies/CollectionPolicy.php | 24 ++++---- .../V5/Policies/CollectionPostPolicy.php | 45 ++++---------- .../Modules/V5/Policies/ContactPolicy.php | 53 ++++------------ .../Modules/V5/Policies/LayerPolicy.php | 50 ++++----------- .../Modules/V5/Policies/MessagePolicy.php | 61 ++++++------------- .../V5/Policies/NotificationPolicy.php | 52 ++++------------ .../Modules/V5/Policies/PermissionsPolicy.php | 41 +++---------- .../Modules/V5/Policies/PostPolicy.php | 45 +++++++------- .../Modules/V5/Policies/SurveyPolicy.php | 24 ++++---- .../Modules/V5/Policies/UserPolicy.php | 10 +-- .../Layer/EloquentLayerRepository.php | 2 +- .../V5/Repository/Layer/LayerRepository.php | 2 +- 26 files changed, 163 insertions(+), 296 deletions(-) create mode 100644 src/Ushahidi/Core/Entity/Layer.php rename src/Ushahidi/Core/{Entity => Ohanzee/Entities}/SetPost.php (94%) diff --git a/src/Ushahidi/Core/Entity/Layer.php b/src/Ushahidi/Core/Entity/Layer.php new file mode 100644 index 0000000000..89971f4940 --- /dev/null +++ b/src/Ushahidi/Core/Entity/Layer.php @@ -0,0 +1,9 @@ +toArray()); + $accessedCategory = new OhanzeeCategory($category->toArray()); return $this->authorizer->setUser($user)->isAllowed($accessedCategory, 'search'); } public function create(User $user) { - return $this->authorizer->setUser($user)->isAllowed(new StaticCategory, 'create'); + return $this->authorizer->setUser($user)->isAllowed(new OhanzeeCategory, 'create'); } public function show(User $user, EloquentCategory $category) { - $accessedCategory = new StaticCategory($category->toArray()); + $accessedCategory = new OhanzeeCategory($category->toArray()); return $this->authorizer->setUser($user)->isAllowed($accessedCategory, 'read'); } public function delete(User $user, EloquentCategory $category) { - $accessedCategory = new StaticCategory($category->toArray()); + $accessedCategory = new OhanzeeCategory($category->toArray()); return $this->authorizer->setUser($user)->isAllowed($accessedCategory, 'delete'); } public function update(User $user, EloquentCategory $category) { - $accessedCategory = new StaticCategory($category->toArray()); + $accessedCategory = new OhanzeeCategory($category->toArray()); return $this->authorizer->setUser($user)->isAllowed($accessedCategory, 'update'); } } diff --git a/src/Ushahidi/Modules/V5/Policies/CollectionPolicy.php b/src/Ushahidi/Modules/V5/Policies/CollectionPolicy.php index c03d9b433e..7f8a25e04f 100644 --- a/src/Ushahidi/Modules/V5/Policies/CollectionPolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/CollectionPolicy.php @@ -4,8 +4,8 @@ use App\Bus\Query\QueryBus; use Ushahidi\Authzn\GenericUser as User; -use Ushahidi\Core\Ohanzee\Entities\Set as StaticSet; -use Ushahidi\Modules\V5\Models\Set; +use Ushahidi\Core\Ohanzee\Entities\Set as OhanzeeSet; +use Ushahidi\Modules\V5\Models\Set as EloquentSet; use Ushahidi\Core\Entity\Permission; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; @@ -52,27 +52,27 @@ public function __construct(QueryBus $queryBus) */ public function index() { - $set_entity = new StaticSet(); + $set_entity = new OhanzeeSet(); return $this->isAllowed($set_entity, 'search'); } - public function show(User $user, Set $set) + public function show(User $user, EloquentSet $set) { - $set_entity = new StaticSet(); + $set_entity = new OhanzeeSet(); $set_entity->setState($set->toArray()); return $this->isAllowed($set_entity, 'read'); } - public function delete(User $user, Set $set) + public function delete(User $user, EloquentSet $set) { - $set_entity = new StaticSet(); + $set_entity = new OhanzeeSet(); $set_entity->setState($set->toArray()); return $this->isAllowed($set_entity, 'delete'); } - public function update(User $user, Set $set) + public function update(User $user, EloquentSet $set) { - $set_entity = new StaticSet(); + $set_entity = new OhanzeeSet(); $set_entity->setState($set->toArray()); return $this->isAllowed($set_entity, 'update'); } @@ -80,7 +80,7 @@ public function update(User $user, Set $set) public function store() { // we convert to a form entity to be able to continue using the old authorizers and classes. - $set_entity = new StaticSet(); + $set_entity = new OhanzeeSet(); return $this->isAllowed($set_entity, 'create'); } @@ -105,7 +105,7 @@ public function isAllowed($entity, $privilege) // Non-admin users are not allowed to make sets featured $old_values = []; if ($entity->id) { - $old_set = Set::where('id', '=', $entity->id)->first(); + $old_set = EloquentSet::where('id', '=', $entity->id)->first(); $old_values = $old_set->toArray(); } if (in_array($privilege, ['create', 'update']) @@ -148,7 +148,7 @@ public function isAllowed($entity, $privilege) return false; } - protected function isVisibleToUser(StaticSet $entity, $user) + protected function isVisibleToUser(OhanzeeSet $entity, $user) { if ($entity->role) { return in_array($user->role, $entity->role); diff --git a/src/Ushahidi/Modules/V5/Policies/CollectionPostPolicy.php b/src/Ushahidi/Modules/V5/Policies/CollectionPostPolicy.php index 7d6d797674..4f0bd5eee3 100644 --- a/src/Ushahidi/Modules/V5/Policies/CollectionPostPolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/CollectionPostPolicy.php @@ -3,16 +3,15 @@ namespace Ushahidi\Modules\V5\Policies; use Ushahidi\Authzn\GenericUser as User; -use Ushahidi\Core\Entity; -use Ushahidi\Modules\V5\Models\SetPost; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Ohanzee\Entities\SetPost as OhanzeeSetPost; +use Ushahidi\Modules\V5\Models\SetPost as EloquentSetPost; +use Ushahidi\Core\Entity\Permission; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\PrivateDeployment; use Ushahidi\Core\Concerns\OwnerAccess; use Ushahidi\Core\Concerns\Acl as AccessControlList; -use Illuminate\Support\Facades\Auth; use App\Bus\Query\QueryBus; use Ushahidi\Modules\V5\Actions\Collection\Queries\FetchCollectionByIdQuery; @@ -44,49 +43,31 @@ public function __construct(QueryBus $queryBus) { $this->queryBus = $queryBus; } - /** - * - * @return bool - */ + public function index() { - $set_post_entity = new Entity\SetPost(); + $set_post_entity = new OhanzeeSetPost(); return $this->isAllowed($set_post_entity, 'search'); } - /** - * - * @param User $user - * @param SetPost $set_post - * @return bool - */ - public function show(User $user, SetPost $set_post) + public function show(User $user, EloquentSetPost $set_post) { - $set_post_entity = new Entity\SetPost(); + $set_post_entity = new OhanzeeSetPost(); $set_post_entity->setState($set_post->toArray()); return $this->isAllowed($set_post_entity, 'read'); } - /** - * - * @param GenericUser $user - * @param SetPost $set_post - * @return bool - */ - public function delete(User $user, SetPost $set_post) + public function delete(User $user, EloquentSetPost $set_post) { - $set_post_entity = new Entity\SetPost(); + $set_post_entity = new OhanzeeSetPost(); $set_post_entity->setState($set_post->toArray()); return $this->isAllowed($set_post_entity, 'delete'); } - /** - * @param SetPost $set - * @return bool - */ - public function store(User $user, SetPost $set_post) + + public function store(User $user, EloquentSetPost $set_post) { // we convert to a form entity to be able to continue using the old authorizers and classes. - $set_post_entity = new Entity\SetPost(); + $set_post_entity = new OhanzeeSetPost(); $set_post_entity->setState($set_post->toArray()); return $this->isAllowed($set_post_entity, 'create'); } @@ -103,7 +84,7 @@ public function isAllowed($entity, $privilege) // These checks are run within the user context. $user = $authorizer->getUser(); //$user = Auth::user(); - + // Only logged in users have access if the deployment is private if (!$this->canAccessDeployment($user)) { diff --git a/src/Ushahidi/Modules/V5/Policies/ContactPolicy.php b/src/Ushahidi/Modules/V5/Policies/ContactPolicy.php index 22fdd26a60..2cb09e51f3 100644 --- a/src/Ushahidi/Modules/V5/Policies/ContactPolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/ContactPolicy.php @@ -3,9 +3,8 @@ namespace Ushahidi\Modules\V5\Policies; use Ushahidi\Authzn\GenericUser as User; -use Ushahidi\Core\Entity; -use Ushahidi\Modules\V5\Models\Contact; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Ohanzee\Entities\Contact as OhanzeeContact; +use Ushahidi\Modules\V5\Models\Contact as EloquentContact; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\PrivAccess; @@ -31,66 +30,40 @@ class ContactPolicy // Check that the user has the necessary permissions use AccessControlList; - + use OwnerAccess; protected $user; - - /** - * - * @param \Ushahidi\Modules\User $user - * @return bool - */ public function index() { - $empty_contact_entity = new Entity\Contact(); + $empty_contact_entity = new OhanzeeContact(); return $this->isAllowed($empty_contact_entity, 'search'); } - /** - * - * @param GenericUser $user - * @param Contact $contact - * @return bool - */ - public function show(User $user, Contact $contact) + public function show(User $user, EloquentContact $contact) { - $contact_entity = new Entity\Contact($contact->toArray()); + $contact_entity = new OhanzeeContact($contact->toArray()); return $this->isAllowed($contact_entity, 'read'); } - /** - * - * @param GenericUser $user - * @param Contact $contact - * @return bool - */ - public function delete(User $user, Contact $contact) + public function delete(User $user, EloquentContact $contact) { - $contact_entity = new Entity\Contact($contact->toArray()); + $contact_entity = new OhanzeeContact($contact->toArray()); return $this->isAllowed($contact_entity, 'delete'); } - /** - * @param Contact $contact - * @return bool - */ - public function update(User $user, Contact $contact) + + public function update(User $user, EloquentContact $contact) { // we convert to a Contact entity to be able to continue using the old authorizers and classes. - $contact_entity = new Entity\Contact($contact->toArray()); + $contact_entity = new OhanzeeContact($contact->toArray()); return $this->isAllowed($contact_entity, 'update'); } - - /** - * @param Contact $contact - * @return bool - */ - public function store(User $user, Contact $contact) + public function store(User $user, EloquentContact $contact) { // we convert to a contact_entity entity to be able to continue using the old authorizers and classes. - $contact_entity = new Entity\Contact($contact->toArray()); + $contact_entity = new OhanzeeContact($contact->toArray()); return $this->isAllowed($contact_entity, 'create'); } diff --git a/src/Ushahidi/Modules/V5/Policies/LayerPolicy.php b/src/Ushahidi/Modules/V5/Policies/LayerPolicy.php index 6cf71222ce..0bc77326e0 100644 --- a/src/Ushahidi/Modules/V5/Policies/LayerPolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/LayerPolicy.php @@ -3,8 +3,8 @@ namespace Ushahidi\Modules\V5\Policies; use Ushahidi\Authzn\GenericUser as User; -use Ushahidi\Core\Entity; -use Ushahidi\Modules\V5\Models\Layer; +use Ushahidi\Core\Ohanzee\Entities\Layer as OhanzeeLayer; +use Ushahidi\Modules\V5\Models\Layer as EloquentLayer; use Ushahidi\Contracts\Permission; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; @@ -31,66 +31,42 @@ class LayerPolicy // Check that the user has the necessary permissions use AccessControlList; - + use OwnerAccess; protected $user; - /** - * - * @param \Ushahidi\Modules\User $user - * @return bool - */ public function index() { - $empty_layer_entity = new Entity\Layer(); + $empty_layer_entity = new OhanzeeLayer(); return $this->isAllowed($empty_layer_entity, 'search'); } - /** - * - * @param GenericUser $user - * @param Layer $layer - * @return bool - */ - public function show(User $user, Layer $layer) + public function show(User $user, EloquentLayer $layer) { - $layer_entity = new Entity\Layer($layer->toArray()); + $layer_entity = new OhanzeeLayer($layer->toArray()); return $this->isAllowed($layer_entity, 'read'); } - /** - * - * @param GenericUser $user - * @param Layer $layer - * @return bool - */ - public function delete(User $user, Layer $layer) + public function delete(User $user, EloquentLayer $layer) { - $layer_entity = new Entity\Layer($layer->toArray()); + $layer_entity = new OhanzeeLayer($layer->toArray()); return $this->isAllowed($layer_entity, 'delete'); } - /** - * @param Layer $layer - * @return bool - */ - public function update(User $user, Layer $layer) + + public function update(User $user, EloquentLayer $layer) { // we convert to a Layer entity to be able to continue using the old authorizers and classes. - $layer_entity = new Entity\Layer($layer->toArray()); + $layer_entity = new OhanzeeLayer($layer->toArray()); return $this->isAllowed($layer_entity, 'update'); } - /** - * @param Layer $layer - * @return bool - */ - public function store(User $user, Layer $layer) + public function store(User $user, EloquentLayer $layer) { // we convert to a layer_entity entity to be able to continue using the old authorizers and classes. - $layer_entity = new Entity\Layer($layer->toArray()); + $layer_entity = new OhanzeeLayer($layer->toArray()); return $this->isAllowed($layer_entity, 'create'); } diff --git a/src/Ushahidi/Modules/V5/Policies/MessagePolicy.php b/src/Ushahidi/Modules/V5/Policies/MessagePolicy.php index c898197ac0..262cca2570 100644 --- a/src/Ushahidi/Modules/V5/Policies/MessagePolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/MessagePolicy.php @@ -2,16 +2,16 @@ namespace Ushahidi\Modules\V5\Policies; -use Ushahidi\Authzn\GenericUser as User; -use Ushahidi\Core\Entity; -use Ushahidi\Modules\V5\Models\Message; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Entity\Permission; +use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\AdminAccess; +use Ushahidi\Core\Concerns\OwnerAccess; use Ushahidi\Core\Concerns\UserContext; -use Ushahidi\Core\Concerns\PrivAccess; +use Ushahidi\Authzn\GenericUser as User; use Ushahidi\Core\Concerns\PrivateDeployment; -use Ushahidi\Core\Concerns\OwnerAccess; use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Modules\V5\Models\Message as EloquentMessage; +use Ushahidi\Core\Ohanzee\Entities\Message as OhanzeeMessage; class MessagePolicy { @@ -31,76 +31,51 @@ class MessagePolicy // Check that the user has the necessary permissions use AccessControlList; - + use OwnerAccess; protected $user; - private function getEntity(Message $message) + private function getEntity(EloquentMessage $message) { $data = $message->toArray(); $data['contact_type'] = $data['contact']['type']; $data['contact'] = $data['contact']['contact']; - return new Entity\Message($data); + return new OhanzeeMessage($data); } - /** - * - * @param \Ushahidi\Modules\User $user - * @return bool - */ + public function index() { - $empty_message_entity = new Entity\Message(); + $empty_message_entity = new OhanzeeMessage(); return $this->isAllowed($empty_message_entity, 'search'); } - /** - * - * @param GenericUser $user - * @param Message $message - * @return bool - */ - public function show(User $user, Message $message) + public function show(User $user, EloquentMessage $message) { $message_entity = $this->getEntity($message); return $this->isAllowed($message_entity, 'read'); } - /** - * - * @param GenericUser $user - * @param Message $message - * @return bool - */ - public function delete(User $user, Message $message) + public function delete(User $user, EloquentMessage $message) { - $message_entity = new Entity\Message($message->toArray()); + $message_entity = new OhanzeeMessage($message->toArray()); return $this->isAllowed($message_entity, 'delete'); } - /** - * @param Message $message - * @return bool - */ - public function update(User $user, Message $message) + + public function update(User $user, EloquentMessage $message) { // we convert to a Message entity to be able to continue using the old authorizers and classes. $message_entity = $this->getEntity($message); return $this->isAllowed($message_entity, 'update'); } - - /** - * @param Message $message - * @return bool - */ - public function store(User $user, Message $message) + public function store(User $user, EloquentMessage $message) { // we convert to a message_entity entity to be able to continue using the old authorizers and classes. - $message_entity = new Entity\Message($message->toArray()); + $message_entity = new OhanzeeMessage($message->toArray()); return $this->isAllowed($message_entity, 'create'); } - /** * @param $entity * @param string $privilege diff --git a/src/Ushahidi/Modules/V5/Policies/NotificationPolicy.php b/src/Ushahidi/Modules/V5/Policies/NotificationPolicy.php index a3a4d93432..025dad94cf 100644 --- a/src/Ushahidi/Modules/V5/Policies/NotificationPolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/NotificationPolicy.php @@ -3,8 +3,8 @@ namespace Ushahidi\Modules\V5\Policies; use Ushahidi\Authzn\GenericUser as User; -use Ushahidi\Core\Entity; -use Ushahidi\Modules\V5\Models\Notification; +use Ushahidi\Core\Ohanzee\Entities\Notification as OhanzeeNotification; +use Ushahidi\Modules\V5\Models\Notification as EloquentNotification; use Ushahidi\Contracts\Permission; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; @@ -31,66 +31,40 @@ class NotificationPolicy // Check that the user has the necessary permissions use AccessControlList; - + use OwnerAccess; protected $user; - - /** - * - * @param \Ushahidi\Modules\User $user - * @return bool - */ public function index() { - $empty_notification_entity = new Entity\Notification(); + $empty_notification_entity = new OhanzeeNotification(); return $this->isAllowed($empty_notification_entity, 'search'); } - /** - * - * @param GenericUser $user - * @param Notification $notification - * @return bool - */ - public function show(User $user, Notification $notification) + public function show(User $user, EloquentNotification $notification) { - $notification_entity = new Entity\Notification($notification->toArray()); + $notification_entity = new OhanzeeNotification($notification->toArray()); return $this->isAllowed($notification_entity, 'read'); } - /** - * - * @param GenericUser $user - * @param Notification $notification - * @return bool - */ - public function delete(User $user, Notification $notification) + public function delete(User $user, EloquentNotification $notification) { - $notification_entity = new Entity\Notification($notification->toArray()); + $notification_entity = new OhanzeeNotification($notification->toArray()); return $this->isAllowed($notification_entity, 'delete'); } - /** - * @param Notification $notification - * @return bool - */ - public function update(User $user, Notification $notification) + + public function update(User $user, EloquentNotification $notification) { // we convert to a Notification entity to be able to continue using the old authorizers and classes. - $notification_entity = new Entity\Notification($notification->toArray()); + $notification_entity = new OhanzeeNotification($notification->toArray()); return $this->isAllowed($notification_entity, 'update'); } - - /** - * @param Notification $notification - * @return bool - */ - public function store(User $user, Notification $notification) + public function store(User $user, EloquentNotification $notification) { // we convert to a notification_entity entity to be able to continue using the old authorizers and classes. - $notification_entity = new Entity\Notification($notification->toArray()); + $notification_entity = new OhanzeeNotification($notification->toArray()); return $this->isAllowed($notification_entity, 'create'); } diff --git a/src/Ushahidi/Modules/V5/Policies/PermissionsPolicy.php b/src/Ushahidi/Modules/V5/Policies/PermissionsPolicy.php index fb322e3ef5..a9dd972cfa 100644 --- a/src/Ushahidi/Modules/V5/Policies/PermissionsPolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/PermissionsPolicy.php @@ -2,7 +2,7 @@ namespace Ushahidi\Modules\V5\Policies; -use Ushahidi\Modules\V5\Models\Permissions; +use Ushahidi\Modules\V5\Models\Permissions as EloquentPermissions; use Ushahidi\Authzn\GenericUser as User; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\PrivAccess; @@ -22,61 +22,38 @@ class PermissionsPolicy protected $user; - /** - * @param User $user - * @return bool - */ public function index(User $user):bool { - $empty_permissions = new Permissions(); + $empty_permissions = new EloquentPermissions(); return $this->isAllowed($empty_permissions, 'search', $user); } - /** - * @param User $user - * @param Permissions $permissions - * @return bool - */ - public function show(User $user, Permissions $permissions):bool + public function show(User $user, EloquentPermissions $permissions):bool { return $this->isAllowed($permissions, 'read', $user); } - /** - * @param User $user - * @param Permissions $permissions - * @return bool - */ - public function delete(User $user, Permissions $permissions):bool + public function delete(User $user, EloquentPermissions $permissions):bool { return $this->isAllowed($permissions, 'delete', $user); } - /** - * @param User $user - * @param Permissions $permissions - * @return bool - */ - public function update(User $user, Permissions $permissions):bool + + public function update(User $user, EloquentPermissions $permissions):bool { return $this->isAllowed($permissions, 'update', $user); } - /** - * @param User $user - * @param Permissions $permissions - * @return bool - */ public function store(User $user):bool { - $permissions = new Permissions(); + $permissions = new EloquentPermissions(); return $this->isAllowed($permissions, 'create', $user); } /** - * @param Permissions $permissions + * @param EloquentPermissions $permissions * @param string $privilege - * @param user $user + * @param User $user * @return bool */ public function isAllowed($permissions, $privilege, $user = null):bool diff --git a/src/Ushahidi/Modules/V5/Policies/PostPolicy.php b/src/Ushahidi/Modules/V5/Policies/PostPolicy.php index 139a443fa3..b5613a8df6 100644 --- a/src/Ushahidi/Modules/V5/Policies/PostPolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/PostPolicy.php @@ -2,19 +2,20 @@ namespace Ushahidi\Modules\V5\Policies; -use Ushahidi\Core\Ohanzee\Entities; -use Ushahidi\Core\Entity\Permission; +use Ushahidi\Contracts\Entity as EntityContract; use Ushahidi\Core\Concerns\PrivAccess; +use Ushahidi\Core\Concerns\ParentAccess; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\OwnerAccess; use Ushahidi\Core\Concerns\UserContext; use Ushahidi\Core\Concerns\Acl as AccessControl; -use Ushahidi\Authzn\GenericUser as User; -use Ushahidi\Core\Concerns\ParentAccess; -use Ushahidi\Modules\V5\Models\Survey; -use Ushahidi\Modules\V5\Models\Post\Post; use Ushahidi\Core\Concerns\PrivateDeployment; -use Ushahidi\Contracts\Entity as EntityContract; +use Ushahidi\Core\Entity\Permission; +use Ushahidi\Core\Ohanzee\Entities\Post as OhanzeePost; +use Ushahidi\Core\Ohanzee\Entities\Form as OhanzeeForm; +use Ushahidi\Authzn\GenericUser as User; +use Ushahidi\Modules\V5\Models\Survey as EloquentSurvey; +use Ushahidi\Modules\V5\Models\Post\Post as EloquentPost; class PostPolicy { @@ -48,39 +49,39 @@ class PostPolicy public function index() { - $empty_form = new Entities\Form(); + $empty_form = new OhanzeeForm(); return $this->isAllowed($empty_form, 'search'); } - public function show(User $user, Survey $survey) + public function show(User $user, EloquentSurvey $survey) { - $form = new Entities\Form($survey->toArray()); + $form = new OhanzeeForm($survey->toArray()); return $this->isAllowed($form, 'read'); } - public function delete(User $user, Post $post) + public function delete(User $user, EloquentPost $post) { - $post = new Entities\Post($post->toArray()); + $post = new OhanzeePost($post->toArray()); return $this->isAllowed($post, 'delete'); } - public function update(User $user, Post $post) + public function update(User $user, EloquentPost $post) { - $post = new Entities\Post($post->toArray()); + $post = new OhanzeePost($post->toArray()); // we convert to a form entity to be able to continue using the old authorizers and classes. return $this->isAllowed($post, 'update'); } - public function patch(User $user, Post $post) + public function patch(User $user, EloquentPost $post) { - $post = new Entities\Post($post->toArray()); + $post = new OhanzeePost($post->toArray()); // we convert to a form entity to be able to continue using the old authorizers and classes. return $this->isAllowed($post, 'update'); } - public function changeStatus(User $user, Post $post) + public function changeStatus(User $user, EloquentPost $post) { - $post = new Entities\Post($post->toArray()); + $post = new OhanzeePost($post->toArray()); // we convert to a form entity to be able to continue using the old authorizers and classes. return $this->isAllowed($post, 'update'); } @@ -88,7 +89,7 @@ public function changeStatus(User $user, Post $post) public function store(User $user, $form_id, $user_id) { // we convert to a form entity to be able to continue using the old authorizers and classes. - $post = new Entities\Post(['form_id' => $form_id, 'user_id' => $user_id]); + $post = new OhanzeePost(['form_id' => $form_id, 'user_id' => $user_id]); return $this->isAllowed($post, 'create'); } @@ -194,7 +195,7 @@ public function isAllowed($entity, $privilege) return false; } - protected function isFormDisabled(Entities\Post $entity) + protected function isFormDisabled(OhanzeePost $entity) { return (bool) $entity->disabled; } @@ -203,8 +204,8 @@ protected function getParent(EntityContract $entity) { // If the post has a parent_id, we attempt to load it from the `PostRepository` if ($entity->parent_id) { - $parent = Post::find($entity->parent_id); - return new Entities\Post($parent->toArray()); + $parent = EloquentPost::find($entity->parent_id); + return new OhanzeePost($parent->toArray()); } return false; diff --git a/src/Ushahidi/Modules/V5/Policies/SurveyPolicy.php b/src/Ushahidi/Modules/V5/Policies/SurveyPolicy.php index d230e8bb55..5150d21b4e 100644 --- a/src/Ushahidi/Modules/V5/Policies/SurveyPolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/SurveyPolicy.php @@ -3,8 +3,8 @@ namespace Ushahidi\Modules\V5\Policies; use Ushahidi\Authzn\GenericUser as User; -use Ushahidi\Core\Ohanzee\Entities; -use Ushahidi\Modules\V5\Models\Survey; +use Ushahidi\Core\Ohanzee\Entities\Form as OhanzeeForm; +use Ushahidi\Modules\V5\Models\Survey as EloquentSurvey; use Ushahidi\Core\Entity\Permission; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; @@ -37,39 +37,39 @@ class SurveyPolicy public function index() { - $empty_form = new Entities\Form(); + $empty_form = new OhanzeeForm(); return $this->isAllowed($empty_form, 'search'); } - public function show(User $user, Survey $survey) + public function show(User $user, EloquentSurvey $survey) { - $form = new Entities\Form($survey->toArray()); + $form = new OhanzeeForm($survey->toArray()); return $this->isAllowed($form, 'read'); } - public function delete(User $user, Survey $survey) + public function delete(User $user, EloquentSurvey $survey) { - $form = new Entities\Form($survey->toArray()); + $form = new OhanzeeForm($survey->toArray()); return $this->isAllowed($form, 'delete'); } - public function update(User $user, Survey $survey) + public function update(User $user, EloquentSurvey $survey) { // we convert to a form entity to be able to continue using the old authorizers and classes. - $form = new Entities\Form($survey->toArray()); + $form = new OhanzeeForm($survey->toArray()); return $this->isAllowed($form, 'update'); } public function store() { // we convert to a form entity to be able to continue using the old authorizers and classes. - $form = new Entities\Form(); + $form = new OhanzeeForm(); return $this->isAllowed($form, 'create'); } public function stats() { - $empty_form = new Entities\Form(); + $empty_form = new OhanzeeForm(); return $this->isAllowed($empty_form, 'stats'); } @@ -115,7 +115,7 @@ public function isAllowed($entity, $privilege) return false; } - protected function isFormDisabled(Entities\Form $entity) + protected function isFormDisabled(OhanzeeForm $entity) { return (bool) $entity->disabled; } diff --git a/src/Ushahidi/Modules/V5/Policies/UserPolicy.php b/src/Ushahidi/Modules/V5/Policies/UserPolicy.php index 4e99fc5d46..fc78506964 100644 --- a/src/Ushahidi/Modules/V5/Policies/UserPolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/UserPolicy.php @@ -9,7 +9,7 @@ use Ushahidi\Core\Concerns\PrivateDeployment; use Ushahidi\Core\Concerns\Acl as AccessControl; use Ushahidi\Modules\V5\Models\User as EloquentUser; -use Ushahidi\Core\Ohanzee\Entities\User as StaticUser; +use Ushahidi\Core\Ohanzee\Entities\User as OhanzeeUser; class UserPolicy { @@ -29,20 +29,20 @@ class UserPolicy public function index(User $user): bool { - $empty_model_user = new StaticUser(); + $empty_model_user = new OhanzeeUser(); return $this->isAllowed($empty_model_user, 'search'); } public function show(User $user, EloquentUser $eloquentUser): bool { - $entity = new StaticUser(); + $entity = new OhanzeeUser(); $entity->setState($eloquentUser->toArray()); return $this->isAllowed($entity, 'read'); } public function delete(User $user, EloquentUser $eloquentUser): bool { - $entity = new StaticUser(); + $entity = new OhanzeeUser(); $entity->setState($eloquentUser->toArray()); return $this->isAllowed($entity, 'delete'); @@ -50,7 +50,7 @@ public function delete(User $user, EloquentUser $eloquentUser): bool public function update(User $user, EloquentUser $eloquentUser): bool { - $entity = new StaticUser(); + $entity = new OhanzeeUser(); $entity->setState($eloquentUser->toArray()); return $this->isAllowed($entity, 'update'); diff --git a/src/Ushahidi/Modules/V5/Repository/Layer/EloquentLayerRepository.php b/src/Ushahidi/Modules/V5/Repository/Layer/EloquentLayerRepository.php index 7bc673721f..d43fc9daff 100644 --- a/src/Ushahidi/Modules/V5/Repository/Layer/EloquentLayerRepository.php +++ b/src/Ushahidi/Modules/V5/Repository/Layer/EloquentLayerRepository.php @@ -9,7 +9,7 @@ use Ushahidi\Modules\V5\DTO\Paging; use Ushahidi\Modules\V5\DTO\LayerSearchFields; use Illuminate\Support\Facades\DB; -use Ushahidi\Core\Entity\Layer as LayerEntity; +use Ushahidi\Core\Ohanzee\Entities\Layer as LayerEntity; class EloquentLayerRepository implements LayerRepository { diff --git a/src/Ushahidi/Modules/V5/Repository/Layer/LayerRepository.php b/src/Ushahidi/Modules/V5/Repository/Layer/LayerRepository.php index 53667733a2..fbb371e305 100644 --- a/src/Ushahidi/Modules/V5/Repository/Layer/LayerRepository.php +++ b/src/Ushahidi/Modules/V5/Repository/Layer/LayerRepository.php @@ -7,7 +7,7 @@ use Ushahidi\Modules\V5\Models\Layer; use Ushahidi\Modules\V5\DTO\Paging; use Ushahidi\Modules\V5\DTO\LayerSearchFields; -use Ushahidi\Core\Entity\Layer as LayerEntity; +use Ushahidi\Core\Ohanzee\Entities\Layer as LayerEntity; interface LayerRepository { From bc8bd838042ee0325eddd4679465382ed88a7c38 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Wed, 5 Jul 2023 15:41:41 +0100 Subject: [PATCH 28/75] chore: resolve more failing tests due to wrong implementations --- src/Ushahidi/Core/Entity/Notification.php | 19 +++++++++++++++++++ .../Core/Ohanzee/Entities/Notification.php | 3 ++- .../Contact/Commands/UpdateContactCommand.php | 7 ++++--- .../Message/Commands/CreateMessageCommand.php | 4 ++-- .../Message/Commands/UpdateMessageCommand.php | 9 +++++---- .../Modules/V5/Policies/UserPolicy.php | 2 +- .../Notification/NotificationRepository.php | 2 -- 7 files changed, 33 insertions(+), 13 deletions(-) create mode 100644 src/Ushahidi/Core/Entity/Notification.php diff --git a/src/Ushahidi/Core/Entity/Notification.php b/src/Ushahidi/Core/Entity/Notification.php new file mode 100644 index 0000000000..21ee2f4e8f --- /dev/null +++ b/src/Ushahidi/Core/Entity/Notification.php @@ -0,0 +1,19 @@ + + * @package Ushahidi\Platform + * @copyright 2023 Ushahidi + * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) + */ + +namespace Ushahidi\Core\Entity; + +use Ushahidi\Contracts\Entity; + +interface Notification extends Entity +{ + +} diff --git a/src/Ushahidi/Core/Ohanzee/Entities/Notification.php b/src/Ushahidi/Core/Ohanzee/Entities/Notification.php index 1557d47482..383026eabb 100644 --- a/src/Ushahidi/Core/Ohanzee/Entities/Notification.php +++ b/src/Ushahidi/Core/Ohanzee/Entities/Notification.php @@ -12,8 +12,9 @@ namespace Ushahidi\Core\Ohanzee\Entities; use Ushahidi\Core\StaticEntity; +use Ushahidi\Core\Entity\Notification as NotificationEntity; -class Notification extends StaticEntity +class Notification extends StaticEntity implements NotificationEntity { protected $id; protected $user_id; diff --git a/src/Ushahidi/Modules/V5/Actions/Contact/Commands/UpdateContactCommand.php b/src/Ushahidi/Modules/V5/Actions/Contact/Commands/UpdateContactCommand.php index 9e8aa86668..f67776e27d 100644 --- a/src/Ushahidi/Modules/V5/Actions/Contact/Commands/UpdateContactCommand.php +++ b/src/Ushahidi/Modules/V5/Actions/Contact/Commands/UpdateContactCommand.php @@ -3,9 +3,10 @@ namespace Ushahidi\Modules\V5\Actions\Contact\Commands; use App\Bus\Command\Command; -use Ushahidi\Modules\V5\Models\Contact; use Ushahidi\Modules\V5\Requests\ContactRequest; use Ushahidi\Core\Entity\Contact as ContactEntity; +use Ushahidi\Core\Ohanzee\Entities\Contact as OhanzeeContact; +use Ushahidi\Modules\V5\Models\Contact as EloquentContact; use Illuminate\Support\Facades\Auth; use Ushahidi\Modules\V5\Helpers\ParameterUtilities; @@ -29,7 +30,7 @@ public function __construct( $this->contact_entity = $contact_entity; } - public static function fromRequest(int $id, ContactRequest $request, Contact $current_contact): self + public static function fromRequest(int $id, ContactRequest $request, EloquentContact $current_contact): self { $user = Auth::user(); if (self::hasPermissionToUpdateUser($user)) { @@ -47,7 +48,7 @@ public static function fromRequest(int $id, ContactRequest $request, Contact $cu $input['created'] = strtotime($current_contact->created); $input['updated'] = time(); - return new self($id, new ContactEntity($input)); + return new self($id, new OhanzeeContact($input)); } private static function hasPermissionToUpdateUser($user) { diff --git a/src/Ushahidi/Modules/V5/Actions/Message/Commands/CreateMessageCommand.php b/src/Ushahidi/Modules/V5/Actions/Message/Commands/CreateMessageCommand.php index b0b80536f1..ea154af6ea 100644 --- a/src/Ushahidi/Modules/V5/Actions/Message/Commands/CreateMessageCommand.php +++ b/src/Ushahidi/Modules/V5/Actions/Message/Commands/CreateMessageCommand.php @@ -6,7 +6,7 @@ use Ushahidi\Modules\V5\Models\Message; use Ushahidi\Modules\V5\Requests\MessageRequest; use Illuminate\Support\Facades\Auth; -use Ushahidi\Core\Entity\Message as MessageEntity; +use Ushahidi\Core\Ohanzee\Entities\Message as MessageEntity; use Ushahidi\Modules\V5\Models\Stage; class CreateMessageCommand implements Command @@ -17,7 +17,7 @@ class CreateMessageCommand implements Command private $message_entity; - + public function __construct(MessageEntity $message_entity) { diff --git a/src/Ushahidi/Modules/V5/Actions/Message/Commands/UpdateMessageCommand.php b/src/Ushahidi/Modules/V5/Actions/Message/Commands/UpdateMessageCommand.php index 9b7daff0c4..63bd5d91c3 100644 --- a/src/Ushahidi/Modules/V5/Actions/Message/Commands/UpdateMessageCommand.php +++ b/src/Ushahidi/Modules/V5/Actions/Message/Commands/UpdateMessageCommand.php @@ -3,9 +3,10 @@ namespace Ushahidi\Modules\V5\Actions\Message\Commands; use App\Bus\Command\Command; -use Ushahidi\Modules\V5\Models\Message; use Ushahidi\Modules\V5\Requests\MessageRequest; -use Ushahidi\Core\Ohanzee\Entities\Message as MessageEntity; +use Ushahidi\Modules\V5\Models\Message as EloquentMessage; +use Ushahidi\Core\Entity\Message as MessageEntity; +use Ushahidi\Core\Ohanzee\Entities\Message as OhanzeeMessage; use Illuminate\Support\Facades\Auth; use Ushahidi\Modules\V5\Helpers\ParameterUtilities; @@ -29,7 +30,7 @@ public function __construct( $this->message_entity = $message_entity; } - public static function fromRequest(int $id, MessageRequest $request, Message $current_message): self + public static function fromRequest(int $id, MessageRequest $request, EloquentMessage $current_message): self { $user = Auth::user(); if (self::hasPermissionToUpdateUser($user)) { @@ -54,7 +55,7 @@ public static function fromRequest(int $id, MessageRequest $request, Message $cu ?? $current_message->notification_post_id; $input['created'] = strtotime($current_message->created); - return new self($id, new MessageEntity($input)); + return new self($id, new OhanzeeMessage($input)); } private static function hasPermissionToUpdateUser($user) { diff --git a/src/Ushahidi/Modules/V5/Policies/UserPolicy.php b/src/Ushahidi/Modules/V5/Policies/UserPolicy.php index fc78506964..487554a5f7 100644 --- a/src/Ushahidi/Modules/V5/Policies/UserPolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/UserPolicy.php @@ -58,7 +58,7 @@ public function update(User $user, EloquentUser $eloquentUser): bool public function store(User $user): bool { - $entity = new StaticUser(); + $entity = new OhanzeeUser(); return $this->isAllowed($entity, 'create'); } diff --git a/src/Ushahidi/Modules/V5/Repository/Notification/NotificationRepository.php b/src/Ushahidi/Modules/V5/Repository/Notification/NotificationRepository.php index 23f56c2ae8..7b27487474 100644 --- a/src/Ushahidi/Modules/V5/Repository/Notification/NotificationRepository.php +++ b/src/Ushahidi/Modules/V5/Repository/Notification/NotificationRepository.php @@ -36,8 +36,6 @@ public function findById(int $id): Notification; /** * This method will create a Notification - * @param NotificationEntity $entity - * @return int */ public function create(NotificationEntity $entity): int; From ef0daa24b2b7bb23d8c96dc582024d3934491009 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Wed, 5 Jul 2023 15:50:47 +0100 Subject: [PATCH 29/75] chore: fix NotificationResource --- .../V5/Http/Resources/Notification/NotificationResource.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Ushahidi/Modules/V5/Http/Resources/Notification/NotificationResource.php b/src/Ushahidi/Modules/V5/Http/Resources/Notification/NotificationResource.php index 2a8576001c..f79b93b9d2 100644 --- a/src/Ushahidi/Modules/V5/Http/Resources/Notification/NotificationResource.php +++ b/src/Ushahidi/Modules/V5/Http/Resources/Notification/NotificationResource.php @@ -2,8 +2,7 @@ namespace Ushahidi\Modules\V5\Http\Resources\Notification; use Illuminate\Http\Resources\Json\JsonResource as Resource; -use Ushahidi\Core\Entity\Notification as NotificationEntity; - +use Ushahidi\Core\Ohanzee\Entities\Notification as OhanzeeNotification; use App\Bus\Query\QueryBus; @@ -20,7 +19,7 @@ private function getResourcePrivileges() // Note that we use attributesToArray instead of toArray because the first // would have the effect of causing unnecessary requests to the database // (relations are not needed in this case by the authorizer) - $entity = new NotificationEntity($this->resource->toArray()); + $entity = new OhanzeeNotification($this->resource->toArray()); // if there's no user the guards will kick them off already, but if there // is one we need to check the authorizer to ensure we don't let // users without admin perms create forms etc From bacd4f33de920c3781bca50ef7acef03074b5e29 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Wed, 5 Jul 2023 16:17:42 +0100 Subject: [PATCH 30/75] chore: modification to records management --- .../{Usecase => }/Concerns/IdentifyRecords.php | 16 ++++++++-------- .../{Usecase => }/Concerns/ModifyRecords.php | 4 ++-- .../Core/Usecase/Concerns/VerifyParentLoaded.php | 2 +- src/Ushahidi/Core/Usecase/CreateUsecase.php | 2 +- src/Ushahidi/Core/Usecase/DeleteUsecase.php | 4 ++-- .../Core/Usecase/Form/CreateFormContact.php | 2 +- .../Core/Usecase/Form/CreateFormStage.php | 2 +- .../Core/Usecase/Form/SearchFormAttribute.php | 2 +- .../Core/Usecase/Form/SearchFormContact.php | 2 +- .../Core/Usecase/Form/UpdateFormRole.php | 5 +---- src/Ushahidi/Core/Usecase/HXL/SendHXLUsecase.php | 6 +++--- src/Ushahidi/Core/Usecase/OptionsUsecase.php | 2 +- src/Ushahidi/Core/Usecase/ReadUsecase.php | 2 +- src/Ushahidi/Core/Usecase/Set/CreateSetPost.php | 2 +- src/Ushahidi/Core/Usecase/UpdateUsecase.php | 4 ++-- .../Core/Usecase/User/ResetUserPassword.php | 2 +- tests/Unit/Modules/V2/ImporterTest.php | 1 + 17 files changed, 29 insertions(+), 31 deletions(-) rename src/Ushahidi/Core/{Usecase => }/Concerns/IdentifyRecords.php (89%) rename src/Ushahidi/Core/{Usecase => }/Concerns/ModifyRecords.php (97%) diff --git a/src/Ushahidi/Core/Usecase/Concerns/IdentifyRecords.php b/src/Ushahidi/Core/Concerns/IdentifyRecords.php similarity index 89% rename from src/Ushahidi/Core/Usecase/Concerns/IdentifyRecords.php rename to src/Ushahidi/Core/Concerns/IdentifyRecords.php index 7dcf3db290..cdbaa0a38b 100644 --- a/src/Ushahidi/Core/Usecase/Concerns/IdentifyRecords.php +++ b/src/Ushahidi/Core/Concerns/IdentifyRecords.php @@ -16,12 +16,12 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Core\Usecase\Concerns; +namespace Ushahidi\Core\Concerns; trait IdentifyRecords { /** - * @var Array + * @var array */ protected $identifiers = []; @@ -32,7 +32,7 @@ trait IdentifyRecords * 'id' => 5, * ]); * - * @param Array $identifiers + * @param array $identifiers * @return $this */ public function setIdentifiers(array $identifiers) @@ -45,9 +45,9 @@ public function setIdentifiers(array $identifiers) * Get a parameter by name. A default value can be provided, which will be * returned if the parameter does not exist. * - * @param String $name - * @param Mixed $default - * @return Mixed + * @param string $name + * @param mixed $default + * @return mixed */ protected function getIdentifier($name, $default = null) { @@ -62,8 +62,8 @@ protected function getIdentifier($name, $default = null) * an exception will be thrown. * * @throws \InvalidArgumentException - * @param String $name - * @return Mixed + * @param string $name + * @return mixed */ protected function getRequiredIdentifier($name) { diff --git a/src/Ushahidi/Core/Usecase/Concerns/ModifyRecords.php b/src/Ushahidi/Core/Concerns/ModifyRecords.php similarity index 97% rename from src/Ushahidi/Core/Usecase/Concerns/ModifyRecords.php rename to src/Ushahidi/Core/Concerns/ModifyRecords.php index cd0273ad88..9e52ad5f3c 100644 --- a/src/Ushahidi/Core/Usecase/Concerns/ModifyRecords.php +++ b/src/Ushahidi/Core/Concerns/ModifyRecords.php @@ -16,12 +16,12 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Core\Usecase\Concerns; +namespace Ushahidi\Core\Concerns; trait ModifyRecords { /** - * @var Array + * @var array */ protected $payload = []; diff --git a/src/Ushahidi/Core/Usecase/Concerns/VerifyParentLoaded.php b/src/Ushahidi/Core/Usecase/Concerns/VerifyParentLoaded.php index a7c54f0ed8..b1d212d9a4 100644 --- a/src/Ushahidi/Core/Usecase/Concerns/VerifyParentLoaded.php +++ b/src/Ushahidi/Core/Usecase/Concerns/VerifyParentLoaded.php @@ -11,7 +11,7 @@ namespace Ushahidi\Core\Usecase\Concerns; -use Ushahidi\Core\Usecase\Concerns\IdentifyRecords; +use Ushahidi\Core\Concerns\IdentifyRecords; use Ushahidi\Core\Usecase\Concerns\VerifyEntityLoaded; trait VerifyParentLoaded diff --git a/src/Ushahidi/Core/Usecase/CreateUsecase.php b/src/Ushahidi/Core/Usecase/CreateUsecase.php index 8e124c874d..4c9c115065 100644 --- a/src/Ushahidi/Core/Usecase/CreateUsecase.php +++ b/src/Ushahidi/Core/Usecase/CreateUsecase.php @@ -14,7 +14,7 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\Usecase; use Ushahidi\Core\Concerns\DispatchesEvents; -use Ushahidi\Core\Usecase\Concerns\ModifyRecords; +use Ushahidi\Core\Concerns\ModifyRecords; use Ushahidi\Contracts\Repository\CreateRepository; use Ushahidi\Core\Usecase\Concerns\Formatter as FormatterTrait; use Ushahidi\Core\Usecase\Concerns\Validator as ValidatorTrait; diff --git a/src/Ushahidi/Core/Usecase/DeleteUsecase.php b/src/Ushahidi/Core/Usecase/DeleteUsecase.php index 2a47d85d8b..28e8981580 100644 --- a/src/Ushahidi/Core/Usecase/DeleteUsecase.php +++ b/src/Ushahidi/Core/Usecase/DeleteUsecase.php @@ -13,11 +13,11 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\Usecase; +use Ushahidi\Core\Concerns\IdentifyRecords; +use Ushahidi\Contracts\Repository\DeleteRepository; use Ushahidi\Core\Usecase\Concerns\Formatter as FormatterTrait; use Ushahidi\Core\Usecase\Concerns\Authorizer as AuthorizerTrait; use Ushahidi\Core\Usecase\Concerns\Translator as TranslatorTrait; -use Ushahidi\Core\Usecase\Concerns\IdentifyRecords; -use Ushahidi\Contracts\Repository\DeleteRepository; class DeleteUsecase implements Usecase { diff --git a/src/Ushahidi/Core/Usecase/Form/CreateFormContact.php b/src/Ushahidi/Core/Usecase/Form/CreateFormContact.php index be9e24cefe..c68abd72bc 100644 --- a/src/Ushahidi/Core/Usecase/Form/CreateFormContact.php +++ b/src/Ushahidi/Core/Usecase/Form/CreateFormContact.php @@ -13,7 +13,7 @@ use Ushahidi\Core\Exception\ValidatorException; use Ushahidi\Core\Usecase\Contact\CreateContact; -use Ushahidi\Core\Usecase\Concerns\IdentifyRecords; +use Ushahidi\Core\Concerns\IdentifyRecords; use Ushahidi\Core\Usecase\Concerns\VerifyFormLoaded; use Ushahidi\Core\Usecase\Concerns\VerifyEntityLoaded; diff --git a/src/Ushahidi/Core/Usecase/Form/CreateFormStage.php b/src/Ushahidi/Core/Usecase/Form/CreateFormStage.php index d2555e9bc2..0d41b92a57 100644 --- a/src/Ushahidi/Core/Usecase/Form/CreateFormStage.php +++ b/src/Ushahidi/Core/Usecase/Form/CreateFormStage.php @@ -12,7 +12,7 @@ namespace Ushahidi\Core\Usecase\Form; use Ushahidi\Core\Usecase\CreateUsecase; -use Ushahidi\Core\Usecase\Concerns\IdentifyRecords; +use Ushahidi\Core\Concerns\IdentifyRecords; use Ushahidi\Core\Usecase\Concerns\VerifyFormLoaded; use Ushahidi\Core\Usecase\Concerns\VerifyEntityLoaded; diff --git a/src/Ushahidi/Core/Usecase/Form/SearchFormAttribute.php b/src/Ushahidi/Core/Usecase/Form/SearchFormAttribute.php index 6fa7dc1e15..96b2eb92d9 100644 --- a/src/Ushahidi/Core/Usecase/Form/SearchFormAttribute.php +++ b/src/Ushahidi/Core/Usecase/Form/SearchFormAttribute.php @@ -12,7 +12,7 @@ namespace Ushahidi\Core\Usecase\Form; use Ushahidi\Core\Usecase\SearchUsecase; -use Ushahidi\Core\Usecase\Concerns\IdentifyRecords; +use Ushahidi\Core\Concerns\IdentifyRecords; use Ushahidi\Core\Usecase\Concerns\VerifyFormLoaded; use Ushahidi\Core\Usecase\Concerns\VerifyEntityLoaded; diff --git a/src/Ushahidi/Core/Usecase/Form/SearchFormContact.php b/src/Ushahidi/Core/Usecase/Form/SearchFormContact.php index 86a076499e..9058ccc381 100644 --- a/src/Ushahidi/Core/Usecase/Form/SearchFormContact.php +++ b/src/Ushahidi/Core/Usecase/Form/SearchFormContact.php @@ -11,7 +11,7 @@ namespace Ushahidi\Core\Usecase\Form; -use Ushahidi\Core\Usecase\Concerns\IdentifyRecords; +use Ushahidi\Core\Concerns\IdentifyRecords; use Ushahidi\Core\Usecase\SearchUsecase; class SearchFormContact extends SearchUsecase diff --git a/src/Ushahidi/Core/Usecase/Form/UpdateFormRole.php b/src/Ushahidi/Core/Usecase/Form/UpdateFormRole.php index cebdc7fa82..2b04f44661 100644 --- a/src/Ushahidi/Core/Usecase/Form/UpdateFormRole.php +++ b/src/Ushahidi/Core/Usecase/Form/UpdateFormRole.php @@ -12,7 +12,7 @@ namespace Ushahidi\Core\Usecase\Form; use Ushahidi\Core\Usecase\CreateUsecase; -use Ushahidi\Core\Usecase\Concerns\IdentifyRecords; +use Ushahidi\Core\Concerns\IdentifyRecords; use Ushahidi\Core\Usecase\Concerns\VerifyFormLoaded; use Ushahidi\Core\Usecase\Concerns\VerifyEntityLoaded; @@ -21,9 +21,6 @@ class UpdateFormRole extends CreateUsecase // - VerifyFormLoaded for checking that the form exists use VerifyFormLoaded; - // For form check: - // - IdentifyRecords - // - VerifyEntityLoaded use IdentifyRecords, VerifyEntityLoaded; diff --git a/src/Ushahidi/Core/Usecase/HXL/SendHXLUsecase.php b/src/Ushahidi/Core/Usecase/HXL/SendHXLUsecase.php index e04c76d933..ec3c9829cb 100644 --- a/src/Ushahidi/Core/Usecase/HXL/SendHXLUsecase.php +++ b/src/Ushahidi/Core/Usecase/HXL/SendHXLUsecase.php @@ -13,11 +13,11 @@ use Ushahidi\Contracts\Usecase; use Illuminate\Support\Facades\Log; +use Ushahidi\Core\Concerns\IdentifyRecords; use Ushahidi\Core\Entity\ExportJobRepository; use Ushahidi\Core\Entity\UserSettingRepository; use Ushahidi\Core\Entity\HXL\HXLLicenseRepository; use Ushahidi\Core\Entity\HXL\HXLMetadataRepository; -use Ushahidi\Core\Usecase\Concerns\IdentifyRecords; use Ushahidi\Core\Tool\ExternalServices\HDXInterface; use Ushahidi\Core\Usecase\Concerns\Formatter as FormatterTrait; use Ushahidi\Core\Usecase\Concerns\Authorizer as AuthorizerTrait; @@ -206,7 +206,7 @@ private function setHDXInterface($user_settings_key, $user_settings_user_id) /** * Will this usecase write any data? * - * @return Boolean + * @return boolean */ public function isWrite() { @@ -216,7 +216,7 @@ public function isWrite() /** * Will this usecase search for data? * - * @return Boolean + * @return boolean */ public function isSearch() { diff --git a/src/Ushahidi/Core/Usecase/OptionsUsecase.php b/src/Ushahidi/Core/Usecase/OptionsUsecase.php index 941f85374a..445eef193e 100644 --- a/src/Ushahidi/Core/Usecase/OptionsUsecase.php +++ b/src/Ushahidi/Core/Usecase/OptionsUsecase.php @@ -16,7 +16,7 @@ use Ushahidi\Core\Usecase\Concerns\Formatter as FormatterTrait; use Ushahidi\Core\Usecase\Concerns\Authorizer as AuthorizerTrait; use Ushahidi\Core\Usecase\Concerns\Translator as TranslatorTrait; -use Ushahidi\Core\Usecase\Concerns\IdentifyRecords; +use Ushahidi\Core\Concerns\IdentifyRecords; use Ushahidi\Contracts\Repository\ReadRepository; class OptionsUsecase implements Usecase diff --git a/src/Ushahidi/Core/Usecase/ReadUsecase.php b/src/Ushahidi/Core/Usecase/ReadUsecase.php index 34993a4f1d..7179b9a01d 100644 --- a/src/Ushahidi/Core/Usecase/ReadUsecase.php +++ b/src/Ushahidi/Core/Usecase/ReadUsecase.php @@ -16,7 +16,7 @@ use Ushahidi\Core\Usecase\Concerns\Formatter as FormatterTrait; use Ushahidi\Core\Usecase\Concerns\Authorizer as AuthorizerTrait; use Ushahidi\Core\Usecase\Concerns\Translator as TranslatorTrait; -use Ushahidi\Core\Usecase\Concerns\IdentifyRecords; +use Ushahidi\Core\Concerns\IdentifyRecords; use Ushahidi\Contracts\Repository\ReadRepository; class ReadUsecase implements Usecase diff --git a/src/Ushahidi/Core/Usecase/Set/CreateSetPost.php b/src/Ushahidi/Core/Usecase/Set/CreateSetPost.php index 2f28266c27..421d07e50c 100644 --- a/src/Ushahidi/Core/Usecase/Set/CreateSetPost.php +++ b/src/Ushahidi/Core/Usecase/Set/CreateSetPost.php @@ -12,7 +12,7 @@ namespace Ushahidi\Core\Usecase\Set; use Ushahidi\Contracts\Entity; -use Ushahidi\Core\Usecase\Concerns\IdentifyRecords; +use Ushahidi\Core\Concerns\IdentifyRecords; use Ushahidi\Core\Usecase\Concerns\VerifyEntityLoaded; use Ushahidi\Core\Usecase\CreateUsecase; diff --git a/src/Ushahidi/Core/Usecase/UpdateUsecase.php b/src/Ushahidi/Core/Usecase/UpdateUsecase.php index 0a292bf3cd..4bb31b0504 100644 --- a/src/Ushahidi/Core/Usecase/UpdateUsecase.php +++ b/src/Ushahidi/Core/Usecase/UpdateUsecase.php @@ -13,8 +13,8 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\Usecase; -use Ushahidi\Core\Usecase\Concerns\IdentifyRecords; -use Ushahidi\Core\Usecase\Concerns\ModifyRecords; +use Ushahidi\Core\Concerns\IdentifyRecords; +use Ushahidi\Core\Concerns\ModifyRecords; use Ushahidi\Contracts\Repository\UpdateRepository; use Ushahidi\Core\Usecase\Concerns\Formatter as FormatterTrait; use Ushahidi\Core\Usecase\Concerns\Validator as ValidatorTrait; diff --git a/src/Ushahidi/Core/Usecase/User/ResetUserPassword.php b/src/Ushahidi/Core/Usecase/User/ResetUserPassword.php index 40cb5a7c14..44d3748df1 100644 --- a/src/Ushahidi/Core/Usecase/User/ResetUserPassword.php +++ b/src/Ushahidi/Core/Usecase/User/ResetUserPassword.php @@ -13,7 +13,7 @@ use Ushahidi\Contracts\Usecase; use Ushahidi\Core\Entity\UserRepository; -use Ushahidi\Core\Usecase\Concerns\ModifyRecords; +use Ushahidi\Core\Concerns\ModifyRecords; use Ushahidi\Core\Usecase\Concerns\Formatter as FormatterTrait; use Ushahidi\Core\Usecase\Concerns\Validator as ValidatorTrait; use Ushahidi\Core\Usecase\Concerns\Authorizer as AuthorizerTrait; diff --git a/tests/Unit/Modules/V2/ImporterTest.php b/tests/Unit/Modules/V2/ImporterTest.php index d55cb443f4..92fd29adc4 100644 --- a/tests/Unit/Modules/V2/ImporterTest.php +++ b/tests/Unit/Modules/V2/ImporterTest.php @@ -6,6 +6,7 @@ use Ushahidi\Modules\V2\Contracts\ImportMappingRepository; use Ushahidi\Modules\V2\Contracts\Mapper; use Ushahidi\Contracts\Repository\EntityCreateMany; +use Ushahidi\Contracts\Entity; use Illuminate\Support\Collection; use Ushahidi\Tests\TestCase; use Mockery as M; From 2a7f7bcd55c6557bfac2e113420c56be81ae25cb Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Wed, 5 Jul 2023 17:41:36 +0100 Subject: [PATCH 31/75] chore: modification to records management and access management --- src/Ushahidi/Contracts/OwnableEntity.php | 20 ++++++++ src/Ushahidi/Contracts/ParentableEntity.php | 20 ++++++++ src/Ushahidi/Core/Concerns/OwnerAccess.php | 5 +- src/Ushahidi/Core/Concerns/ParentAccess.php | 6 ++- src/Ushahidi/Core/Entity/Post.php | 9 +++- src/Ushahidi/Core/Entity/Role.php | 3 ++ src/Ushahidi/Core/Entity/Set.php | 6 ++- src/Ushahidi/Core/Entity/Tag.php | 3 ++ src/Ushahidi/Core/Entity/User.php | 3 ++ .../Core/Tool/Authorizer/PostAuthorizer.php | 50 ++++++++++--------- .../Core/Tool/Authorizer/SetAuthorizer.php | 15 +++--- .../Core/Tool/Authorizer/TagAuthorizer.php | 25 ++++++---- 12 files changed, 117 insertions(+), 48 deletions(-) create mode 100644 src/Ushahidi/Contracts/OwnableEntity.php create mode 100644 src/Ushahidi/Contracts/ParentableEntity.php diff --git a/src/Ushahidi/Contracts/OwnableEntity.php b/src/Ushahidi/Contracts/OwnableEntity.php new file mode 100644 index 0000000000..20ec8d3e88 --- /dev/null +++ b/src/Ushahidi/Contracts/OwnableEntity.php @@ -0,0 +1,20 @@ + + * @package Ushahidi\Platform + * @copyright 2022 Ushahidi + * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) + */ + +namespace Ushahidi\Contracts; + +/** + * @property int|string $user_id the id of the owner entity + */ +interface OwnableEntity extends Entity +{ + +} diff --git a/src/Ushahidi/Contracts/ParentableEntity.php b/src/Ushahidi/Contracts/ParentableEntity.php new file mode 100644 index 0000000000..36d97bfda1 --- /dev/null +++ b/src/Ushahidi/Contracts/ParentableEntity.php @@ -0,0 +1,20 @@ + + * @package Ushahidi\Platform + * @copyright 2022 Ushahidi + * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) + */ + +namespace Ushahidi\Contracts; + +/** + * @property int|string $parent_id the id of the superior entity + */ +interface ParentableEntity extends Entity +{ + +} diff --git a/src/Ushahidi/Core/Concerns/OwnerAccess.php b/src/Ushahidi/Core/Concerns/OwnerAccess.php index 4922b0b14f..e54813dd80 100644 --- a/src/Ushahidi/Core/Concerns/OwnerAccess.php +++ b/src/Ushahidi/Core/Concerns/OwnerAccess.php @@ -17,6 +17,7 @@ namespace Ushahidi\Core\Concerns; use Ushahidi\Contracts\Entity; +use Ushahidi\Contracts\OwnableEntity; trait OwnerAccess { @@ -25,7 +26,7 @@ trait OwnerAccess * * @return boolean */ - protected function isUserOwner(Entity $ownable, Entity $user) + protected function isUserOwner(OwnableEntity $ownable, Entity $user) { // @todo ensure we always check the original user_id not the updated value! return ($user->getId() && $ownable->user_id === $user->getId()); @@ -36,7 +37,7 @@ protected function isUserOwner(Entity $ownable, Entity $user) * * @return boolean */ - protected function isUserAndOwnerAnonymous(Entity $ownable, Entity $user) + protected function isUserAndOwnerAnonymous(OwnableEntity $ownable, Entity $user) { // @todo ensure we always check the original user_id not the updated value! return (! $user->getId() && ! $ownable->user_id); diff --git a/src/Ushahidi/Core/Concerns/ParentAccess.php b/src/Ushahidi/Core/Concerns/ParentAccess.php index 18780793e4..db1c285820 100644 --- a/src/Ushahidi/Core/Concerns/ParentAccess.php +++ b/src/Ushahidi/Core/Concerns/ParentAccess.php @@ -18,15 +18,17 @@ namespace Ushahidi\Core\Concerns; use Ushahidi\Contracts\Entity; +use Ushahidi\Contracts\ParentableEntity; // The `ParentAccess` trait checks for access to a parent entity trait ParentAccess { /** * Check if $user has access to the parent of $entity + * * @return boolean */ - protected function isAllowedParent(Entity $entity, $privilege) + public function isAllowedParent(Entity $entity, string $privilege) { // If `$entity` has a parent.. if ($parent = $this->getParent($entity)) { @@ -44,7 +46,7 @@ protected function isAllowedParent(Entity $entity, $privilege) * Load the parent entity (if there is one) * @return Entity|false */ - abstract protected function getParent(Entity $entity); + abstract protected function getParent(ParentableEntity $entity); // Since this trait should only be used by `Authorizer` classes we require // an isAllowed method with the same signature as the `Authorizer` interface diff --git a/src/Ushahidi/Core/Entity/Post.php b/src/Ushahidi/Core/Entity/Post.php index c39b2668ff..c85557e990 100644 --- a/src/Ushahidi/Core/Entity/Post.php +++ b/src/Ushahidi/Core/Entity/Post.php @@ -11,8 +11,15 @@ namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\Entity; +use Ushahidi\Contracts\OwnableEntity; +use Ushahidi\Contracts\ParentableEntity; -interface Post extends Entity +/** + * @property int|string|null $form_id The id of the form this post belongs to + * @property string $status The status of this post + * @property array $published_to The list of roles that can access this post + */ +interface Post extends Entity, OwnableEntity, ParentableEntity { const DEFAULT_STATUS = 'draft'; const DEFAULT_LOCAL = 'en_US'; diff --git a/src/Ushahidi/Core/Entity/Role.php b/src/Ushahidi/Core/Entity/Role.php index e075812fb6..8b965de275 100644 --- a/src/Ushahidi/Core/Entity/Role.php +++ b/src/Ushahidi/Core/Entity/Role.php @@ -12,6 +12,9 @@ use Ushahidi\Contracts\Entity; +/** + * @property-read array $permissions The permissions this role has + */ interface Role extends Entity { } diff --git a/src/Ushahidi/Core/Entity/Set.php b/src/Ushahidi/Core/Entity/Set.php index 6123a2dfef..3e7b25960b 100644 --- a/src/Ushahidi/Core/Entity/Set.php +++ b/src/Ushahidi/Core/Entity/Set.php @@ -12,8 +12,12 @@ namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\Entity; +use Ushahidi\Contracts\OwnableEntity; -interface Set extends Entity +/** + * @property string $name + */ +interface Set extends Entity, OwnableEntity { } diff --git a/src/Ushahidi/Core/Entity/Tag.php b/src/Ushahidi/Core/Entity/Tag.php index 33d8fbfdf1..4941b21a0e 100644 --- a/src/Ushahidi/Core/Entity/Tag.php +++ b/src/Ushahidi/Core/Entity/Tag.php @@ -13,6 +13,9 @@ use Ushahidi\Contracts\Entity; +/** + * @property string|array $role role(s) for this tag + */ interface Tag extends Entity { diff --git a/src/Ushahidi/Core/Entity/User.php b/src/Ushahidi/Core/Entity/User.php index 26ec8429bd..2fa77583a4 100644 --- a/src/Ushahidi/Core/Entity/User.php +++ b/src/Ushahidi/Core/Entity/User.php @@ -13,6 +13,9 @@ use Ushahidi\Contracts\Entity; +/** + * @property string|array $role The role(s) of the user + */ interface User extends Entity { } diff --git a/src/Ushahidi/Core/Tool/Authorizer/PostAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/PostAuthorizer.php index 5ee15e17fd..20c288d594 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/PostAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/PostAuthorizer.php @@ -13,16 +13,19 @@ use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\Authorizer; +use Ushahidi\Core\Entity\User; +use Ushahidi\Core\Entity\Post; use Ushahidi\Core\Entity\Permission; +use Ushahidi\Core\Concerns\Acl; use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\OwnerAccess; use Ushahidi\Core\Concerns\UserContext; +use Ushahidi\Contracts\ParentableEntity; use Ushahidi\Core\Concerns\ParentAccess; -use Ushahidi\Core\Concerns\PrivateDeployment; -use Ushahidi\Core\Concerns\Acl; use Ushahidi\Core\Entity\FormRepository; use Ushahidi\Core\Entity\PostRepository; +use Ushahidi\Core\Concerns\PrivateDeployment; // The `PostAuthorizer` class is responsible for access checks on `Post` Entities class PostAuthorizer implements Authorizer @@ -49,7 +52,7 @@ class PostAuthorizer implements Authorizer /** * Get a list of all possible privilges. * By default, returns standard HTTP REST methods. - * @return Array + * @return array */ protected function getAllPrivs() { @@ -69,7 +72,7 @@ public function __construct(PostRepository $post_repo, FormRepository $form_repo } /* Authorizer */ - public function isAllowed(Entity $entity, $privilege) + public function isAllowed(Post $post, $privilege) { // These checks are run within the user context. $user = $this->getUser(); @@ -97,22 +100,22 @@ public function isAllowed(Entity $entity, $privilege) // We check if the user has access to a parent post. This doesn't // grant them access, but is used to deny access even if the child post // is public. - if (! $this->isAllowedParent($entity, $privilege, $user)) { + if (! $this->isAllowedParent($post, $privilege)) { return false; } // Non-admin users are not allowed to create posts for other users. // Post must be created for owner, or if the user is anonymous post must have no owner. if ($privilege === 'create' - && !$this->isUserOwner($entity, $user) - && !$this->isUserAndOwnerAnonymous($entity, $user) + && !$this->isUserOwner($post, $user) + && !$this->isUserAndOwnerAnonymous($post, $user) ) { return false; } // Non-admin users are not allowed to create posts for forms that have restricted access. if (in_array($privilege, ['create', 'update', 'lock']) - && $this->isFormRestricted($entity, $user) + && $this->isFormRestricted($post, $user) ) { return false; } @@ -123,29 +126,30 @@ public function isAllowed(Entity $entity, $privilege) } // If a post is published, then anyone with the appropriate role can read it - if ($privilege === 'read' && $this->isPostPublishedToUser($entity, $user)) { + if ($privilege === 'read' && $this->isPostPublishedToUser($post, $user)) { return true; } // If entity isn't loaded (ie. pre-flight check) then *anyone* can view it. - if ($privilege === 'read' && ! $entity->getId()) { + if ($privilege === 'read' && ! $post->getId()) { return true; } + // TODO: This logic isn't sufficient, as it's not explicit about what happens // Only admins or users with 'Manage Posts' permission can change status if ($privilege === 'change_status') { return false; } // Only admins or users with 'Manage Posts' permission can change the ownership of a post - if ($entity->hasChanged('user_id')) { + if ($post->hasChanged('user_id')) { return false; } // If the user is the owner of this post & they have edit own posts permission // they are allowed to edit the post. They can't change the post status or // ownership but those are already checked above - if ($this->isUserOwner($entity, $user) + if ($this->isUserOwner($post, $user) && in_array($privilege, ['update', 'lock']) && $this->acl->hasPermission($user, Permission::EDIT_OWN_POSTS)) { return true; @@ -153,14 +157,14 @@ public function isAllowed(Entity $entity, $privilege) // If the user is the owner of this post & they have delete own posts permission // they are allowed to edit or delete the post. - if ($this->isUserOwner($entity, $user) + if ($this->isUserOwner($post, $user) &&($privilege === "delete") && $this->acl->hasPermission($user, Permission::DELETE_OWN_POSTS)) { return true; } // If the user is the owner of this post they can always view the post - if ($this->isUserOwner($entity, $user) + if ($this->isUserOwner($post, $user) && in_array($privilege, ['read'])) { return true; } @@ -169,18 +173,18 @@ public function isAllowed(Entity $entity, $privilege) return false; } - protected function isPostPublishedToUser(Entity $entity, $user) + protected function isPostPublishedToUser(Post $post, User $user) { - if ($entity->status === 'published' && $this->isUserOfRole($entity, $user)) { + if ($post->status === 'published' && $this->isUserOfRole($post, $user)) { return true; } return false; } - protected function isUserOfRole(Entity $entity, $user) + protected function isUserOfRole(Post $post, $user) { - if ($entity->published_to) { - return in_array($user->role, $entity->published_to); + if ($post->published_to) { + return in_array($user->role, $post->published_to); } // If no visibility info, assume public @@ -188,7 +192,7 @@ protected function isUserOfRole(Entity $entity, $user) } /* ParentAccess */ - protected function getParent(Entity $entity) + protected function getParent(ParentableEntity $entity) { // If the post has a parent_id, we attempt to load it from the `PostRepository` if ($entity->parent_id) { @@ -199,13 +203,13 @@ protected function getParent(Entity $entity) } /* FormRole */ - protected function isFormRestricted(Entity $entity, $user) + protected function isFormRestricted(Post $post, $user) { // If the $entity->form_id exists and the $form->everyone_can_create is False // we check to see if the Form & Role Join exists in the `FormRoleRepository` - if ($entity->form_id) { - $roles = $this->form_repo->getRolesThatCanCreatePosts($entity->form_id); + if ($post->form_id) { + $roles = $this->form_repo->getRolesThatCanCreatePosts($post->form_id); if ($roles['everyone_can_create'] > 0) { return false; diff --git a/src/Ushahidi/Core/Tool/Authorizer/SetAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/SetAuthorizer.php index f10c68cb56..3df70f9b79 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/SetAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/SetAuthorizer.php @@ -11,7 +11,6 @@ namespace Ushahidi\Core\Tool\Authorizer; -use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\Authorizer; use Ushahidi\Core\Entity\Set; use Ushahidi\Core\Entity\Permission; @@ -43,10 +42,10 @@ class SetAuthorizer implements Authorizer // if roles are available for this deployment. use Acl; - protected function isVisibleToUser(Set $entity, $user) + protected function isVisibleToUser(Set $set, $user) { - if ($entity->role) { - return in_array($user->role, $entity->role); + if ($set->role) { + return in_array($user->role, $set->role); } // If no roles are selected, the Set is considered completely public. @@ -54,7 +53,7 @@ protected function isVisibleToUser(Set $entity, $user) } /* Authorizer */ - public function isAllowed(Entity $entity, $privilege) + public function isAllowed(Set $set, $privilege) { // These checks are run within the user context. $user = $this->getUser(); @@ -76,17 +75,17 @@ public function isAllowed(Entity $entity, $privilege) } // Non-admin users are not allowed to make sets featured - if (in_array($privilege, ['create', 'update']) and $entity->hasChanged('featured')) { + if (in_array($privilege, ['create', 'update']) and $set->hasChanged('featured')) { return false; } // If the user is the owner of this set, they can do anything - if ($this->isUserOwner($entity, $user)) { + if ($this->isUserOwner($set, $user)) { return true; } // Check if the Set is only visible to specific roles. - if ($this->isVisibleToUser($entity, $user) and $privilege === 'read') { + if ($this->isVisibleToUser($set, $user) and $privilege === 'read') { return true; } diff --git a/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php index 83ba4e3663..69733858e8 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php @@ -11,17 +11,20 @@ namespace Ushahidi\Core\Tool\Authorizer; -use Ushahidi\Core\Concerns\Acl; +use Ushahidi\Core\Entity\Tag; use Ushahidi\Contracts\Entity; +use Ushahidi\Core\Entity\User; +use Ushahidi\Core\Concerns\Acl; +use Ushahidi\Contracts\Authorizer; use Ushahidi\Core\Entity\Permission; use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; -use Ushahidi\Contracts\Authorizer; use Ushahidi\Core\Entity\TagRepository; +use Ushahidi\Contracts\ParentableEntity; use Ushahidi\Core\Concerns\ParentAccess; -use Ushahidi\Core\Concerns\PrivateDeployment; use Ushahidi\Contracts\Repository\EntityGet; +use Ushahidi\Core\Concerns\PrivateDeployment; // The `TagAuthorizer` class is responsible for access checks on `Tags` class TagAuthorizer implements Authorizer @@ -59,9 +62,9 @@ public function setTagRepo(EntityGet $tagRepo) } /* ParentAccess */ - protected function getParent(Entity $entity) + protected function getParent(ParentableEntity $entity) { - // If the post has a parent_id, we attempt to load it from the `PostRepository` + // If the tag has a parent_id, we attempt to load it from the `PostRepository` if ($entity->parent_id) { return $this->tag_repo->get($entity->parent_id); } @@ -69,10 +72,10 @@ protected function getParent(Entity $entity) return false; } - protected function isUserOfRole(Entity $entity, $user) + protected function isUserOfRole(Tag $tag, User $user) { - if ($entity->role) { - return in_array($user->role, $entity->role); + if ($tag->role) { + return in_array($user->role, $tag->role); } // If no roles are selected, the Tag is considered completely public. @@ -80,7 +83,7 @@ protected function isUserOfRole(Entity $entity, $user) } /* Authorizer */ - public function isAllowed(Entity $entity, $privilege) + public function isAllowed(Tag $tag, string $privilege) { // These checks are run within the user context. $user = $this->getUser(); @@ -104,12 +107,12 @@ public function isAllowed(Entity $entity, $privilege) // We check if the user has access to a parent tag. This doesn't // grant them access, but is used to deny access even if the child tag // is public. - if (! $this->isAllowedParent($entity, $privilege, $user)) { + if (! $this->isAllowedParent($tag, $privilege)) { return false; } // Finally, we check if the Tag is only visible to specific roles. - if ($privilege === 'read' && $this->isUserOfRole($entity, $user)) { + if ($privilege === 'read' && $this->isUserOfRole($tag, $user)) { return true; } From 253e2cb06100ad3956f2aee60212969393cbd25a Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Wed, 5 Jul 2023 18:13:34 +0100 Subject: [PATCH 32/75] chore: modify PostAuthorizer --- src/Ushahidi/Core/Tool/Authorizer/PostAuthorizer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Ushahidi/Core/Tool/Authorizer/PostAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/PostAuthorizer.php index 20c288d594..738234ee21 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/PostAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/PostAuthorizer.php @@ -72,7 +72,7 @@ public function __construct(PostRepository $post_repo, FormRepository $form_repo } /* Authorizer */ - public function isAllowed(Post $post, $privilege) + public function isAllowed(Entity $post, $privilege) { // These checks are run within the user context. $user = $this->getUser(); From d6b2079dd32828aa4dc10e6f311c1c57847ccb09 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Wed, 5 Jul 2023 19:20:50 +0100 Subject: [PATCH 33/75] chore: resolve report management and access management bugs --- src/Ushahidi/Core/Entity/HXL/HXLMetadata.php | 3 ++- src/Ushahidi/Core/Entity/Media.php | 3 ++- src/Ushahidi/Core/Entity/Notification.php | 6 +++++- src/Ushahidi/Core/Entity/Set.php | 2 +- src/Ushahidi/Core/Tool/Authorizer/ContactAuthorizer.php | 4 ++-- src/Ushahidi/Core/Tool/Authorizer/MediaAuthorizer.php | 4 ++-- src/Ushahidi/Core/Tool/Authorizer/SetAuthorizer.php | 7 ++++--- src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php | 2 +- src/Ushahidi/Core/Usecase/Form/CreateFormAttribute.php | 2 +- src/Ushahidi/Core/Usecase/Form/SearchFormStats.php | 5 +++-- 10 files changed, 23 insertions(+), 15 deletions(-) diff --git a/src/Ushahidi/Core/Entity/HXL/HXLMetadata.php b/src/Ushahidi/Core/Entity/HXL/HXLMetadata.php index b18ef11795..7ef30e8316 100644 --- a/src/Ushahidi/Core/Entity/HXL/HXLMetadata.php +++ b/src/Ushahidi/Core/Entity/HXL/HXLMetadata.php @@ -11,9 +11,10 @@ namespace Ushahidi\Core\Entity\HXL; +use Ushahidi\Contracts\OwnableEntity; use Ushahidi\Core\StaticEntity; -class HXLMetadata extends StaticEntity +class HXLMetadata extends StaticEntity implements OwnableEntity { protected $id; protected $private; diff --git a/src/Ushahidi/Core/Entity/Media.php b/src/Ushahidi/Core/Entity/Media.php index 8d9967b0bb..c942457579 100644 --- a/src/Ushahidi/Core/Entity/Media.php +++ b/src/Ushahidi/Core/Entity/Media.php @@ -2,8 +2,9 @@ namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\Entity; +use Ushahidi\Contracts\OwnableEntity; -interface Media extends Entity +interface Media extends Entity, OwnableEntity { } diff --git a/src/Ushahidi/Core/Entity/Notification.php b/src/Ushahidi/Core/Entity/Notification.php index 21ee2f4e8f..74a58d56d5 100644 --- a/src/Ushahidi/Core/Entity/Notification.php +++ b/src/Ushahidi/Core/Entity/Notification.php @@ -12,8 +12,12 @@ namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\Entity; +use Ushahidi\Contracts\OwnableEntity; -interface Notification extends Entity +/** + * @property int $set_id + */ +interface Notification extends Entity, OwnableEntity { } diff --git a/src/Ushahidi/Core/Entity/Set.php b/src/Ushahidi/Core/Entity/Set.php index 3e7b25960b..38fb00f277 100644 --- a/src/Ushahidi/Core/Entity/Set.php +++ b/src/Ushahidi/Core/Entity/Set.php @@ -15,7 +15,7 @@ use Ushahidi\Contracts\OwnableEntity; /** - * @property string $name + * @property array $role */ interface Set extends Entity, OwnableEntity { diff --git a/src/Ushahidi/Core/Tool/Authorizer/ContactAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/ContactAuthorizer.php index 4f58fc6419..ba481ed0ee 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/ContactAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/ContactAuthorizer.php @@ -36,7 +36,7 @@ class ContactAuthorizer implements Authorizer use PrivateDeployment; /* Authorizer */ - public function isAllowed(Entity $entity, $privilege) + public function isAllowed(Entity $contact, $privilege) { // These checks are run within the user context. $user = $this->getUser(); @@ -54,7 +54,7 @@ public function isAllowed(Entity $entity, $privilege) // Allow create, read and update if owner. // Contacts should not be deleted. - if ($this->isUserOwner($entity, $user) + if ($this->isUserOwner($contact, $user) and in_array($privilege, ['create', 'read', 'update'])) { return true; } diff --git a/src/Ushahidi/Core/Tool/Authorizer/MediaAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/MediaAuthorizer.php index 9832bf6622..6a1a9785f2 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/MediaAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/MediaAuthorizer.php @@ -37,7 +37,7 @@ class MediaAuthorizer implements Authorizer use PrivateDeployment; /* Authorizer */ - public function isAllowed(Entity $entity, $privilege) + public function isAllowed(Entity $media, $privilege) { // These checks are run within the user context. $user = $this->getUser(); @@ -63,7 +63,7 @@ public function isAllowed(Entity $entity, $privilege) } // Owners can removed media they own. - if ($this->isUserOwner($entity, $user) && $privilege === 'delete') { + if ($this->isUserOwner($media, $user) && $privilege === 'delete') { return true; } diff --git a/src/Ushahidi/Core/Tool/Authorizer/SetAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/SetAuthorizer.php index 3df70f9b79..7c5cacd296 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/SetAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/SetAuthorizer.php @@ -11,15 +11,16 @@ namespace Ushahidi\Core\Tool\Authorizer; +use Ushahidi\Contracts\Entity; use Ushahidi\Contracts\Authorizer; use Ushahidi\Core\Entity\Set; +use Ushahidi\Core\Concerns\Acl; use Ushahidi\Core\Entity\Permission; +use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\OwnerAccess; use Ushahidi\Core\Concerns\UserContext; -use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\PrivateDeployment; -use Ushahidi\Core\Concerns\Acl; // The `SetAuthorizer` class is responsible for access checks on `Sets` class SetAuthorizer implements Authorizer @@ -53,7 +54,7 @@ protected function isVisibleToUser(Set $set, $user) } /* Authorizer */ - public function isAllowed(Set $set, $privilege) + public function isAllowed(Entity $set, $privilege) { // These checks are run within the user context. $user = $this->getUser(); diff --git a/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php index 69733858e8..dc6041ded5 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php @@ -83,7 +83,7 @@ protected function isUserOfRole(Tag $tag, User $user) } /* Authorizer */ - public function isAllowed(Tag $tag, string $privilege) + public function isAllowed(Entity $tag, string $privilege) { // These checks are run within the user context. $user = $this->getUser(); diff --git a/src/Ushahidi/Core/Usecase/Form/CreateFormAttribute.php b/src/Ushahidi/Core/Usecase/Form/CreateFormAttribute.php index f51064eb56..673f12b948 100644 --- a/src/Ushahidi/Core/Usecase/Form/CreateFormAttribute.php +++ b/src/Ushahidi/Core/Usecase/Form/CreateFormAttribute.php @@ -12,7 +12,7 @@ namespace Ushahidi\Core\Usecase\Form; use Ushahidi\Core\Usecase\CreateUsecase; -use Ushahidi\Core\Usecase\Concerns\IdentifyRecords; +use Ushahidi\Core\Concerns\IdentifyRecords; use Ushahidi\Core\Usecase\Concerns\VerifyStageLoaded; use Ushahidi\Core\Usecase\Concerns\VerifyEntityLoaded; diff --git a/src/Ushahidi/Core/Usecase/Form/SearchFormStats.php b/src/Ushahidi/Core/Usecase/Form/SearchFormStats.php index 8c8694b9ba..1215e3b715 100644 --- a/src/Ushahidi/Core/Usecase/Form/SearchFormStats.php +++ b/src/Ushahidi/Core/Usecase/Form/SearchFormStats.php @@ -11,16 +11,17 @@ namespace Ushahidi\Core\Usecase\Form; -use Ushahidi\Core\Usecase\Concerns\IdentifyRecords; use Ushahidi\Core\Usecase\SearchUsecase; +use Ushahidi\Core\Concerns\IdentifyRecords; class SearchFormStats extends SearchUsecase { use IdentifyRecords; + /** * Get filter parameters and default values that are used for paging. * - * @return Array + * @return array */ // Usecase From 8e7d9ca916275cc2f5ecf3a746b89120d8002eb1 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Thu, 6 Jul 2023 05:54:58 +0100 Subject: [PATCH 34/75] chore: resolve report management and access management bugs --- src/Ushahidi/Core/Concerns/ParentAccess.php | 2 +- src/Ushahidi/Core/Entity/User.php | 1 + src/Ushahidi/Core/Entity/UserSetting.php | 3 ++- src/Ushahidi/Core/Ohanzee/Entities/Tos.php | 3 ++- src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php | 2 +- src/Ushahidi/Core/Tool/Authorizer/UserSettingAuthorizer.php | 6 +++--- src/Ushahidi/Core/Usecase/User/GetResetToken.php | 2 +- 7 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/Ushahidi/Core/Concerns/ParentAccess.php b/src/Ushahidi/Core/Concerns/ParentAccess.php index db1c285820..0a29f3d8cc 100644 --- a/src/Ushahidi/Core/Concerns/ParentAccess.php +++ b/src/Ushahidi/Core/Concerns/ParentAccess.php @@ -28,7 +28,7 @@ trait ParentAccess * * @return boolean */ - public function isAllowedParent(Entity $entity, string $privilege) + public function isAllowedParent(Entity $entity, $privilege) { // If `$entity` has a parent.. if ($parent = $this->getParent($entity)) { diff --git a/src/Ushahidi/Core/Entity/User.php b/src/Ushahidi/Core/Entity/User.php index 2fa77583a4..0ca10c105a 100644 --- a/src/Ushahidi/Core/Entity/User.php +++ b/src/Ushahidi/Core/Entity/User.php @@ -14,6 +14,7 @@ use Ushahidi\Contracts\Entity; /** + * @property int $id * @property string|array $role The role(s) of the user */ interface User extends Entity diff --git a/src/Ushahidi/Core/Entity/UserSetting.php b/src/Ushahidi/Core/Entity/UserSetting.php index b38ac50c14..7722a39a41 100644 --- a/src/Ushahidi/Core/Entity/UserSetting.php +++ b/src/Ushahidi/Core/Entity/UserSetting.php @@ -12,8 +12,9 @@ namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\Entity; +use Ushahidi\Contracts\OwnableEntity; -interface UserSetting extends Entity +interface UserSetting extends Entity, OwnableEntity { } diff --git a/src/Ushahidi/Core/Ohanzee/Entities/Tos.php b/src/Ushahidi/Core/Ohanzee/Entities/Tos.php index 6ecef313de..707071c4c3 100644 --- a/src/Ushahidi/Core/Ohanzee/Entities/Tos.php +++ b/src/Ushahidi/Core/Ohanzee/Entities/Tos.php @@ -11,9 +11,10 @@ namespace Ushahidi\Core\Ohanzee\Entities; +use Ushahidi\Contracts\OwnableEntity; use Ushahidi\Core\StaticEntity; -class Tos extends StaticEntity +class Tos extends StaticEntity implements OwnableEntity { protected $id; protected $user_id; diff --git a/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php index dc6041ded5..091b6d831b 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/TagAuthorizer.php @@ -83,7 +83,7 @@ protected function isUserOfRole(Tag $tag, User $user) } /* Authorizer */ - public function isAllowed(Entity $tag, string $privilege) + public function isAllowed(Entity $tag, $privilege) { // These checks are run within the user context. $user = $this->getUser(); diff --git a/src/Ushahidi/Core/Tool/Authorizer/UserSettingAuthorizer.php b/src/Ushahidi/Core/Tool/Authorizer/UserSettingAuthorizer.php index 1b376f2a46..cf300deaa9 100644 --- a/src/Ushahidi/Core/Tool/Authorizer/UserSettingAuthorizer.php +++ b/src/Ushahidi/Core/Tool/Authorizer/UserSettingAuthorizer.php @@ -43,7 +43,7 @@ class UserSettingAuthorizer implements Authorizer /** * Get a list of all possible privilges. * By default, returns standard HTTP REST methods. - * @return Array + * @return array */ protected function getAllPrivs() { @@ -51,7 +51,7 @@ protected function getAllPrivs() } /* Authorizer */ - public function isAllowed(Entity $entity, $privilege) + public function isAllowed(Entity $setting, $privilege) { // These checks are run within the user context. $user = $this->getUser(); @@ -62,7 +62,7 @@ public function isAllowed(Entity $entity, $privilege) } // Regular user should be able to perform all actions on their own settings - if ($this->isUserOwner($entity, $user)) { + if ($this->isUserOwner($setting, $user)) { return true; } diff --git a/src/Ushahidi/Core/Usecase/User/GetResetToken.php b/src/Ushahidi/Core/Usecase/User/GetResetToken.php index 441fcc56e8..5da5385546 100644 --- a/src/Ushahidi/Core/Usecase/User/GetResetToken.php +++ b/src/Ushahidi/Core/Usecase/User/GetResetToken.php @@ -14,7 +14,7 @@ use Ushahidi\Contracts\Mailer; use Ushahidi\Contracts\Usecase; use Ushahidi\Core\Entity\UserRepository; -use Ushahidi\Core\Usecase\Concerns\ModifyRecords; +use Ushahidi\Core\Concerns\ModifyRecords; use Ushahidi\Core\Usecase\Concerns\Formatter as FormatterTrait; use Ushahidi\Core\Usecase\Concerns\Authorizer as AuthorizerTrait; use Ushahidi\Core\Usecase\Concerns\Translator as TranslatorTrait; From 05620c42ccb42e7926a045fb2fdf7b7cb70de565 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Thu, 6 Jul 2023 07:05:10 +0100 Subject: [PATCH 35/75] chore: updated relevant entities --- src/Ushahidi/Core/Entity/Contact.php | 4 +++- src/Ushahidi/Core/Entity/Tag.php | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Ushahidi/Core/Entity/Contact.php b/src/Ushahidi/Core/Entity/Contact.php index 6c35b65b50..97321cdb07 100644 --- a/src/Ushahidi/Core/Entity/Contact.php +++ b/src/Ushahidi/Core/Entity/Contact.php @@ -2,8 +2,10 @@ namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\Entity; +use Ushahidi\Contracts\OwnableEntity; +use Ushahidi\Contracts\ParentableEntity; -interface Contact extends Entity +interface Contact extends Entity, OwnableEntity, ParentableEntity { } diff --git a/src/Ushahidi/Core/Entity/Tag.php b/src/Ushahidi/Core/Entity/Tag.php index 4941b21a0e..48fcd598fa 100644 --- a/src/Ushahidi/Core/Entity/Tag.php +++ b/src/Ushahidi/Core/Entity/Tag.php @@ -12,11 +12,12 @@ namespace Ushahidi\Core\Entity; use Ushahidi\Contracts\Entity; +use Ushahidi\Contracts\ParentableEntity; /** * @property string|array $role role(s) for this tag */ -interface Tag extends Entity +interface Tag extends Entity, ParentableEntity { } From a8e94041e6d3aba2b4f2c576f7e9835525e21145 Mon Sep 17 00:00:00 2001 From: David Losada Carballo Date: Sun, 9 Jul 2023 20:17:55 +0200 Subject: [PATCH 36/75] chore: upload image to github packages --- .github/workflows/test-and-ship.yml | 8 ++++++++ Dockerfile | 1 + 2 files changed, 9 insertions(+) diff --git a/.github/workflows/test-and-ship.yml b/.github/workflows/test-and-ship.yml index c064d64197..8ea9cb3361 100644 --- a/.github/workflows/test-and-ship.yml +++ b/.github/workflows/test-and-ship.yml @@ -128,12 +128,20 @@ jobs: with: registry: 513259414768.dkr.ecr.eu-west-1.amazonaws.com + - name: Login to GitHub Container Registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Docker meta id: meta uses: docker/metadata-action@v3 with: images: | 513259414768.dkr.ecr.eu-west-1.amazonaws.com/platform + ghcr.io/ushahidi/platform tags: | type=ref,event=branch type=ref,event=pr diff --git a/Dockerfile b/Dockerfile index 3431ed9569..5dc049be57 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,5 @@ FROM ushahidi/php-fpm-nginx:php-7.3 +LABEL org.opencontainers.image.source="https://github.com/ushahidi/platform" WORKDIR /var/www COPY composer.json ./ From 7313ec3db53997d76467935826836c480d6a25bf Mon Sep 17 00:00:00 2001 From: David Losada Carballo Date: Sun, 9 Jul 2023 21:13:32 +0200 Subject: [PATCH 37/75] chore: fix wrong command result in util script --- docker/utils.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/utils.sh b/docker/utils.sh index 81b683ffb4..ec872f5dfe 100644 --- a/docker/utils.sh +++ b/docker/utils.sh @@ -125,4 +125,5 @@ function wait_bootstrap { while [ ! -f /bootstrapped ]; do sleep 1 done + true; } \ No newline at end of file From c728c39107e9ddd9126099bf4c3336b78dd3810f Mon Sep 17 00:00:00 2001 From: Wisdom Ebong Date: Mon, 10 Jul 2023 12:27:09 +0100 Subject: [PATCH 38/75] chore: improvements to resolve client url in single or multi site mode --- .env.example | 2 ++ app/Tools/Mailer.php | 8 ++++++-- config/multisite.php | 1 + src/Ushahidi/Multisite/Site.php | 4 +++- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.env.example b/.env.example index b3fec4c2b5..a4ed51c14e 100644 --- a/.env.example +++ b/.env.example @@ -4,6 +4,8 @@ APP_DEBUG=true APP_KEY=SomeRandomKey!!!SomeRandomKey!!! APP_TIMEZONE=UTC +DEFAULT_CLIENT_URL= + DB_CONNECTION=mysql DB_HOST=192.168.33.110 DB_HOST_REPLICA=192.168.33.110 diff --git a/app/Tools/Mailer.php b/app/Tools/Mailer.php index 447fcb4bcd..5cf5479566 100644 --- a/app/Tools/Mailer.php +++ b/app/Tools/Mailer.php @@ -19,6 +19,8 @@ class Mailer implements MailerContract { use UsesSiteInfo; + protected $mailer; + public function __construct(LaravelMailer $mailer) { $this->mailer = $mailer; @@ -40,11 +42,13 @@ protected function sendResetpassword($to, $params) { $site_name = $this->getSite()->getName(); $site_email = $this->getSite()->getEmail(); + $site_client_url = $this->getSite()->getClientUri() ?? env('DEFAULT_CLIENT_URL'); + $token = $params['token']; $data = [ 'site_name' => $site_name, - 'token' => $params['token'], - 'client_url' => $this->getSite()->getClientUri(), + 'token' => $token, + 'client_url' => $site_client_url, ]; $subject = $site_name.': Password reset'; diff --git a/config/multisite.php b/config/multisite.php index 4bd119ed75..81facc72ac 100644 --- a/config/multisite.php +++ b/config/multisite.php @@ -34,4 +34,5 @@ 'domain' => env('MULTISITE_DOMAIN'), 'email' => env('MULTISITE_EMAIL'), 'client_domain' => env('MULTISITE_CLIENT_DOMAIN'), + 'client_scheme' => env('MULTISITE_CLIENT_SCHEME', 'http') ]; diff --git a/src/Ushahidi/Multisite/Site.php b/src/Ushahidi/Multisite/Site.php index 0edfb04e6f..cafbaeaa71 100644 --- a/src/Ushahidi/Multisite/Site.php +++ b/src/Ushahidi/Multisite/Site.php @@ -65,13 +65,15 @@ public function getClientUri() // If we're in multisite mode if (config('multisite.enabled')) { // build the url from config + subdomain - return implode('.', array_filter([ + $http_host = implode('.', array_filter([ $this->subdomain, config( 'multisite.client_domain', $this->domain ) ])); + + return config('multisite.client_scheme') . "://$http_host"; } // get client_url from site config From a5f8a62d53356c3f05c6829de56da9c31bab1e46 Mon Sep 17 00:00:00 2001 From: David Losada Carballo Date: Mon, 10 Jul 2023 17:24:54 +0200 Subject: [PATCH 39/75] chore: Dockerfile add default service startup command --- Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 5dc049be57..a630720e47 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,6 @@ ENV ENABLE_PLATFORM_TASKS=true \ VHOST_INDEX=index.php \ PHP_EXEC_TIME_LIMIT=3600 \ GIT_COMMIT_ID=${GIT_COMMIT_ID} \ - GIT_BUILD_REF=${GIT_BUILD_REF} \ No newline at end of file + GIT_BUILD_REF=${GIT_BUILD_REF} + +CMD [ "start" ] From 611e1f5f622b923b5a9fa20b1906eae2502fd1fd Mon Sep 17 00:00:00 2001 From: Mh-Asmi Date: Mon, 10 Jul 2023 18:27:15 +0400 Subject: [PATCH 40/75] add post color --- .../Actions/Post/Handlers/FindPostByIdQueryHandler.php | 9 +++++++-- .../V5/Actions/Post/Handlers/ListPostsQueryHandler.php | 3 +++ src/Ushahidi/Modules/V5/Models/Post/Post.php | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Ushahidi/Modules/V5/Actions/Post/Handlers/FindPostByIdQueryHandler.php b/src/Ushahidi/Modules/V5/Actions/Post/Handlers/FindPostByIdQueryHandler.php index ca1b304d87..1ba4166f9e 100644 --- a/src/Ushahidi/Modules/V5/Actions/Post/Handlers/FindPostByIdQueryHandler.php +++ b/src/Ushahidi/Modules/V5/Actions/Post/Handlers/FindPostByIdQueryHandler.php @@ -55,11 +55,14 @@ private function addHydrateRelationships(Post $post, array $hydrates) { foreach ($hydrates as $hydrate) { switch ($hydrate) { + case 'color': + $post->color = $post->survey ? $post->survey->color : null; + break; case 'categories': // $result['categories'] = $post->categories; break; case 'sets': - // $post->sets = $post->sets->pluck('id'); + // $post->sets = $post->sets->pluck('id'); break; case 'completed_stages': $post->completed_stages = $post->postStages; @@ -110,6 +113,8 @@ private function addHydrateRelationships(Post $post, array $hydrates) break; } } + // dd($post); + return $post; } private function hideFieldsUsedByRelationships(Post $post, array $fields = []) @@ -142,7 +147,7 @@ private function hideUnwantedRelationships(Post $post, array $hydrates) // hide source relationships if (!in_array('message', $hydrates)) { - $post->makeHidden('message'); + $post->makeHidden('message'); } // hide completed_stages relationships diff --git a/src/Ushahidi/Modules/V5/Actions/Post/Handlers/ListPostsQueryHandler.php b/src/Ushahidi/Modules/V5/Actions/Post/Handlers/ListPostsQueryHandler.php index a14641c3ce..2b9cd0f9f6 100644 --- a/src/Ushahidi/Modules/V5/Actions/Post/Handlers/ListPostsQueryHandler.php +++ b/src/Ushahidi/Modules/V5/Actions/Post/Handlers/ListPostsQueryHandler.php @@ -64,6 +64,9 @@ private function addHydrateRelationships(Post $post, array $hydrates) { foreach ($hydrates as $hydrate) { switch ($hydrate) { + case 'color': + $post->color = $post->survey ? $post->survey->color : null; + break; case 'categories': // $result['categories'] = $post->categories; break; diff --git a/src/Ushahidi/Modules/V5/Models/Post/Post.php b/src/Ushahidi/Modules/V5/Models/Post/Post.php index ee1f3a165d..b92040b300 100644 --- a/src/Ushahidi/Modules/V5/Models/Post/Post.php +++ b/src/Ushahidi/Modules/V5/Models/Post/Post.php @@ -61,6 +61,7 @@ class Post extends BaseModel public const ALLOWED_RELATIONSHIPS = [ 'locks' => ['fields' => [], 'relationships' => ["locks"]], 'categories' => ['fields' => [], 'relationships' => ["categories"]], + 'color' => ['fields' => [], 'relationships' => ["survey"]], 'sets' => ['fields' => [], 'relationships' => ["sets"]], 'message' => ['fields' => [], 'relationships' => ['message']], 'contact' => ['fields' => [], 'relationships' => ['message']], From d0659e40663122b678f32d5c8e1ba359b49711fd Mon Sep 17 00:00:00 2001 From: Mh-Asmi Date: Mon, 10 Jul 2023 18:53:41 +0400 Subject: [PATCH 41/75] add count of posts in set --- .../V5/Http/Resources/Collection/CollectionResource.php | 1 + src/Ushahidi/Modules/V5/Models/Set.php | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/Ushahidi/Modules/V5/Http/Resources/Collection/CollectionResource.php b/src/Ushahidi/Modules/V5/Http/Resources/Collection/CollectionResource.php index 926200e52b..181ea48183 100644 --- a/src/Ushahidi/Modules/V5/Http/Resources/Collection/CollectionResource.php +++ b/src/Ushahidi/Modules/V5/Http/Resources/Collection/CollectionResource.php @@ -45,6 +45,7 @@ public function toArray($request) 'featured' => $this->featured, 'created' => $this->created, 'updated' => $this->updated, + 'posts_count'=>$this->posts->count(), 'allowed_privileges' => $this->getResourcePrivileges() ]; } diff --git a/src/Ushahidi/Modules/V5/Models/Set.php b/src/Ushahidi/Modules/V5/Models/Set.php index a23a6f3aa5..40476ba381 100644 --- a/src/Ushahidi/Modules/V5/Models/Set.php +++ b/src/Ushahidi/Modules/V5/Models/Set.php @@ -95,6 +95,11 @@ public function scopeAllowed($query) return $query; } + public function posts() + { + return $this->belongsToMany('Ushahidi\Modules\V5\Models\Post\Post', 'posts_sets', 'set_id'); + } + public function errors() { return $this->errors; From 4844fb19f90a388c4c80f306c4bcfcdc9f7dc3c7 Mon Sep 17 00:00:00 2001 From: Mh-Asmi Date: Mon, 19 Jun 2023 17:14:46 +0400 Subject: [PATCH 42/75] fix message foe integration tests --- .../DataSource/Contracts/MessageStatus.php | 1 + .../Message/Commands/CreateMessageCommand.php | 4 +- .../Message/Queries/FetchMessageQuery.php | 2 +- src/Ushahidi/Modules/V5/DTO/Paging.php | 13 +- .../V5/Http/Controllers/MessageController.php | 65 +++-- src/Ushahidi/Modules/V5/Models/Message.php | 1 + .../Modules/V5/Policies/MessagePolicy.php | 2 +- .../Message/EloquentMessageRepository.php | 4 +- .../Modules/V5/Requests/MessageRequest.php | 12 +- src/Ushahidi/Modules/V5/routes/api.php | 2 +- tests/Integration/v5/messages.v5.feature | 256 +++++++++++++++++- 11 files changed, 328 insertions(+), 34 deletions(-) diff --git a/src/Ushahidi/DataSource/Contracts/MessageStatus.php b/src/Ushahidi/DataSource/Contracts/MessageStatus.php index def014b31c..bb1c19ea65 100644 --- a/src/Ushahidi/DataSource/Contracts/MessageStatus.php +++ b/src/Ushahidi/DataSource/Contracts/MessageStatus.php @@ -22,4 +22,5 @@ interface MessageStatus const FAILED = 'failed'; const UNKNOWN = 'unknown'; const DEFAULT_STATUS = 'pending'; + const ARCHIVED = 'archived'; } diff --git a/src/Ushahidi/Modules/V5/Actions/Message/Commands/CreateMessageCommand.php b/src/Ushahidi/Modules/V5/Actions/Message/Commands/CreateMessageCommand.php index 9f6c4fec50..b0b80536f1 100644 --- a/src/Ushahidi/Modules/V5/Actions/Message/Commands/CreateMessageCommand.php +++ b/src/Ushahidi/Modules/V5/Actions/Message/Commands/CreateMessageCommand.php @@ -36,8 +36,8 @@ public static function fromRequest(MessageRequest $request): self $input['message'] = $request->input('message'); $input['datetime'] = $request->input('datetime'); $input['type'] = $request->input('type'); - $input['status'] = $request->input('status'); - $input['direction'] = $request->input('direction'); + $input['status'] = MessageEntity::PENDING; //$request->input('status'); + $input['direction'] = MessageEntity::OUTGOING;//$request->input('direction'); $input['data_source'] = $request->input('data_source'); $input['data_source_message_id'] = $request->input('data_source_message_id'); $input['additional_data'] = $request->input('additional_data'); diff --git a/src/Ushahidi/Modules/V5/Actions/Message/Queries/FetchMessageQuery.php b/src/Ushahidi/Modules/V5/Actions/Message/Queries/FetchMessageQuery.php index 693994d041..c899f9e11f 100644 --- a/src/Ushahidi/Modules/V5/Actions/Message/Queries/FetchMessageQuery.php +++ b/src/Ushahidi/Modules/V5/Actions/Message/Queries/FetchMessageQuery.php @@ -29,7 +29,7 @@ private function __construct( public static function fromRequest(Request $request): self { - return new self(Paging::fromRequest($request), new MessageSearchFields($request)); + return new self(Paging::fromRequest($request, null, "ASC"), new MessageSearchFields($request)); } public function getPaging(): Paging diff --git a/src/Ushahidi/Modules/V5/DTO/Paging.php b/src/Ushahidi/Modules/V5/DTO/Paging.php index 879d2e346c..3bf1fcd15b 100644 --- a/src/Ushahidi/Modules/V5/DTO/Paging.php +++ b/src/Ushahidi/Modules/V5/DTO/Paging.php @@ -28,7 +28,7 @@ public function __construct( if ($default_limit === null) { $default_limit = config('paging.default_limit'); } - + $limit = $request->query('limit', $default_limit); $this->limit = $limit ? $limit : config('paging.default_laravel_pageing_limit'); @@ -37,9 +37,14 @@ public function __construct( $this->order = $request->query('order', $default_order); } - public static function fromRequest(Request $request) - { - return new self($request); + public static function fromRequest( + Request $request, + $default_sort_by = null, + $default_order = null, + $default_limit = null, + $default_page = 1 + ) { + return new self($request, $default_sort_by, $default_order, $default_limit, $default_page); } diff --git a/src/Ushahidi/Modules/V5/Http/Controllers/MessageController.php b/src/Ushahidi/Modules/V5/Http/Controllers/MessageController.php index 17942bb039..b59f2dce4b 100644 --- a/src/Ushahidi/Modules/V5/Http/Controllers/MessageController.php +++ b/src/Ushahidi/Modules/V5/Http/Controllers/MessageController.php @@ -13,6 +13,8 @@ use Ushahidi\Modules\V5\Requests\MessageRequest; use Ushahidi\Modules\V5\Models\Message; use Ushahidi\Core\Exception\NotFoundException; +use Ushahidi\Modules\V5\Actions\Post\Queries\FindPostByIdQuery; +use Ushahidi\Modules\V5\Http\Resources\Post\PostResource ; class MessageController extends V5Controller { @@ -27,9 +29,9 @@ class MessageController extends V5Controller */ public function show(int $id) { - $collection = $this->queryBus->handle(new FetchMessageByIdQuery($id)); - $this->authorize('show', $collection); - return new MessageResource($collection); + $message = $this->queryBus->handle(new FetchMessageByIdQuery($id)); + $this->authorize('show', $message); + return new MessageResource($message); } //end show() @@ -43,8 +45,8 @@ public function show(int $id) public function index(Request $request) { $this->authorize('index', Message::class); - $collections = $this->queryBus->handle(FetchMessageQuery::FromRequest($request)); - return new MessageCollection($collections); + $messages = $this->queryBus->handle(FetchMessageQuery::FromRequest($request)); + return new MessageCollection($messages); } //end index() @@ -57,6 +59,8 @@ public function index(Request $request) */ public function store(MessageRequest $request) { + + $request = $this->retrieveDatafromParent($request); $command = CreateMessageCommand::fromRequest($request); $new_message = new Message($command->getMessageEntity()->asArray()); $this->authorize('store', $new_message); @@ -76,27 +80,50 @@ public function update(int $id, MessageRequest $request) $old_message = $this->queryBus->handle(new FetchMessageByIdQuery($id)); $command = UpdateMessageCommand::fromRequest($id, $request, $old_message); $new_message = new Message($command->getMessageEntity()->asArray()); - $this->authorize('update', $new_message); + //$this->authorize('update', $new_message); + $this->authorize('update', $old_message); $this->commandBus->handle($command); return $this->show($id); }// end update - /** - * Create new Message. + /** + * Display the specified resource. * - * @param int id - * @return \Illuminate\Http\JsonResponse + * @param integer $id + * @return mixed * @throws \Illuminate\Auth\Access\AuthorizationException */ - public function delete(int $id) + public function showPost(int $id) { - try { - $message = $this->queryBus->handle(new FetchMessageByIdQuery($id)); - } catch (NotFoundException $e) { - $message = new Message(); + $message = $this->queryBus->handle(new FetchMessageByIdQuery($id)); + $this->authorize('show', $message); + if ($message->post_id) { + $post = $this->queryBus->handle(new FindPostByIdQuery($message->post_id)); + return new postResource($post); + } + throw new NotFoundException("Post does not exist for this message"); + } //end show() + + + private function retrieveDatafromParent($request) + { + if ($request->input('parent_id')) { + try { + $parent = $this->show($request->input('parent_id')); + } catch (NotFoundException $e) { + $parent = null; + } + if ($parent) { + $request->merge(['type' => $parent->type]); + $request->merge(['data_source' => $parent->data_source]); + } + // $input['type'] = $request->input('type'); + // $input['data_source'] = $request->input('data_source'); + + // $parent = $this->repo->get($this->payload['parent_id']); + // $entity->setState(['type' => $parent->type, + // 'data_source' => $parent->data_source]); } - $this->authorize('delete', $message); - $this->commandBus->handle(new DeleteMessageCommand($id)); - return $this->deleteResponse($id); - }// end delete + return $request; + } } //end class diff --git a/src/Ushahidi/Modules/V5/Models/Message.php b/src/Ushahidi/Modules/V5/Models/Message.php index afe8836f43..8ccee87602 100644 --- a/src/Ushahidi/Modules/V5/Models/Message.php +++ b/src/Ushahidi/Modules/V5/Models/Message.php @@ -65,6 +65,7 @@ class Message extends BaseModel 'datetime', 'type', 'status', + 'user_id', 'direction', 'created', 'additional_data', diff --git a/src/Ushahidi/Modules/V5/Policies/MessagePolicy.php b/src/Ushahidi/Modules/V5/Policies/MessagePolicy.php index 545c626cda..c898197ac0 100644 --- a/src/Ushahidi/Modules/V5/Policies/MessagePolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/MessagePolicy.php @@ -84,7 +84,7 @@ public function delete(User $user, Message $message) public function update(User $user, Message $message) { // we convert to a Message entity to be able to continue using the old authorizers and classes. - $message_entity = new Entity\Message($message->toArray()); + $message_entity = $this->getEntity($message); return $this->isAllowed($message_entity, 'update'); } diff --git a/src/Ushahidi/Modules/V5/Repository/Message/EloquentMessageRepository.php b/src/Ushahidi/Modules/V5/Repository/Message/EloquentMessageRepository.php index 798b43b481..98e97104cb 100644 --- a/src/Ushahidi/Modules/V5/Repository/Message/EloquentMessageRepository.php +++ b/src/Ushahidi/Modules/V5/Repository/Message/EloquentMessageRepository.php @@ -32,9 +32,9 @@ private function setSearchCondition(MessageSearchFields $search_fields, $builder if ($search_fields->box() === 'outbox') { - $builder->whereIn('messages.direction', "outgoing"); + $builder->whereIn('messages.direction', ["outgoing"]); } elseif ($search_fields->box() === 'inbox') { - $builder->whereIn('messages.direction', "incoming"); + $builder->whereIn('messages.direction', ["incoming"]); } if ($search_fields->box() === 'archived') { diff --git a/src/Ushahidi/Modules/V5/Requests/MessageRequest.php b/src/Ushahidi/Modules/V5/Requests/MessageRequest.php index ffb92496b6..22b7f56d6a 100644 --- a/src/Ushahidi/Modules/V5/Requests/MessageRequest.php +++ b/src/Ushahidi/Modules/V5/Requests/MessageRequest.php @@ -2,6 +2,7 @@ namespace Ushahidi\Modules\V5\Requests; +use Google\Service\CivicInfo\MessageSet; use Google\Service\CloudSearch\MessageDeleted; use Illuminate\Contracts\Validation\Validator; use Illuminate\Http\Exceptions\HttpResponseException; @@ -39,7 +40,7 @@ private function storeRules(Request $request): array 'parent_id' => 'nullable|sometimes|exists:messages,id', 'post_id' => 'nullable|sometimes|exists:posts,id', 'contact_id' => 'nullable|sometimes|exists:contacts,id', - 'direction' => ['required', Rule::in([MessageDirection::OUTGOING, MessageDirection::INCOMING])], + 'direction' => ['required', Rule::in([MessageDirection::OUTGOING])], 'message' => ['required'], 'type' => ['nullable', Rule::in(['sms', 'ivr', 'email', 'twitter'])], 'status' => ['nullable', Rule::in([MessageStatus::PENDING, MessageStatus::RECEIVED, MessageStatus::SENT])], @@ -62,7 +63,14 @@ private function updateRules(Request $request): array 'direction' => ['filled', Rule::in([MessageDirection::OUTGOING, MessageDirection::INCOMING])], 'message' => ['filled'], 'type' => ['filled', Rule::in(['sms', 'ivr', 'email', 'twitter'])], - 'status' => ['filled', Rule::in([MessageStatus::PENDING, MessageStatus::RECEIVED, MessageStatus::SENT])], + 'status' => ['filled', Rule::in([ + MessageStatus::PENDING, + MessageStatus::RECEIVED, + MessageStatus::SENT, + MessageStatus::EXPIRED, + MessageStatus::CANCELLED, + MessageStatus::ARCHIVED + ])], 'data_source_message_id' => ['max:511'], 'data_source' => [ 'nullable', diff --git a/src/Ushahidi/Modules/V5/routes/api.php b/src/Ushahidi/Modules/V5/routes/api.php index f62ed2bdda..c6c36f34f2 100644 --- a/src/Ushahidi/Modules/V5/routes/api.php +++ b/src/Ushahidi/Modules/V5/routes/api.php @@ -369,7 +369,7 @@ function () use ($router) { $router->get('/{id}', 'MessageController@show'); $router->post('/', 'MessageController@store'); $router->put('/{id}', 'MessageController@update'); - $router->delete('/{id}', 'MessageController@delete'); + $router->get('/{id}/post', 'MessageController@showPost'); } ); diff --git a/tests/Integration/v5/messages.v5.feature b/tests/Integration/v5/messages.v5.feature index 7aed322d64..ed5e70e94c 100644 --- a/tests/Integration/v5/messages.v5.feature +++ b/tests/Integration/v5/messages.v5.feature @@ -1,6 +1,207 @@ @oauth2Skip Feature: Testing the Messages API + Scenario: Creating a new Message + Given that I want to make a new "Message" + And that the api_url is "api/v5" + And that the request "data" is: + """ + { + "message":"Test creating outgoing", + "type":"sms", + "direction":"outgoing", + "contact_id":"1" + } + """ + When I request "/messages" + Then the response is JSON + And the response has a "result.id" property + And the type of the "result.id" property is "numeric" + And the "result.message" property equals "Test creating outgoing" + And the "result.status" property equals "pending" + And the "result.user_id" property equals "2" + Then the guzzle status code should be 200 + + Scenario: Replying to a message + Given that I want to make a new "Message" + And that the api_url is "api/v5" + And that the request "data" is: + """ + { + "message":"Test message reply", + "parent_id":"9", + "contact_id": "3", + "direction":"outgoing" + } + """ + When I request "/messages" + Then the response is JSON + And the response has a "result.id" property + And the type of the "result.id" property is "numeric" + And the "result.message" property equals "Test message reply" + And the "result.status" property equals "pending" + And the "result.type" property equals "sms" + And the "result.data_source" property equals "smssync" + And the "result.contact_id" property equals "3" + And the "result.parent_id" property equals "9" + Then the guzzle status code should be 200 + + Scenario: Creating an incoming message should fail + Given that I want to make a new "Message" + And that the api_url is "api/v5" + And that the request "data" is: + """ + { + "message":"Test creating outgoing", + "type":"sms", + "direction":"incoming", + "contact_id":"1" + } + """ + When I request "/messages" + Then the response is JSON + And the response has a "errors" property + Then the guzzle status code should be 422 + + Scenario: Updating an incoming message fails + Given that I want to update a "Message" + And that the api_url is "api/v5" + And that the request "data" is: + """ + { + "message": "Overwrite message" + } + """ + And that its "id" is "1" + When I request "/messages" + Then the response is JSON + Then the guzzle status code should be 403 + + Scenario: Updating an incoming message to outgoing fails + Given that I want to update a "Message" + And that the api_url is "api/v5" + And that the request "data" is: + """ + { + "message": "Overwrite message", + "direction": "outgoing" + } + """ + And that its "id" is "1" + When I request "/messages" + Then the response is JSON + Then the guzzle status code should be 403 + + Scenario: Updating an outgoing message should only update status + Given that I want to update a "Message" + And that the api_url is "api/v5" + And that the request "data" is: + """ + { + "message": "Updated message", + "status": "cancelled" + } + """ + And that its "id" is "7" + When I request "/messages" + Then the response is JSON + And the response has a "result.id" property + And the type of the "result.id" property is "numeric" + And the "result.id" property equals "7" + And the "result.message" property equals "Updated message" + And the "result.status" property equals "cancelled" + Then the guzzle status code should be 200 + + Scenario: Updating a non-existent Message + Given that I want to update a "Message" + And that the api_url is "api/v5" + And that the request "data" is: + """ + { + "message": "Overwrite message", + "status": "archived" + } + """ + And that its "id" is "40" + When I request "/messages" + Then the response is JSON + And the response has a "errors" property + Then the guzzle status code should be 404 + + @resetFixture + Scenario: Listing Messages (default filters) + Given that I want to get all "Messages" + And that the api_url is "api/v5" + When I request "/messages" + Then the response is JSON + And the response has a "count" property + And the type of the "count" property is "numeric" + And the "count" property equals "18" + Then the guzzle status code should be 200 + + Scenario: Listing All Messages in the inbox + Given that I want to get all "Messages" + And that the api_url is "api/v5" + And that the request "query string" is: + """ + box=inbox + """ + When I request "/messages" + Then the response is JSON + And the response has a "count" property + And the type of the "count" property is "numeric" + And the "count" property equals "10" + Then the guzzle status code should be 200 + + Scenario: Search All Messages + Given that I want to get all "Messages" + And that the api_url is "api/v5" + And that the request "query string" is: + """ + q=abc + """ + When I request "/messages" + Then the response is JSON + And the "count" property equals "1" + Then the guzzle status code should be 200 + + Scenario: Search All Messages by type + Given that I want to get all "Messages" + And that the api_url is "api/v5" + And that the request "query string" is: + """ + type=email + """ + When I request "/messages" + Then the response is JSON + And the "count" property equals "2" + And the "results.0.id" property equals "3" + Then the guzzle status code should be 200 + + Scenario: Search All Messages by direction + Given that I want to get all "Messages" + And that the api_url is "api/v5" + And that the request "query string" is: + """ + box=outbox + """ + When I request "/messages" + Then the response is JSON + And the "count" property equals "8" + Then the guzzle status code should be 200 + + Scenario: Search All Messages by status + Given that I want to get all "Messages" + And that the api_url is "api/v5" + And that the request "query string" is: + """ + status=pending&box=outbox + """ + When I request "/messages" + Then the response is JSON + And the "count" property equals "1" + And the "results.0.id" property equals "7" + Then the guzzle status code should be 200 Scenario: Get all messages regardless of status Given that I want to get all "Messages" @@ -14,6 +215,19 @@ Feature: Testing the Messages API And the "count" property equals "19" Then the guzzle status code should be 200 + Scenario: Search All Messages by provider + Given that I want to get all "Messages" + And that the api_url is "api/v5" + And that the request "query string" is: + """ + data_source=smssync + """ + When I request "/messages" + Then the response is JSON + And the "count" property equals "2" + And the "results.0.id" property equals "5" + Then the guzzle status code should be 200 + Scenario: Finding a Message Given that I want to find a "Message" And that the api_url is "api/v5" @@ -33,8 +247,46 @@ Feature: Testing the Messages API And the response has a "errors" property Then the guzzle status code should be 404 - - + Scenario: Deleting a Message fails with 405 + Given that I want to delete a "Message" + And that the api_url is "api/v5" + And that its "id" is "1" + When I request "/messages" + Then the guzzle status code should be 405 + + Scenario: Deleting a non-existent Message fails with 405 + Given that I want to delete a "Message" + And that the api_url is "api/v5" + And that its "id" is "35" + When I request "/messages" + Then the guzzle status code should be 405 + + Scenario: Finding a Post from a Message + Given that I want to find a "Post" + And that the api_url is "api/v5" + When I request "/messages/4/post" + Then the response is JSON + And the "result.id" property equals "110" + Then the guzzle status code should be 200 + + Scenario: Admin can set user id when creating a message + Given that I want to make a new "Message" + And that the api_url is "api/v5" + And that the request "data" is: + """ + { + "message":"Test creating outgoing", + "type":"sms", + "direction":"outgoing", + "contact_id":"1", + "user_id":1 + } + """ + When I request "/messages" + Then the response is JSON + And the "result.user_id" property equals "1" + Then the guzzle status code should be 200 + Scenario: Admin cant set user id to something invalid Given that I want to make a new "Message" And that the api_url is "api/v5" From c365cbfab42910d58512d510b80bc5a5e0fabfe1 Mon Sep 17 00:00:00 2001 From: Mh-Asmi Date: Mon, 19 Jun 2023 18:43:00 +0400 Subject: [PATCH 43/75] layer tests --- .../Controllers/NotificationController.php | 3 +- .../Resources/Message/MessageResource.php | 2 +- .../Notification/NotificationResource.php | 2 +- src/Ushahidi/Modules/V5/Models/Layer.php | 2 +- tests/Integration/layers.feature | 43 ++++++++++++------- 5 files changed, 33 insertions(+), 19 deletions(-) diff --git a/src/Ushahidi/Modules/V5/Http/Controllers/NotificationController.php b/src/Ushahidi/Modules/V5/Http/Controllers/NotificationController.php index 83eba40b00..f0c8ab94f6 100644 --- a/src/Ushahidi/Modules/V5/Http/Controllers/NotificationController.php +++ b/src/Ushahidi/Modules/V5/Http/Controllers/NotificationController.php @@ -76,7 +76,8 @@ public function update(int $id, NotificationRequest $request) $old_notification = $this->queryBus->handle(new FetchNotificationByIdQuery($id)); $command = UpdateNotificationCommand::fromRequest($id, $request, $old_notification); $new_notification = new Notification($command->getNotificationEntity()->asArray()); - $this->authorize('update', $new_notification); + //$this->authorize('update', $new_notification); + $this->authorize('update', $old_notification); $this->commandBus->handle($command); return $this->show($id); }// end update diff --git a/src/Ushahidi/Modules/V5/Http/Resources/Message/MessageResource.php b/src/Ushahidi/Modules/V5/Http/Resources/Message/MessageResource.php index a24de89739..916f625614 100644 --- a/src/Ushahidi/Modules/V5/Http/Resources/Message/MessageResource.php +++ b/src/Ushahidi/Modules/V5/Http/Resources/Message/MessageResource.php @@ -15,7 +15,7 @@ class MessageResource extends Resource public static $wrap = 'result'; private function getResourcePrivileges() { - $authorizer = service('authorizer.layer'); + $authorizer = service('authorizer.message'); // Obtain v3 entity from the v5 post model // Note that we use attributesToArray instead of toArray because the first // would have the effect of causing unnecessary requests to the database diff --git a/src/Ushahidi/Modules/V5/Http/Resources/Notification/NotificationResource.php b/src/Ushahidi/Modules/V5/Http/Resources/Notification/NotificationResource.php index b360b0535d..2a8576001c 100644 --- a/src/Ushahidi/Modules/V5/Http/Resources/Notification/NotificationResource.php +++ b/src/Ushahidi/Modules/V5/Http/Resources/Notification/NotificationResource.php @@ -15,7 +15,7 @@ class NotificationResource extends Resource public static $wrap = 'result'; private function getResourcePrivileges() { - $authorizer = service('authorizer.layer'); + $authorizer = service('authorizer.notification'); // Obtain v3 entity from the v5 post model // Note that we use attributesToArray instead of toArray because the first // would have the effect of causing unnecessary requests to the database diff --git a/src/Ushahidi/Modules/V5/Models/Layer.php b/src/Ushahidi/Modules/V5/Models/Layer.php index 679d1cc2d5..9b30dcd989 100644 --- a/src/Ushahidi/Modules/V5/Models/Layer.php +++ b/src/Ushahidi/Modules/V5/Models/Layer.php @@ -31,7 +31,7 @@ class Layer extends BaseModel * * @var string */ - protected $table = 'Layers'; + protected $table = 'layers'; /** * Add relations to eager load diff --git a/tests/Integration/layers.feature b/tests/Integration/layers.feature index f967a57139..49c0914c15 100644 --- a/tests/Integration/layers.feature +++ b/tests/Integration/layers.feature @@ -3,6 +3,7 @@ Feature: Testing the Layers API Scenario: Listing All Layers Given that I want to get all "Layers" + And that the api_url is "api/v5" When I request "/layers" Then the response is JSON And the response has a "count" property @@ -13,6 +14,7 @@ Feature: Testing the Layers API @resetFixture Scenario: Search All Layers by type Given that I want to get all "Layers" + And that the api_url is "api/v5" And that the request "query string" is: """ type=geojson @@ -25,6 +27,7 @@ Feature: Testing the Layers API @resetFixture Scenario: Search All Layers by active Given that I want to get all "Layers" + And that the api_url is "api/v5" And that the request "query string" is: """ active=0 @@ -36,15 +39,17 @@ Feature: Testing the Layers API Scenario: Finding a Layer Given that I want to find a "Layer" + And that the api_url is "api/v5" And that its "id" is "1" When I request "/layers" Then the response is JSON - And the response has a "id" property - And the type of the "id" property is "numeric" + And the response has a "result.id" property + And the type of the "result.id" property is "numeric" Then the guzzle status code should be 200 Scenario: Finding a non-existent Layer Given that I want to find a "Layer" + And that the api_url is "api/v5" And that its "id" is "35" When I request "/layers" Then the response is JSON @@ -53,6 +58,7 @@ Feature: Testing the Layers API Scenario: Creating a new Layer Given that I want to make a new "Layer" + And that the api_url is "api/v5" And that the request "data" is: """ { @@ -68,18 +74,19 @@ Feature: Testing the Layers API """ When I request "/layers" Then the response is JSON - And the response has a "id" property - And the type of the "id" property is "numeric" - And the "name" property equals "test" - And the "data_url" property equals "http://ushahidi-platform.dev/media/test.geojson" - And the "type" property equals "geojson" - And the "active" property equals "1" - And the "visible_by_default" property equals "1" - And the type of the "options" property is "array" + And the response has a "result.id" property + And the type of the "result.id" property is "numeric" + And the "result.name" property equals "test" + And the "result.data_url" property equals "http://ushahidi-platform.dev/media/test.geojson" + And the "result.type" property equals "geojson" + And the "result.active" property equals "1" + And the "result.visible_by_default" property equals "1" + And the type of the "result.options" property is "array" Then the guzzle status code should be 200 Scenario: Creating a new Layer with invalid data fails Given that I want to make a new "Layer" + And that the api_url is "api/v5" And that the request "data" is: """ { @@ -97,6 +104,7 @@ Feature: Testing the Layers API Scenario: Creating a new Layer with missing data fails Given that I want to make a new "Layer" + And that the api_url is "api/v5" And that the request "data" is: """ { @@ -112,6 +120,7 @@ Feature: Testing the Layers API Scenario: Creating a new Layer with no url or media fails Given that I want to make a new "Layer" + And that the api_url is "api/v5" And that the request "data" is: """ { @@ -128,6 +137,7 @@ Feature: Testing the Layers API Scenario: Creating a new Layer invalid media fails Given that I want to make a new "Layer" + And that the api_url is "api/v5" And that the request "data" is: """ { @@ -145,6 +155,7 @@ Feature: Testing the Layers API Scenario: Updating a Layer Given that I want to update a "Layer" + And that the api_url is "api/v5" And that the request "data" is: """ { @@ -158,21 +169,23 @@ Feature: Testing the Layers API And that its "id" is "1" When I request "/layers" Then the response is JSON - And the response has a "id" property - And the type of the "id" property is "numeric" - And the "id" property equals "1" - And the response has a "name" property - And the "name" property equals "test updated" + And the response has a "result.id" property + And the type of the "result.id" property is "numeric" + And the "result.id" property equals "1" + And the response has a "result.name" property + And the "result.name" property equals "test updated" Then the guzzle status code should be 200 Scenario: Deleting a Layer Given that I want to delete a "Layer" + And that the api_url is "api/v5" And that its "id" is "1" When I request "/layers" Then the guzzle status code should be 200 Scenario: Deleting a non-existent Layer Given that I want to delete a "Layer" + And that the api_url is "api/v5" And that its "id" is "35" When I request "/layers" And the response has a "errors" property From a63297a9b448d8df725c9401376960402449b336 Mon Sep 17 00:00:00 2001 From: Mh-Asmi Date: Wed, 21 Jun 2023 18:54:43 +0400 Subject: [PATCH 44/75] add post details --- .../Modules/V5/Http/Controllers/MessageController.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Ushahidi/Modules/V5/Http/Controllers/MessageController.php b/src/Ushahidi/Modules/V5/Http/Controllers/MessageController.php index b59f2dce4b..8f061994f9 100644 --- a/src/Ushahidi/Modules/V5/Http/Controllers/MessageController.php +++ b/src/Ushahidi/Modules/V5/Http/Controllers/MessageController.php @@ -15,6 +15,8 @@ use Ushahidi\Core\Exception\NotFoundException; use Ushahidi\Modules\V5\Actions\Post\Queries\FindPostByIdQuery; use Ushahidi\Modules\V5\Http\Resources\Post\PostResource ; +use Ushahidi\Modules\V5\Models\Post\Post; + class MessageController extends V5Controller { @@ -98,7 +100,7 @@ public function showPost(int $id) $message = $this->queryBus->handle(new FetchMessageByIdQuery($id)); $this->authorize('show', $message); if ($message->post_id) { - $post = $this->queryBus->handle(new FindPostByIdQuery($message->post_id)); + $post = $this->queryBus->handle(new FindPostByIdQuery($message->post_id, Post::ALLOWED_FIELDS)); return new postResource($post); } throw new NotFoundException("Post does not exist for this message"); From e49af0bd7ff52e6ee3f5d1a073722476761df7a0 Mon Sep 17 00:00:00 2001 From: Mh-Asmi Date: Wed, 21 Jun 2023 18:59:38 +0400 Subject: [PATCH 45/75] Update MessageController.php fix lint --- src/Ushahidi/Modules/V5/Http/Controllers/MessageController.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Ushahidi/Modules/V5/Http/Controllers/MessageController.php b/src/Ushahidi/Modules/V5/Http/Controllers/MessageController.php index 8f061994f9..c1f5e38d9e 100644 --- a/src/Ushahidi/Modules/V5/Http/Controllers/MessageController.php +++ b/src/Ushahidi/Modules/V5/Http/Controllers/MessageController.php @@ -17,7 +17,6 @@ use Ushahidi\Modules\V5\Http\Resources\Post\PostResource ; use Ushahidi\Modules\V5\Models\Post\Post; - class MessageController extends V5Controller { From 8d3009f6998bae9274fcf4c1bd5d28b94a9793c6 Mon Sep 17 00:00:00 2001 From: David Losada Carballo Date: Sun, 9 Jul 2023 20:17:55 +0200 Subject: [PATCH 46/75] chore: upload image to github packages --- .github/workflows/test-and-ship.yml | 8 ++++++++ Dockerfile | 1 + 2 files changed, 9 insertions(+) diff --git a/.github/workflows/test-and-ship.yml b/.github/workflows/test-and-ship.yml index c064d64197..8ea9cb3361 100644 --- a/.github/workflows/test-and-ship.yml +++ b/.github/workflows/test-and-ship.yml @@ -128,12 +128,20 @@ jobs: with: registry: 513259414768.dkr.ecr.eu-west-1.amazonaws.com + - name: Login to GitHub Container Registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Docker meta id: meta uses: docker/metadata-action@v3 with: images: | 513259414768.dkr.ecr.eu-west-1.amazonaws.com/platform + ghcr.io/ushahidi/platform tags: | type=ref,event=branch type=ref,event=pr diff --git a/Dockerfile b/Dockerfile index 3431ed9569..5dc049be57 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,5 @@ FROM ushahidi/php-fpm-nginx:php-7.3 +LABEL org.opencontainers.image.source="https://github.com/ushahidi/platform" WORKDIR /var/www COPY composer.json ./ From 235c134be88af2568d725fc3f4c49ffdcf6914f9 Mon Sep 17 00:00:00 2001 From: David Losada Carballo Date: Sun, 9 Jul 2023 21:13:32 +0200 Subject: [PATCH 47/75] chore: fix wrong command result in util script --- docker/utils.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/utils.sh b/docker/utils.sh index 81b683ffb4..ec872f5dfe 100644 --- a/docker/utils.sh +++ b/docker/utils.sh @@ -125,4 +125,5 @@ function wait_bootstrap { while [ ! -f /bootstrapped ]; do sleep 1 done + true; } \ No newline at end of file From 166981aaae056651b8b622c228af12b940e4da29 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong Date: Mon, 10 Jul 2023 12:27:09 +0100 Subject: [PATCH 48/75] chore: improvements to resolve client url in single or multi site mode --- .env.example | 2 ++ app/Tools/Mailer.php | 8 ++++++-- config/multisite.php | 1 + src/Ushahidi/Multisite/Site.php | 4 +++- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.env.example b/.env.example index b3fec4c2b5..a4ed51c14e 100644 --- a/.env.example +++ b/.env.example @@ -4,6 +4,8 @@ APP_DEBUG=true APP_KEY=SomeRandomKey!!!SomeRandomKey!!! APP_TIMEZONE=UTC +DEFAULT_CLIENT_URL= + DB_CONNECTION=mysql DB_HOST=192.168.33.110 DB_HOST_REPLICA=192.168.33.110 diff --git a/app/Tools/Mailer.php b/app/Tools/Mailer.php index 447fcb4bcd..5cf5479566 100644 --- a/app/Tools/Mailer.php +++ b/app/Tools/Mailer.php @@ -19,6 +19,8 @@ class Mailer implements MailerContract { use UsesSiteInfo; + protected $mailer; + public function __construct(LaravelMailer $mailer) { $this->mailer = $mailer; @@ -40,11 +42,13 @@ protected function sendResetpassword($to, $params) { $site_name = $this->getSite()->getName(); $site_email = $this->getSite()->getEmail(); + $site_client_url = $this->getSite()->getClientUri() ?? env('DEFAULT_CLIENT_URL'); + $token = $params['token']; $data = [ 'site_name' => $site_name, - 'token' => $params['token'], - 'client_url' => $this->getSite()->getClientUri(), + 'token' => $token, + 'client_url' => $site_client_url, ]; $subject = $site_name.': Password reset'; diff --git a/config/multisite.php b/config/multisite.php index 4bd119ed75..81facc72ac 100644 --- a/config/multisite.php +++ b/config/multisite.php @@ -34,4 +34,5 @@ 'domain' => env('MULTISITE_DOMAIN'), 'email' => env('MULTISITE_EMAIL'), 'client_domain' => env('MULTISITE_CLIENT_DOMAIN'), + 'client_scheme' => env('MULTISITE_CLIENT_SCHEME', 'http') ]; diff --git a/src/Ushahidi/Multisite/Site.php b/src/Ushahidi/Multisite/Site.php index 0edfb04e6f..cafbaeaa71 100644 --- a/src/Ushahidi/Multisite/Site.php +++ b/src/Ushahidi/Multisite/Site.php @@ -65,13 +65,15 @@ public function getClientUri() // If we're in multisite mode if (config('multisite.enabled')) { // build the url from config + subdomain - return implode('.', array_filter([ + $http_host = implode('.', array_filter([ $this->subdomain, config( 'multisite.client_domain', $this->domain ) ])); + + return config('multisite.client_scheme') . "://$http_host"; } // get client_url from site config From 3d8077f344db592ee015adb524813193bdb41bd2 Mon Sep 17 00:00:00 2001 From: David Losada Carballo Date: Mon, 10 Jul 2023 17:24:54 +0200 Subject: [PATCH 49/75] chore: Dockerfile add default service startup command --- Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 5dc049be57..a630720e47 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,6 @@ ENV ENABLE_PLATFORM_TASKS=true \ VHOST_INDEX=index.php \ PHP_EXEC_TIME_LIMIT=3600 \ GIT_COMMIT_ID=${GIT_COMMIT_ID} \ - GIT_BUILD_REF=${GIT_BUILD_REF} \ No newline at end of file + GIT_BUILD_REF=${GIT_BUILD_REF} + +CMD [ "start" ] From 40e6233568441d5ec68668d6fdd12b389a061b3f Mon Sep 17 00:00:00 2001 From: Mh-Asmi Date: Mon, 10 Jul 2023 18:27:15 +0400 Subject: [PATCH 50/75] add post color --- .../Actions/Post/Handlers/FindPostByIdQueryHandler.php | 9 +++++++-- .../V5/Actions/Post/Handlers/ListPostsQueryHandler.php | 3 +++ src/Ushahidi/Modules/V5/Models/Post/Post.php | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Ushahidi/Modules/V5/Actions/Post/Handlers/FindPostByIdQueryHandler.php b/src/Ushahidi/Modules/V5/Actions/Post/Handlers/FindPostByIdQueryHandler.php index ca1b304d87..1ba4166f9e 100644 --- a/src/Ushahidi/Modules/V5/Actions/Post/Handlers/FindPostByIdQueryHandler.php +++ b/src/Ushahidi/Modules/V5/Actions/Post/Handlers/FindPostByIdQueryHandler.php @@ -55,11 +55,14 @@ private function addHydrateRelationships(Post $post, array $hydrates) { foreach ($hydrates as $hydrate) { switch ($hydrate) { + case 'color': + $post->color = $post->survey ? $post->survey->color : null; + break; case 'categories': // $result['categories'] = $post->categories; break; case 'sets': - // $post->sets = $post->sets->pluck('id'); + // $post->sets = $post->sets->pluck('id'); break; case 'completed_stages': $post->completed_stages = $post->postStages; @@ -110,6 +113,8 @@ private function addHydrateRelationships(Post $post, array $hydrates) break; } } + // dd($post); + return $post; } private function hideFieldsUsedByRelationships(Post $post, array $fields = []) @@ -142,7 +147,7 @@ private function hideUnwantedRelationships(Post $post, array $hydrates) // hide source relationships if (!in_array('message', $hydrates)) { - $post->makeHidden('message'); + $post->makeHidden('message'); } // hide completed_stages relationships diff --git a/src/Ushahidi/Modules/V5/Actions/Post/Handlers/ListPostsQueryHandler.php b/src/Ushahidi/Modules/V5/Actions/Post/Handlers/ListPostsQueryHandler.php index a14641c3ce..2b9cd0f9f6 100644 --- a/src/Ushahidi/Modules/V5/Actions/Post/Handlers/ListPostsQueryHandler.php +++ b/src/Ushahidi/Modules/V5/Actions/Post/Handlers/ListPostsQueryHandler.php @@ -64,6 +64,9 @@ private function addHydrateRelationships(Post $post, array $hydrates) { foreach ($hydrates as $hydrate) { switch ($hydrate) { + case 'color': + $post->color = $post->survey ? $post->survey->color : null; + break; case 'categories': // $result['categories'] = $post->categories; break; diff --git a/src/Ushahidi/Modules/V5/Models/Post/Post.php b/src/Ushahidi/Modules/V5/Models/Post/Post.php index ee1f3a165d..b92040b300 100644 --- a/src/Ushahidi/Modules/V5/Models/Post/Post.php +++ b/src/Ushahidi/Modules/V5/Models/Post/Post.php @@ -61,6 +61,7 @@ class Post extends BaseModel public const ALLOWED_RELATIONSHIPS = [ 'locks' => ['fields' => [], 'relationships' => ["locks"]], 'categories' => ['fields' => [], 'relationships' => ["categories"]], + 'color' => ['fields' => [], 'relationships' => ["survey"]], 'sets' => ['fields' => [], 'relationships' => ["sets"]], 'message' => ['fields' => [], 'relationships' => ['message']], 'contact' => ['fields' => [], 'relationships' => ['message']], From 85bc51b2a1073f80caf145e270379154e1026d70 Mon Sep 17 00:00:00 2001 From: Mh-Asmi Date: Mon, 10 Jul 2023 18:53:41 +0400 Subject: [PATCH 51/75] add count of posts in set --- .../V5/Http/Resources/Collection/CollectionResource.php | 1 + src/Ushahidi/Modules/V5/Models/Set.php | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/Ushahidi/Modules/V5/Http/Resources/Collection/CollectionResource.php b/src/Ushahidi/Modules/V5/Http/Resources/Collection/CollectionResource.php index 926200e52b..181ea48183 100644 --- a/src/Ushahidi/Modules/V5/Http/Resources/Collection/CollectionResource.php +++ b/src/Ushahidi/Modules/V5/Http/Resources/Collection/CollectionResource.php @@ -45,6 +45,7 @@ public function toArray($request) 'featured' => $this->featured, 'created' => $this->created, 'updated' => $this->updated, + 'posts_count'=>$this->posts->count(), 'allowed_privileges' => $this->getResourcePrivileges() ]; } diff --git a/src/Ushahidi/Modules/V5/Models/Set.php b/src/Ushahidi/Modules/V5/Models/Set.php index a23a6f3aa5..40476ba381 100644 --- a/src/Ushahidi/Modules/V5/Models/Set.php +++ b/src/Ushahidi/Modules/V5/Models/Set.php @@ -95,6 +95,11 @@ public function scopeAllowed($query) return $query; } + public function posts() + { + return $this->belongsToMany('Ushahidi\Modules\V5\Models\Post\Post', 'posts_sets', 'set_id'); + } + public function errors() { return $this->errors; From dec8b6f38fe538c2ce2324dae75c9f6b57c49dcf Mon Sep 17 00:00:00 2001 From: Mh-Asmi Date: Tue, 11 Jul 2023 05:35:53 +0400 Subject: [PATCH 52/75] add config update --- .../Config/Commands/UpdateConfigCommand.php | 97 +++++++++++---- .../Handlers/FindConfigByNameQueryHandler.php | 57 ++++++++- .../Handlers/UpdateConfigCommandHandler.php | 114 +++--------------- .../Config/Queries/FindConfigByNameQuery.php | 10 +- .../V5/Http/Controllers/ConfigController.php | 26 +++- .../Resources/Config/ConfigKeyResource.php | 19 +++ src/Ushahidi/Modules/V5/Models/Config.php | 23 ++-- .../V5/Repository/Config/ConfigRepository.php | 5 +- .../Config/EloquentConfigRepository.php | 18 ++- src/Ushahidi/Modules/V5/routes/api.php | 32 ++--- 10 files changed, 242 insertions(+), 159 deletions(-) create mode 100644 src/Ushahidi/Modules/V5/Http/Resources/Config/ConfigKeyResource.php diff --git a/src/Ushahidi/Modules/V5/Actions/Config/Commands/UpdateConfigCommand.php b/src/Ushahidi/Modules/V5/Actions/Config/Commands/UpdateConfigCommand.php index 9bf19bb9af..a7ffd90fc6 100644 --- a/src/Ushahidi/Modules/V5/Actions/Config/Commands/UpdateConfigCommand.php +++ b/src/Ushahidi/Modules/V5/Actions/Config/Commands/UpdateConfigCommand.php @@ -14,7 +14,7 @@ class UpdateConfigCommand implements Command /** * @var string */ - private $group; + private $group_name; /** * @var array @@ -24,46 +24,99 @@ class UpdateConfigCommand implements Command private $insert_configs; private $delete_configs; - public function __construct(string $group, array $update_configs, array $insert_configs, array $delete_configs) + public function __construct(string $group_name, array $update_configs, array $insert_configs, array $delete_configs) { - $this->group = $group; + $this->group_name = $group_name; $this->update_configs = $update_configs; $this->insert_configs = $insert_configs; $this->delete_configs = $delete_configs; } - public static function fromRequest(string $group, Request $request, array $current_configs): self - { + public static function fromRequest( + string $group_name, + Request $request, + array $current_configs, + ?string $config_key = null + ): self { $update_configs = []; $insert_configs = []; $delete_configs = []; $new_configs = $request->input(); - foreach ($new_configs as $key => $value) { - if ($key == 'id') { - // ignor it - continue; + // case it is key + if ($config_key) { + $value = $new_configs; + if (self::is_data_provider($group_name)) { + foreach ($current_configs as $old_key => $old_value) { + if ($old_key === 'id' || $old_key === "allowed_privileges") { + continue; + } + $providers[$old_key] = $old_value['enabled']; + } + $providers[$config_key] = $value["enabled"]; + $value = $value['params']; + } elseif (count($new_configs) === 1 && array_keys($new_configs) === [0]) { + $value = $new_configs[0]; } - if (key_exists($key, $current_configs)) { - $update_configs[$key] = $value; + if (key_exists($config_key, $current_configs)) { + $update_configs[$config_key] = $value; } else { - $insert_configs[$key] = $value; + $insert_configs[$config_key] = $value; } - } - foreach ($current_configs as $key => $value) { - if (!key_exists($key, $new_configs)) { - $delete_configs[$key] = $value; + } else { + $providers = [] ;//= $current_configs['providers'] + $authenticable = [] ; + foreach ($new_configs as $key => $value) { + if ($key === 'id' || $key === "allowed_privileges") { + continue; + } + if (self::is_data_provider($group_name)) { + $providers[$key] = $value['enabled']; + $value = $value['params']; + } + + if (key_exists($key, $current_configs)) { + $update_configs[$key] = $value; + } else { + $insert_configs[$key] = $value; + } + } + foreach ($current_configs as $key => $value) { + if ($key === 'id' || $key === "allowed_privileges") { + continue; + } + + if (self::is_data_provider($group_name)) { + $value = $value['params']; + } + + if (!key_exists($key, $new_configs)) { + $delete_configs[$key] = $value; + } } } + if (self::is_data_provider($group_name)) { + $update_configs["providers"] = $providers; + } + return new self($group_name, $update_configs, $insert_configs, $delete_configs); + } + protected static function is_data_provider($group_name) + { + return $group_name === "data-provider"; + } - return new self($group, $update_configs, $insert_configs, $delete_configs); + protected static function remove_extra_data_provider($provider_value) + { + unset($provider_value['']); + return $provider_value; } - public function getGroup(): String + public function getGroupName(): String { - return $this->group; + return $this->group_name; } + /** * @return array */ @@ -77,10 +130,8 @@ public function getInsertConfigs(): array return $this->insert_configs; } - protected function verifyGroup($group) + public function getDeleteConfigs(): array { - if (!in_array($group, Config::AVIALABLE_CONFIG_GROUPS)) { - throw new NotFoundException("Requested group does not exist: " . $group); - } + return $this->delete_configs; } } diff --git a/src/Ushahidi/Modules/V5/Actions/Config/Handlers/FindConfigByNameQueryHandler.php b/src/Ushahidi/Modules/V5/Actions/Config/Handlers/FindConfigByNameQueryHandler.php index 84908731bb..1c0cd1d0e9 100644 --- a/src/Ushahidi/Modules/V5/Actions/Config/Handlers/FindConfigByNameQueryHandler.php +++ b/src/Ushahidi/Modules/V5/Actions/Config/Handlers/FindConfigByNameQueryHandler.php @@ -40,15 +40,48 @@ public function __invoke(Action $action) $group_configs[$config->config_key] = $config->config_value; } - + // Merge defaults $defaults = $this->getDefaults($action->getGroupName()); - $group_configs = array_replace_recursive($defaults, $group_configs); - return collect($group_configs); + + // handle data provider + if ($action->getGroupName() === "data-provider") { + if ($action->getKey()) { + $this->verifyDataProvider($group_configs, $action->getKey()); + return collect($this->getOneDataProvider($group_configs, $action->getKey())); + } + return collect($this->getDataProvider($group_configs)); + } + if ($action->getKey()) { + return collect($group_configs[$action->getKey()]); + } + return collect($group_configs); } + protected function getDataProvider($raw_data_providers) + { + $data_providers = []; + $data_providers['id'] = "data-providers"; + foreach ($raw_data_providers['providers'] as $provider_name => $provider_status) { + $data_providers[$provider_name] = $this->getOneDataProvider($raw_data_providers, $provider_name); + } + return $data_providers; + } + protected function getOneDataProvider($raw_data_providers, $provider_name) + { + $data_provider["provider-name"] = $provider_name; + $data_provider["enabled"] = $raw_data_providers['providers'][$provider_name]; + // $data_provider["authenticable"] = + // isset($raw_data_providers["authenticable-providers"][$provider_name]) + // ? $raw_data_providers["authenticable-providers"][$provider_name] + // : false; + $data_provider["params"] = isset($raw_data_providers[$provider_name]) + ? $raw_data_providers[$provider_name] + : []; + return $data_provider; + } protected function verifyGroup($group) { if (!in_array($group, Config::AVIALABLE_CONFIG_GROUPS)) { @@ -56,6 +89,22 @@ protected function verifyGroup($group) } } + protected function verifyKey($group_config, $key) + { + if (!in_array($key, array_keys($group_config))) { + throw new NotFoundException("Requested config does not exist: " . $key); + } + } + + + protected function verifyDataProvider($data_providers, $provider_name) + { + if (!in_array($provider_name, array_keys($data_providers['providers']))) { + throw new NotFoundException("Requested config does not exist: " . $provider_name); + } + } + + protected function getDefaults($group) { // Just in case we find some other path here @@ -64,7 +113,7 @@ protected function getDefaults($group) $this->verifyGroup($group); // @todo add them to config! - $file = __DIR__."/../../../.." . '/V3/Repository/Config/' . $group . '.php'; + $file = __DIR__ . "/../../../.." . '/V3/Repository/Config/' . $group . '.php'; if (file_exists($file)) { return require $file; } diff --git a/src/Ushahidi/Modules/V5/Actions/Config/Handlers/UpdateConfigCommandHandler.php b/src/Ushahidi/Modules/V5/Actions/Config/Handlers/UpdateConfigCommandHandler.php index 39edda2eed..3d25819f9a 100644 --- a/src/Ushahidi/Modules/V5/Actions/Config/Handlers/UpdateConfigCommandHandler.php +++ b/src/Ushahidi/Modules/V5/Actions/Config/Handlers/UpdateConfigCommandHandler.php @@ -12,11 +12,12 @@ use Ushahidi\Modules\V5\Actions\Config\Commands\UpdateConfigCommand; use Illuminate\Support\Facades\DB; use Ushahidi\Core\Entity\Config as ConfigEntity; +use Ushahidi\Core\Exception\NotFoundException; class UpdateConfigCommandHandler extends AbstractCommandHandler { - // Use Event trait to trigger events - use Event; + // Use Event trait to trigger events + use Event; private $config_repository; public function __construct(ConfigRepository $config_repository) @@ -26,7 +27,7 @@ public function __construct(ConfigRepository $config_repository) protected function isSupported(Command $command): void { - if (!$command instanceof UpdatePUpdateConfigCommandostCommand) { + if (!$command instanceof UpdateConfigCommand) { throw new \Exception('Provided $command is not instance of UpdateConfigCommand'); } } @@ -38,117 +39,32 @@ public function __invoke(Action $action) */ $this->isSupported($action); - - $this->updateConfig($action); - } - - - private function updateConfig(UpdateConfigCommand $action) - { - $intercom_data = []; - $group = $action->getGroup(); - - // $this->verifyGroup($group); - - if ($group == 'deployment_id') { - return; /* noop */ - } - // Intercom count datasources - if ($group === 'data-provider') { - $intercom_data['num_data_sources'] = 0; - foreach ($entity->providers as $key => $value) { - $value ? $intercom_data['num_data_sources']++ : null; - } - } - - $immutable = $entity->getImmutable(); - foreach ($entity->getChanged() as $key => $val) { - // Emit Intercom Update events - if ($key === 'description') { - $intercom_data['has_description'] = true; - } - - if ($key === 'image_header') { - $intercom_data['has_logo'] = true; - } - - // New User - set their deployment created date - if ($key === 'first_login') { - $intercom_data['deployment_created_date'] = date("Y-m-d H:i:s"); - } - - if (! in_array($key, $immutable)) { - $this->insertOrUpdate($group, $key, $val); - } - } - - if ($intercom_data) { - $this->emit($this->event, $intercom_data); - } + $this->updateConfig($action); } - public function update(Entity $entity) + private function updateConfig(UpdateConfigCommand $action) { - $intercom_data = []; - $group = $entity->getId(); - $this->verifyGroup($group); + $this->verifyGroup($action->getGroupName()); - if ($group == 'deployment_id') { + if ($action->getGroupName() == 'deployment_id') { return; /* noop */ } - - // Intercom count datasources - if ($group === 'data-provider') { - $intercom_data['num_data_sources'] = 0; - foreach ($entity->providers as $key => $value) { - $value ? $intercom_data['num_data_sources']++ : null; - } + foreach ($action->getInsertConfigs() as $key => $value) { + $this->config_repository->createByKey($action->getGroupName(), $key, $value); } - $immutable = $entity->getImmutable(); - foreach ($entity->getChanged() as $key => $val) { - // Emit Intercom Update events - if ($key === 'description') { - $intercom_data['has_description'] = true; - } - - if ($key === 'image_header') { - $intercom_data['has_logo'] = true; - } - - // New User - set their deployment created date - if ($key === 'first_login') { - $intercom_data['deployment_created_date'] = date("Y-m-d H:i:s"); - } - - if (! in_array($key, $immutable)) { - $this->insertOrUpdate($group, $key, $val); - } + foreach ($action->getUpdateConfigs() as $key => $value) { + $this->config_repository->updateOrInsertByKey($action->getGroupName(), $key, $value); } - if ($intercom_data) { - $this->emit($this->event, $intercom_data); + foreach ($action->getDeleteConfigs() as $key => $value) { + $this->config_repository->deleteByKey($action->getGroupName(), $key); } - } - private function insertOrUpdate($group, $key, $value) - { - $value = json_encode($value); - - DB::query(Database::INSERT, " - INSERT INTO `config` - (`group_name`, `config_key`, `config_value`) VALUES (:group, :key, :value) - ON DUPLICATE KEY UPDATE `config_value` = :value; - ") - ->parameters([ - ':group' => $group, - ':key' => $key, - ':value' => $value - ]) - ->execute($this->db()); + // To Do add intercom event from V3 } protected function verifyGroup($group) diff --git a/src/Ushahidi/Modules/V5/Actions/Config/Queries/FindConfigByNameQuery.php b/src/Ushahidi/Modules/V5/Actions/Config/Queries/FindConfigByNameQuery.php index c795a66492..ad50330c64 100644 --- a/src/Ushahidi/Modules/V5/Actions/Config/Queries/FindConfigByNameQuery.php +++ b/src/Ushahidi/Modules/V5/Actions/Config/Queries/FindConfigByNameQuery.php @@ -9,15 +9,21 @@ class FindConfigByNameQuery implements Query { private $group_name; + private $key; - - public function __construct(string $group_name) + public function __construct(string $group_name, string $key = null) { $this->group_name = $group_name; + $this->key = $key; } public function getGroupName(): string { return $this->group_name; } + + public function getKey(): ?string + { + return $this->key; + } } diff --git a/src/Ushahidi/Modules/V5/Http/Controllers/ConfigController.php b/src/Ushahidi/Modules/V5/Http/Controllers/ConfigController.php index 32d191da94..9f33bec406 100644 --- a/src/Ushahidi/Modules/V5/Http/Controllers/ConfigController.php +++ b/src/Ushahidi/Modules/V5/Http/Controllers/ConfigController.php @@ -5,6 +5,7 @@ use App\Bus\Query\QueryBus; use Ushahidi\Modules\V5\Http\Resources\Config\ConfigCollection; use Ushahidi\Modules\V5\Http\Resources\Config\ConfigResource; +use Ushahidi\Modules\V5\Http\Resources\Config\ConfigKeyResource; use Illuminate\Http\Request; use Ushahidi\Modules\V5\Models\Config; use Ushahidi\Modules\V5\Actions\Config\Queries\FindConfigByNameQuery; @@ -22,11 +23,19 @@ class ConfigController extends V5Controller */ public function show(string $group_name) { + //$this->authorizeForCurrentUser('show', $group_configs); $group_configs = $this->queryBus->handle(new FindConfigByNameQuery($group_name)); - //$this->authorizeForCurrentUser('show', $group_configs); return new ConfigResource($group_configs); } //end show() + public function showKey(string $group_name, string $key) + { + + //$this->authorizeForCurrentUser('show', $group_configs); + $group_configs = $this->queryBus->handle(new FindConfigByNameQuery($group_name, $key)); + return new ConfigKeyResource($group_configs); + } //end show() + /** * Display the specified resource. @@ -50,5 +59,18 @@ public function update(Request $request, string $group_name) $request, $current_group_configs->toArray() )); - } //end store() + return $this->show($group_name); + } + + public function updateKey(Request $request, string $group_name, string $key) + { + $current_group_configs = $this->queryBus->handle(new FindConfigByNameQuery($group_name)); + $this->commandBus->handle(UpdateConfigCommand::fromRequest( + $group_name, + $request, + $current_group_configs->toArray(), + $key + )); + return $this->showKey($group_name, $key); + } } //end class diff --git a/src/Ushahidi/Modules/V5/Http/Resources/Config/ConfigKeyResource.php b/src/Ushahidi/Modules/V5/Http/Resources/Config/ConfigKeyResource.php new file mode 100644 index 0000000000..31591259e3 --- /dev/null +++ b/src/Ushahidi/Modules/V5/Http/Resources/Config/ConfigKeyResource.php @@ -0,0 +1,19 @@ +attributes['config_value'] = $value ? json_encode($value) : null; + if (is_bool($value)) { + $this->attributes['config_value'] = $value ? 'true' : 'false'; + } elseif (! is_array($value)) { + $this->attributes['config_value'] = $value; + } else { + $this->attributes['config_value'] = json_encode($value) ; + } } public function getConfigValueAttribute($value) { - return $value ? json_decode($value, true) : null; + if ($value === 'true') { + return true; + } elseif ($value === 'false') { + return false; + } + + return json_decode($value, true); } } //end class diff --git a/src/Ushahidi/Modules/V5/Repository/Config/ConfigRepository.php b/src/Ushahidi/Modules/V5/Repository/Config/ConfigRepository.php index 0724ce8796..929a2d5b3a 100644 --- a/src/Ushahidi/Modules/V5/Repository/Config/ConfigRepository.php +++ b/src/Ushahidi/Modules/V5/Repository/Config/ConfigRepository.php @@ -13,8 +13,7 @@ interface ConfigRepository * @return Config */ public function findByGroupName(string $group_name); - - public function create(string $group_name, string $key, $value); - public function updateByKey(string $group_name, string $key); + public function createByKey(string $group_name, string $key, $value); + public function updateOrInsertByKey(string $group_name, string $key, $value); public function deleteByKey(string $group_name, string $key); } diff --git a/src/Ushahidi/Modules/V5/Repository/Config/EloquentConfigRepository.php b/src/Ushahidi/Modules/V5/Repository/Config/EloquentConfigRepository.php index 84f85e4be6..74317520e6 100644 --- a/src/Ushahidi/Modules/V5/Repository/Config/EloquentConfigRepository.php +++ b/src/Ushahidi/Modules/V5/Repository/Config/EloquentConfigRepository.php @@ -16,13 +16,25 @@ public function findByGroupName(string $group_name) return Config::select("config_key", "config_value")->where('group_name', $group_name)->get(); } - public function create(string $group_name, string $key, $value) + public function createByKey(string $group_name, string $key, $value) { + $config = Config::create([ + "group_name" => $group_name, + "config_key" => $key, + "config_value" => $value + + ]); } - public function updateByKey(string $group_name, string $key, $value) + public function updateOrInsertByKey(string $group_name, string $key, $value) { + $config = Config::where(["group_name"=>$group_name,"config_key"=>$key])->first(); - $config->config_value = $value; + if ($config) { + $config->config_value = $value; + $config->save(); + } else { + $this->createByKey($group_name, $key, $value); + } } public function deleteByKey(string $group_name, string $key) { diff --git a/src/Ushahidi/Modules/V5/routes/api.php b/src/Ushahidi/Modules/V5/routes/api.php index c6c36f34f2..24e3e10470 100644 --- a/src/Ushahidi/Modules/V5/routes/api.php +++ b/src/Ushahidi/Modules/V5/routes/api.php @@ -27,7 +27,7 @@ function () use ($router) { 'middleware' => ['scope:users', 'auth:api', 'feature:user-settings', 'expiration'] ], function () use ($router) { - $router->get('/', 'SurveyRoleController@index'); + $router->get('/', 'SurveyRoleController@index'); } ); } @@ -50,7 +50,7 @@ function () use ($router) { 'middleware' => ['scope:users', 'auth:api', 'feature:user-settings', 'expiration'] ], function () use ($router) { - $router->put('/', 'SurveyRoleController@replace'); + $router->put('/', 'SurveyRoleController@replace'); } ); } @@ -122,15 +122,15 @@ function () use ($router) { $router->put('/{id}', 'PostController@update'); $router->patch('/{id}', 'PostController@patch'); $router->delete('/{id}', 'PostController@delete'); - + $router->group( [ 'prefix' => '{post_id}/lock', 'middleware' => ['scope:posts', 'auth:api', 'expiration'] ], function () use ($router) { - $router->put('/', 'PostController@updateLock'); - $router->delete('/', 'PostController@deleteLock'); + $router->put('/', 'PostController@updateLock'); + $router->delete('/', 'PostController@deleteLock'); } ); } @@ -157,7 +157,7 @@ function () use ($router) { $router->get('/', 'CountryCodeController@index'); $router->get('/{id}', 'CountryCodeController@show'); }); - + /* Users */ // Restricted access $router->group( @@ -201,11 +201,11 @@ function () use ($router) { 'middleware' => ['scope:users', 'auth:api', 'feature:user-settings', 'expiration'] ], function () use ($router) { - $router->get('/', 'UserSettingController@index'); - $router->get('/{id}', 'UserSettingController@show'); - $router->post('/', 'UserSettingController@store'); - $router->put('/{id}', 'UserSettingController@update'); - $router->delete('/{id}', 'UserSettingController@delete'); + $router->get('/', 'UserSettingController@index'); + $router->get('/{id}', 'UserSettingController@show'); + $router->post('/', 'UserSettingController@store'); + $router->put('/{id}', 'UserSettingController@update'); + $router->delete('/{id}', 'UserSettingController@delete'); } ); } @@ -302,8 +302,8 @@ function () use ($router) { 'middleware' => ['scope:sets', 'expiration'] ], function () use ($router) { - $router->get('/', 'CollectionPostController@index'); - $router->get('/{id}', 'CollectionPostController@show'); + $router->get('/', 'CollectionPostController@index'); + $router->get('/{id}', 'CollectionPostController@show'); } ); } @@ -325,8 +325,8 @@ function () use ($router) { 'middleware' => ['scope: sets', 'auth:api', 'expiration'] ], function () use ($router) { - $router->post('/', 'CollectionPostController@store'); - $router->delete('/{id}', 'CollectionPostController@delete'); + $router->post('/', 'CollectionPostController@store'); + $router->delete('/{id}', 'CollectionPostController@delete'); } ); } @@ -341,7 +341,9 @@ function () use ($router) { function () use ($router) { $router->get('/', 'ConfigController@index'); $router->get('/{group_name}', 'ConfigController@show'); + $router->get('/{group_name}/{key}', 'ConfigController@showKey'); $router->put('/{group_name}', 'ConfigController@update'); + $router->put('/{group_name}/{key}', 'ConfigController@updateKey'); } ); From d400e289dfae9129c47a0afef4f3bf0c6dedaf2a Mon Sep 17 00:00:00 2001 From: Mh-Asmi Date: Wed, 12 Jul 2023 14:58:26 +0400 Subject: [PATCH 53/75] fix config permissions --- .../Config/Commands/UpdateConfigCommand.php | 18 +- .../Handlers/FindConfigByNameQueryHandler.php | 2 +- .../Handlers/ListConfigsQueryHandler.php | 6 +- .../Config/Queries/ListConfigsQuery.php | 12 +- .../Modules/V5/DTO/ConfigSearchFields.php | 24 +++ .../V5/Http/Controllers/ConfigController.php | 13 +- src/Ushahidi/Modules/V5/Models/Config.php | 2 +- .../Modules/V5/Policies/ConfigPolicy.php | 180 ++++++++++++++++++ .../V5/Providers/AuthServiceProvider.php | 1 + .../Config/EloquentConfigRepository.php | 1 - tests/Integration/v5/config.v5.feature | 99 ++++++++++ 11 files changed, 335 insertions(+), 23 deletions(-) create mode 100644 src/Ushahidi/Modules/V5/DTO/ConfigSearchFields.php create mode 100644 src/Ushahidi/Modules/V5/Policies/ConfigPolicy.php create mode 100644 tests/Integration/v5/config.v5.feature diff --git a/src/Ushahidi/Modules/V5/Actions/Config/Commands/UpdateConfigCommand.php b/src/Ushahidi/Modules/V5/Actions/Config/Commands/UpdateConfigCommand.php index a7ffd90fc6..c570fbef05 100644 --- a/src/Ushahidi/Modules/V5/Actions/Config/Commands/UpdateConfigCommand.php +++ b/src/Ushahidi/Modules/V5/Actions/Config/Commands/UpdateConfigCommand.php @@ -46,7 +46,7 @@ public static function fromRequest( // case it is key if ($config_key) { $value = $new_configs; - if (self::is_data_provider($group_name)) { + if (self::isDataProvider($group_name)) { foreach ($current_configs as $old_key => $old_value) { if ($old_key === 'id' || $old_key === "allowed_privileges") { continue; @@ -70,7 +70,7 @@ public static function fromRequest( if ($key === 'id' || $key === "allowed_privileges") { continue; } - if (self::is_data_provider($group_name)) { + if (self::isDataProvider($group_name)) { $providers[$key] = $value['enabled']; $value = $value['params']; } @@ -86,7 +86,7 @@ public static function fromRequest( continue; } - if (self::is_data_provider($group_name)) { + if (self::isDataProvider($group_name)) { $value = $value['params']; } @@ -95,23 +95,17 @@ public static function fromRequest( } } } - if (self::is_data_provider($group_name)) { + if (self::isDataProvider($group_name)) { $update_configs["providers"] = $providers; } return new self($group_name, $update_configs, $insert_configs, $delete_configs); } - protected static function is_data_provider($group_name) + protected static function isDataProvider($group_name) { return $group_name === "data-provider"; } - - protected static function remove_extra_data_provider($provider_value) - { - unset($provider_value['']); - return $provider_value; - } - + public function getGroupName(): String { return $this->group_name; diff --git a/src/Ushahidi/Modules/V5/Actions/Config/Handlers/FindConfigByNameQueryHandler.php b/src/Ushahidi/Modules/V5/Actions/Config/Handlers/FindConfigByNameQueryHandler.php index 1c0cd1d0e9..0833e988b2 100644 --- a/src/Ushahidi/Modules/V5/Actions/Config/Handlers/FindConfigByNameQueryHandler.php +++ b/src/Ushahidi/Modules/V5/Actions/Config/Handlers/FindConfigByNameQueryHandler.php @@ -63,7 +63,7 @@ public function __invoke(Action $action) protected function getDataProvider($raw_data_providers) { $data_providers = []; - $data_providers['id'] = "data-providers"; + $data_providers['id'] = "data-provider"; foreach ($raw_data_providers['providers'] as $provider_name => $provider_status) { $data_providers[$provider_name] = $this->getOneDataProvider($raw_data_providers, $provider_name); } diff --git a/src/Ushahidi/Modules/V5/Actions/Config/Handlers/ListConfigsQueryHandler.php b/src/Ushahidi/Modules/V5/Actions/Config/Handlers/ListConfigsQueryHandler.php index 51cb06e6e0..be72bc0d25 100644 --- a/src/Ushahidi/Modules/V5/Actions/Config/Handlers/ListConfigsQueryHandler.php +++ b/src/Ushahidi/Modules/V5/Actions/Config/Handlers/ListConfigsQueryHandler.php @@ -38,7 +38,11 @@ public function __invoke(Action $action) $this->isSupported($action); $results = []; - foreach (Config::AVIALABLE_CONFIG_GROUPS as $group_name) { + $required_groups = Config::AVIALABLE_CONFIG_GROUPS; + if ($action->getSearchFields()->groups()) { + $required_groups = $action->getSearchFields()->groups(); + } + foreach ($required_groups as $group_name) { $group_configs = $this->queryBus->handle(new FindConfigByNameQuery($group_name)); $results[] = $group_configs; } diff --git a/src/Ushahidi/Modules/V5/Actions/Config/Queries/ListConfigsQuery.php b/src/Ushahidi/Modules/V5/Actions/Config/Queries/ListConfigsQuery.php index cd89a0f59d..67a48b6fd8 100644 --- a/src/Ushahidi/Modules/V5/Actions/Config/Queries/ListConfigsQuery.php +++ b/src/Ushahidi/Modules/V5/Actions/Config/Queries/ListConfigsQuery.php @@ -6,9 +6,19 @@ use Ushahidi\Modules\V5\Models\Post\Post; use Illuminate\Http\Request; use Ushahidi\Modules\V5\DTO\Paging; -use Ushahidi\Modules\V5\DTO\PostSearchFields; +use Ushahidi\Modules\V5\DTO\ConfigSearchFields; class ListConfigsQuery implements Query { + private $search_fields; + public function __construct( + ConfigSearchFields $search_fields + ) { + $this->search_fields = $search_fields; + } + public function getSearchFields() + { + return $this->search_fields; + } } diff --git a/src/Ushahidi/Modules/V5/DTO/ConfigSearchFields.php b/src/Ushahidi/Modules/V5/DTO/ConfigSearchFields.php new file mode 100644 index 0000000000..d92edfd15c --- /dev/null +++ b/src/Ushahidi/Modules/V5/DTO/ConfigSearchFields.php @@ -0,0 +1,24 @@ +groups = ParameterUtilities::getParameterAsArray($request->get('groups')); + } + + public function groups() + { + return $this->groups; + } +} diff --git a/src/Ushahidi/Modules/V5/Http/Controllers/ConfigController.php b/src/Ushahidi/Modules/V5/Http/Controllers/ConfigController.php index 9f33bec406..983d3121b2 100644 --- a/src/Ushahidi/Modules/V5/Http/Controllers/ConfigController.php +++ b/src/Ushahidi/Modules/V5/Http/Controllers/ConfigController.php @@ -11,6 +11,7 @@ use Ushahidi\Modules\V5\Actions\Config\Queries\FindConfigByNameQuery; use Ushahidi\Modules\V5\Actions\Config\Queries\ListConfigsQuery; use Ushahidi\Modules\V5\Actions\Config\Commands\UpdateConfigCommand; +use Ushahidi\Modules\V5\DTO\ConfigSearchFields; class ConfigController extends V5Controller { @@ -23,16 +24,16 @@ class ConfigController extends V5Controller */ public function show(string $group_name) { - //$this->authorizeForCurrentUser('show', $group_configs); $group_configs = $this->queryBus->handle(new FindConfigByNameQuery($group_name)); + $this->authorize('show', new Config(["group_name"=>$group_name])); return new ConfigResource($group_configs); } //end show() public function showKey(string $group_name, string $key) { - //$this->authorizeForCurrentUser('show', $group_configs); $group_configs = $this->queryBus->handle(new FindConfigByNameQuery($group_name, $key)); + $this->authorize('show', new Config(["group_name"=>$group_name])); return new ConfigKeyResource($group_configs); } //end show() @@ -45,15 +46,14 @@ public function showKey(string $group_name, string $key) */ public function index(Request $request) { - //$this->authorizeForCurrentUser('index', Config::class); - - return new ConfigCollection($this->queryBus->handle(new ListConfigsQuery())); + $this->authorize('index', Config::class); + return new ConfigCollection($this->queryBus->handle(new ListConfigsQuery(new ConfigSearchFields($request)))); } //end index() public function update(Request $request, string $group_name) { $current_group_configs = $this->queryBus->handle(new FindConfigByNameQuery($group_name)); - + $this->authorize('update', new Config(["group_name"=>$group_name])); $this->commandBus->handle(UpdateConfigCommand::fromRequest( $group_name, $request, @@ -65,6 +65,7 @@ public function update(Request $request, string $group_name) public function updateKey(Request $request, string $group_name, string $key) { $current_group_configs = $this->queryBus->handle(new FindConfigByNameQuery($group_name)); + $this->authorize('update', new Config(["group_name"=>$group_name])); $this->commandBus->handle(UpdateConfigCommand::fromRequest( $group_name, $request, diff --git a/src/Ushahidi/Modules/V5/Models/Config.php b/src/Ushahidi/Modules/V5/Models/Config.php index d31c6f1757..d7bbc7a3dc 100644 --- a/src/Ushahidi/Modules/V5/Models/Config.php +++ b/src/Ushahidi/Modules/V5/Models/Config.php @@ -64,6 +64,6 @@ public function getConfigValueAttribute($value) return false; } - return json_decode($value, true); + return json_decode($value, true)?json_decode($value, true):$value; } } //end class diff --git a/src/Ushahidi/Modules/V5/Policies/ConfigPolicy.php b/src/Ushahidi/Modules/V5/Policies/ConfigPolicy.php new file mode 100644 index 0000000000..18ed7fcde1 --- /dev/null +++ b/src/Ushahidi/Modules/V5/Policies/ConfigPolicy.php @@ -0,0 +1,180 @@ +isAllowed($empty_config_entity, 'search'); + } + + /** + * + * @param GenericUser $user + * @param Config $config + * @return bool + */ + public function show(User $user, Config $config) + { + $config_entity = new EntityConfig($config->toArray()); + return $this->isAllowed($config_entity, 'read'); + } + + /** + * + * @param GenericUser $user + * @param Config $config + * @return bool + */ + public function delete(User $user, Config $config) + { + $config_entity = new EntityConfig($config->toArray()); + return $this->isAllowed($config_entity, 'delete'); + } + /** + * @param Config $config + * @return bool + */ + public function update(User $user, Config $config) + { + // we convert to a Config entity to be able to continue using the old authorizers and classes. + $config_entity = new EntityConfig($config->toArray()); + return $this->isAllowed($config_entity, 'update'); + } + + + /** + * @param Config $config + * @return bool + */ + public function store(User $user, Config $config) + { + // we convert to a config_entity entity to be able to continue using the old authorizers and classes. + $config_entity = new EntityConfig($config->toArray()); + return $this->isAllowed($config_entity, 'create'); + } + + + /** + * @param $entity + * @param string $privilege + * @return bool + */ + public function isAllowed($entity, $privilege) + { + $authorizer = service('authorizer.config'); + + // These checks are run within the user context. + $user = $authorizer->getUser(); + + // If a config group is read only *no one* can edit it (not even admin) + if (in_array($privilege, ['create', 'update']) && $this->isConfigReadOnly($entity)) { + return false; + } + + // Allow role with the right permissions to do everything else + if ($authorizer->acl->hasPermission($user, Permission::MANAGE_SETTINGS)) { + return true; + } + + // If a user has the 'admin' role, they can do pretty much everything else + if ($this->isUserAdmin($user)) { + return true; + } + + // If a config group is public then *anyone* can view it. + if (in_array($privilege, ['read', 'search']) && $this->isConfigPublic($entity)) { + return true; + } + +// If no other access checks succeed, we default to denying access + return false; + } + + + /** + * Check if a config group is public + * @param EntityBase $entity + * @return boolean + */ + protected function isConfigPublic(Entity $entity) + { + // Config that is unloaded is treated as public. + if (!$entity->getId()) { + return true; + } + + if (in_array($entity->getId(), $this->public_groups)) { + return true; + } + + return false; + } + + /** + * Check if a config group is read only + * @param EntityBase $entity + * @return boolean + */ + protected function isConfigReadOnly(Entity $entity) + { + // Config that is unloaded is treated as writable. + if (!$entity->getId()) { + return false; + } + + if (in_array($entity->getId(), $this->readonly_groups)) { + return true; + } + + return false; + } +} diff --git a/src/Ushahidi/Modules/V5/Providers/AuthServiceProvider.php b/src/Ushahidi/Modules/V5/Providers/AuthServiceProvider.php index 9fc78d7274..fb1d74307a 100644 --- a/src/Ushahidi/Modules/V5/Providers/AuthServiceProvider.php +++ b/src/Ushahidi/Modules/V5/Providers/AuthServiceProvider.php @@ -26,6 +26,7 @@ class AuthServiceProvider extends ServiceProvider Models\Tos::class => Policies\TosPolicy::class, Models\Set::class => Policies\CollectionPolicy::class, Models\SetPost::class => Policies\CollectionPostPolicy::class, + Models\Config::class => Policies\ConfigPolicy::class, Models\Contact::class => Policies\ContactPolicy::class, Models\Message::class => Policies\MessagePolicy::class, Models\Notification::class => Policies\NotificationPolicy::class, diff --git a/src/Ushahidi/Modules/V5/Repository/Config/EloquentConfigRepository.php b/src/Ushahidi/Modules/V5/Repository/Config/EloquentConfigRepository.php index 74317520e6..98b1b8c695 100644 --- a/src/Ushahidi/Modules/V5/Repository/Config/EloquentConfigRepository.php +++ b/src/Ushahidi/Modules/V5/Repository/Config/EloquentConfigRepository.php @@ -27,7 +27,6 @@ public function createByKey(string $group_name, string $key, $value) } public function updateOrInsertByKey(string $group_name, string $key, $value) { - $config = Config::where(["group_name"=>$group_name,"config_key"=>$key])->first(); if ($config) { $config->config_value = $value; diff --git a/tests/Integration/v5/config.v5.feature b/tests/Integration/v5/config.v5.feature new file mode 100644 index 0000000000..c676c8a938 --- /dev/null +++ b/tests/Integration/v5/config.v5.feature @@ -0,0 +1,99 @@ +@oauth2Skip +Feature: Testing the Config API + + Scenario: POSTing a config value should fail + Given that I want to make a new "Config" + And that the api_url is "api/v5" + And that the request "data" is: + """ + { + "id":"test", + "test":"Test value" + } + """ + When I request "/config" + Then the guzzle status code should be 405 + + Scenario: Updating a Config + Given that I want to update a "Config" + And that the oauth token is "testadminuser" + And that the api_url is "api/v5" + And that the request "data" is: + """ + { + "testkey":"i am a teapot?" + } + """ + When I request "/config/test" + Then the response is JSON + And the "result.id" property equals "test" + And the "result.testkey" property equals "i am a teapot?" + Then the guzzle status code should be 200 + + Scenario: Adding to Config with PUT + Given that I want to update a "Config" + And that the api_url is "api/v5" + And that the request "data" is: + """ + { + "nothing": "new test value", + "json_object_test": { + "boolean": true, + "null": null, + "array": ["a","b","c"], + "number": 1234 + } + } + """ + When I request "/config/test" + Then the response is JSON + And the "result.id" property equals "test" + And the "result.nothing" property equals "new test value" + And the "result.json_object_test.number" property equals "1234" + And the "result.json_object_test.array" property contains "a" + Then the guzzle status code should be 200 + + @resetFixture + Scenario: Listing All Configs + Given that I want to get all "Configs" + And that the api_url is "api/v5" + When I request "/config" + Then the response is JSON + And the response has a "count" property + And the type of the "count" property is "numeric" + Then the guzzle status code should be 200 + + @resetFixture + + Scenario: Search for Configs by Group + Given that I want to get all "Configs" + And that the api_url is "api/v5" + And that the request "query string" is "groups[]=test&groups[]=site" + When I request "/config" + Then the response is JSON + And the "count" property equals "2" + And the "results.0.id" property equals "test" + And the "results.1.id" property equals "site" + Then the guzzle status code should be 200 + + Scenario: Finding a Config + Given that I want to find a "Config" + And that the api_url is "api/v5" + When I request "/config/test" + Then the response is JSON + And the "result.id" property equals "test" + Then the guzzle status code should be 200 + + Scenario: Finding a non-existent Config + Given that I want to find a "Config" + And that the api_url is "api/v5" + When I request "/config/nonexistingconfigshouldfail" + Then the response is JSON + And the response has a "errors" property + Then the guzzle status code should be 404 + + Scenario: Deleting a Config + Given that I want to delete a "Config" + And that the api_url is "api/v5" + When I request "/config/test" + Then the guzzle status code should be 405 From c0e293070cb58e305f36345b158c87648b8b634e Mon Sep 17 00:00:00 2001 From: Mh-Asmi Date: Wed, 12 Jul 2023 16:12:10 +0400 Subject: [PATCH 54/75] fix parent parameter in list messages API --- src/Ushahidi/Modules/V5/DTO/MessageSearchFields.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Ushahidi/Modules/V5/DTO/MessageSearchFields.php b/src/Ushahidi/Modules/V5/DTO/MessageSearchFields.php index 54538a08a0..878730bb4c 100644 --- a/src/Ushahidi/Modules/V5/DTO/MessageSearchFields.php +++ b/src/Ushahidi/Modules/V5/DTO/MessageSearchFields.php @@ -25,7 +25,7 @@ public function __construct(Request $request) $this->box = $request->query('box'); $this->status = $request->query('status'); $this->contact = $request->query('contact'); - $this->parent = $request->query('parent'); + $this->parent = ParameterUtilities::getParameterAsArray($request->get('parent')); $this->post = $request->query('post'); $this->type = $request->query('type'); $this->data_source = $request->query('data_source'); From 0ce9493881b4e1d1eaa2a2fa34840c2fc288eb98 Mon Sep 17 00:00:00 2001 From: Mh-Asmi Date: Thu, 13 Jul 2023 15:07:50 +0400 Subject: [PATCH 55/75] config by key --- .../Actions/Config/Commands/UpdateConfigCommand.php | 12 ++++++------ .../Handlers/FindConfigByNameQueryHandler.php | 13 +++++++++---- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/Ushahidi/Modules/V5/Actions/Config/Commands/UpdateConfigCommand.php b/src/Ushahidi/Modules/V5/Actions/Config/Commands/UpdateConfigCommand.php index c570fbef05..c6789b83de 100644 --- a/src/Ushahidi/Modules/V5/Actions/Config/Commands/UpdateConfigCommand.php +++ b/src/Ushahidi/Modules/V5/Actions/Config/Commands/UpdateConfigCommand.php @@ -55,8 +55,8 @@ public static function fromRequest( } $providers[$config_key] = $value["enabled"]; $value = $value['params']; - } elseif (count($new_configs) === 1 && array_keys($new_configs) === [0]) { - $value = $new_configs[0]; + } else { + $value = $new_configs["key_value"]; } if (key_exists($config_key, $current_configs)) { $update_configs[$config_key] = $value; @@ -64,8 +64,8 @@ public static function fromRequest( $insert_configs[$config_key] = $value; } } else { - $providers = [] ;//= $current_configs['providers'] - $authenticable = [] ; + $providers = []; //= $current_configs['providers'] + $authenticable = []; foreach ($new_configs as $key => $value) { if ($key === 'id' || $key === "allowed_privileges") { continue; @@ -74,7 +74,7 @@ public static function fromRequest( $providers[$key] = $value['enabled']; $value = $value['params']; } - + if (key_exists($key, $current_configs)) { $update_configs[$key] = $value; } else { @@ -105,7 +105,7 @@ protected static function isDataProvider($group_name) { return $group_name === "data-provider"; } - + public function getGroupName(): String { return $this->group_name; diff --git a/src/Ushahidi/Modules/V5/Actions/Config/Handlers/FindConfigByNameQueryHandler.php b/src/Ushahidi/Modules/V5/Actions/Config/Handlers/FindConfigByNameQueryHandler.php index 0833e988b2..ac435a2901 100644 --- a/src/Ushahidi/Modules/V5/Actions/Config/Handlers/FindConfigByNameQueryHandler.php +++ b/src/Ushahidi/Modules/V5/Actions/Config/Handlers/FindConfigByNameQueryHandler.php @@ -45,7 +45,7 @@ public function __invoke(Action $action) $defaults = $this->getDefaults($action->getGroupName()); $group_configs = array_replace_recursive($defaults, $group_configs); - + // handle data provider if ($action->getGroupName() === "data-provider") { if ($action->getKey()) { @@ -55,9 +55,14 @@ public function __invoke(Action $action) return collect($this->getDataProvider($group_configs)); } if ($action->getKey()) { - return collect($group_configs[$action->getKey()]); + $key_config = [ + "group_name" => $action->getGroupName(), + "key_name" => $action->getKey(), + "key_value" => $group_configs[$action->getKey()] + ]; + return collect($key_config); } - return collect($group_configs); + return collect($group_configs); } protected function getDataProvider($raw_data_providers) @@ -80,7 +85,7 @@ protected function getOneDataProvider($raw_data_providers, $provider_name) $data_provider["params"] = isset($raw_data_providers[$provider_name]) ? $raw_data_providers[$provider_name] : []; - return $data_provider; + return $data_provider; } protected function verifyGroup($group) { From d7282a2bdba5d3261442bab043105c20ae6bef03 Mon Sep 17 00:00:00 2001 From: miraxes Date: Wed, 12 Jul 2023 16:34:32 +0300 Subject: [PATCH 56/75] styles for forgot password email --- resources/views/emails/forgot-password.php | 373 +++++++++------------ 1 file changed, 164 insertions(+), 209 deletions(-) diff --git a/resources/views/emails/forgot-password.php b/resources/views/emails/forgot-password.php index 0958b314f1..a82239e99e 100644 --- a/resources/views/emails/forgot-password.php +++ b/resources/views/emails/forgot-password.php @@ -1,12 +1,12 @@ - + <?php echo $site_name; ?> - + + - - - - - - - -
- -
- Someone requested a password reset for -
-
- - - - - -
-
-
- - - - - - -
- - - - -
- - - - - - - - - - - - -
- Manage your account
- - - - - - - - -
Need to reset your password?
You requested a password reset for . To reset your password, submit this token in order to verify the request: or you can click the button below.
If you didn't request a password reset, you can ignore this email.
-
- - - - - - -
- - - - -
Reset your password →
-
- -
-
-
- - - - - - -
- - - - - -
- Ushahidi
www.ushahidi.com   |   @ushahidi -
-
- - + + + + + +
+ + + + +
+ + + + +
+ + + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + Ushahidi + +
+
+
+
+ + + + +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ Reset your password +
+ Hi {{ username }}. +
+ We received a request to reset the password for your account. To reset the password, click on the button below. +
+ + Recover Password + +
+ Or click the link and paste the token into the token field on the recovery page. Note that this reset token will expire after {{ duration }} minutes +
+ + + + +
+ +
+
+ If you didn't initiate this request, please ignore and contact us on support@ushahidi.com +
+ Best regards,
Cecilia +
+
+ + + + + + + + + + +
+ + Ushahidi + +
+ Ushahidi empowers people through citizen-generated data to develop solutions that strengthen their communities. +
+ No longer interested? Unsubscribe or manage your subscriptions +
+
+
+
+
+
+
+ From de8895a10e1e83c4c064bd1a3abc3afdeabc6c3e Mon Sep 17 00:00:00 2001 From: Wisdom Ebong Date: Mon, 17 Jul 2023 07:57:37 +0100 Subject: [PATCH 57/75] simplify reset code implemented --- app/Tools/Mailer.php | 8 ++++--- resources/views/emails/forgot-password.php | 22 ++++++++++++------- .../Core/Usecase/User/GetResetToken.php | 9 +++++--- .../Core/Usecase/User/ResetUserPassword.php | 3 +++ .../Modules/V3/Repository/UserRepository.php | 7 +++--- .../Modules/V3/Validator/User/Reset.php | 2 ++ src/Ushahidi/Modules/V3/helpers.php | 19 ++++++++++++++++ .../V3/Repository/UserRepositoryTest.php | 2 +- 8 files changed, 54 insertions(+), 18 deletions(-) diff --git a/app/Tools/Mailer.php b/app/Tools/Mailer.php index 5cf5479566..56e7f19fc3 100644 --- a/app/Tools/Mailer.php +++ b/app/Tools/Mailer.php @@ -43,12 +43,14 @@ protected function sendResetpassword($to, $params) $site_name = $this->getSite()->getName(); $site_email = $this->getSite()->getEmail(); $site_client_url = $this->getSite()->getClientUri() ?? env('DEFAULT_CLIENT_URL'); - $token = $params['token']; $data = [ - 'site_name' => $site_name, - 'token' => $token, 'client_url' => $site_client_url, + 'site_name' => $site_name, + 'user_name' => $params['user_name'], + 'reset_string' => $params['string'], + 'reset_code' => $params['code'], + 'duration' => $params['duration'] ]; $subject = $site_name.': Password reset'; diff --git a/resources/views/emails/forgot-password.php b/resources/views/emails/forgot-password.php index a82239e99e..91357b4369 100644 --- a/resources/views/emails/forgot-password.php +++ b/resources/views/emails/forgot-password.php @@ -98,24 +98,29 @@ - Hi {{ username }}. + Hi . - We received a request to reset the password for your account. To reset the password, click on the button below. + We received a request to reset the password for your account. Click the button below to reset your password. + + - + Recover Password + + - Or click the link and paste the token into the token field on the recovery page. Note that this reset token will expire after {{ duration }} minutes + Or click the link or paste + Paste the code below into the token field on the recovery page. Note that the reset token will expire after minutes @@ -123,12 +128,13 @@
- +
+ If you didn't initiate this request, please ignore and contact us on support@ushahidi.com @@ -136,7 +142,7 @@ - Best regards,
Cecilia + Best regards,
The Ushahidi Team @@ -157,11 +163,11 @@ Ushahidi empowers people through citizen-generated data to develop solutions that strengthen their communities. - + diff --git a/src/Ushahidi/Core/Usecase/User/GetResetToken.php b/src/Ushahidi/Core/Usecase/User/GetResetToken.php index 4ff9cc9a0e..0397904828 100644 --- a/src/Ushahidi/Core/Usecase/User/GetResetToken.php +++ b/src/Ushahidi/Core/Usecase/User/GetResetToken.php @@ -81,15 +81,18 @@ public function interact() $entity = $this->getEntity(); if ($entity->getId()) { - // Generate a reset token - $token = $this->repo->getResetToken($entity); + // Get the reset code on the user + $code = $this->repo->getResetToken($entity); // Email the reset token $this->mailer->send( $entity->email, 'resetpassword', [ - 'token' => $token + 'user_name' => $entity->realname, + 'code' => $code, + 'string' => base64_encode($code), + 'duration' => 30, ] ); } diff --git a/src/Ushahidi/Core/Usecase/User/ResetUserPassword.php b/src/Ushahidi/Core/Usecase/User/ResetUserPassword.php index e02962bab6..29abccab24 100644 --- a/src/Ushahidi/Core/Usecase/User/ResetUserPassword.php +++ b/src/Ushahidi/Core/Usecase/User/ResetUserPassword.php @@ -11,6 +11,7 @@ namespace Ushahidi\Core\Usecase\User; +use Illuminate\Support\Facades\Hash; use Ushahidi\Contracts\Usecase; use Ushahidi\Core\Usecase\Concerns\ModifyRecords; use Ushahidi\Core\Usecase\Concerns\Formatter as FormatterTrait; @@ -63,6 +64,8 @@ public function interact() $this->verifyValid($entity_array); + $token = is_base64($token) ? base64_decode($token, true) : $token; + $this->repo->setPassword($token, $password); // And delete the token diff --git a/src/Ushahidi/Modules/V3/Repository/UserRepository.php b/src/Ushahidi/Modules/V3/Repository/UserRepository.php index 536b5bfc39..5973600a12 100644 --- a/src/Ushahidi/Modules/V3/Repository/UserRepository.php +++ b/src/Ushahidi/Modules/V3/Repository/UserRepository.php @@ -22,7 +22,8 @@ use Ushahidi\Core\Entity\Contact; use Illuminate\Support\Collection; use Ushahidi\Core\Tool\SearchData; -use Illuminate\Support\Facades\Hash; +use Illuminate\Support\Facades\Crypt; +use Illuminate\Contracts\Encryption\DecryptException; use Ushahidi\Contracts\Repository\Usecase\UserRegisterRepository; use Ushahidi\Contracts\Repository\Usecase\UserResetPasswordRepository; use Ushahidi\Contracts\Repository\Entity\UserRepository as UserRepositoryContract; @@ -237,7 +238,7 @@ public function register(Entity $entity) // ResetPasswordRepository public function getResetToken(Entity $entity) { - $token = Hash::make(Str::random(40)); + $token = sprintf('%06X', mt_rand(0, 16777215)); $input = [ 'reset_token' => $token, @@ -246,7 +247,7 @@ public function getResetToken(Entity $entity) ]; // Save the token - $query = DB::insert('user_reset_tokens') + DB::insert('user_reset_tokens') ->columns(array_keys($input)) ->values(array_values($input)) ->execute($this->db()); diff --git a/src/Ushahidi/Modules/V3/Validator/User/Reset.php b/src/Ushahidi/Modules/V3/Validator/User/Reset.php index f3d0bbde26..48dda42e85 100644 --- a/src/Ushahidi/Modules/V3/Validator/User/Reset.php +++ b/src/Ushahidi/Modules/V3/Validator/User/Reset.php @@ -40,6 +40,8 @@ protected function getRules() public function checkResetToken(\Kohana\Validation\Validation $validation, $token) { + $token = is_base64($token) ? base64_decode($token, true) : $token; + if (!$this->repo->isValidResetToken($token)) { $validation->error('token', 'invalidResetToken'); } diff --git a/src/Ushahidi/Modules/V3/helpers.php b/src/Ushahidi/Modules/V3/helpers.php index f71d76e3ce..c27c82c3a6 100644 --- a/src/Ushahidi/Modules/V3/helpers.php +++ b/src/Ushahidi/Modules/V3/helpers.php @@ -85,3 +85,22 @@ function camel_case(string $string) return \Illuminate\Support\Str::camel($string); } } + +if (!function_exists('is_base64')) { + /** + * Convert a string to snake case. + */ + function is_base64($s){ + // Check if there are valid base64 characters + if (!preg_match('/^[a-zA-Z0-9\/\r\n+]*={0,2}$/', $s)) return false; + + // Decode the string in strict mode and check the results + $decoded = base64_decode($s, true); + if(false === $decoded) return false; + + // Encode the string again + if(base64_encode($decoded) != $s) return false; + + return true; + } +} diff --git a/tests/Unit/Modules/V3/Repository/UserRepositoryTest.php b/tests/Unit/Modules/V3/Repository/UserRepositoryTest.php index e3f76679a3..8ae2f2ba09 100644 --- a/tests/Unit/Modules/V3/Repository/UserRepositoryTest.php +++ b/tests/Unit/Modules/V3/Repository/UserRepositoryTest.php @@ -49,7 +49,7 @@ public function testGetResetToken() [] ); - $token = $repo->getResetToken($user); + $token = $repo->getResetToken($user, '1B3D6'); $this->assertIsString($token); } From 9c2adc8413cf9b37eac800e23469ca72a6587cb3 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong Date: Mon, 17 Jul 2023 08:04:46 +0100 Subject: [PATCH 58/75] style: fix lint issues --- src/Ushahidi/Modules/V3/helpers.php | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/Ushahidi/Modules/V3/helpers.php b/src/Ushahidi/Modules/V3/helpers.php index c27c82c3a6..93310dc16b 100644 --- a/src/Ushahidi/Modules/V3/helpers.php +++ b/src/Ushahidi/Modules/V3/helpers.php @@ -90,16 +90,23 @@ function camel_case(string $string) /** * Convert a string to snake case. */ - function is_base64($s){ + function is_base64($s) + { // Check if there are valid base64 characters - if (!preg_match('/^[a-zA-Z0-9\/\r\n+]*={0,2}$/', $s)) return false; + if (!preg_match('/^[a-zA-Z0-9\/\r\n+]*={0,2}$/', $s)) { + return false; + } // Decode the string in strict mode and check the results $decoded = base64_decode($s, true); - if(false === $decoded) return false; + if (false === $decoded) { + return false; + } // Encode the string again - if(base64_encode($decoded) != $s) return false; + if (base64_encode($decoded) != $s) { + return false; + } return true; } From a376eb00a8e56b551599dc836790e4a120b869b2 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong Date: Mon, 17 Jul 2023 13:25:01 +0100 Subject: [PATCH 59/75] test: fix failing test --- tests/Unit/Modules/V3/Repository/UserRepositoryTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Unit/Modules/V3/Repository/UserRepositoryTest.php b/tests/Unit/Modules/V3/Repository/UserRepositoryTest.php index 8ae2f2ba09..e3f76679a3 100644 --- a/tests/Unit/Modules/V3/Repository/UserRepositoryTest.php +++ b/tests/Unit/Modules/V3/Repository/UserRepositoryTest.php @@ -49,7 +49,7 @@ public function testGetResetToken() [] ); - $token = $repo->getResetToken($user, '1B3D6'); + $token = $repo->getResetToken($user); $this->assertIsString($token); } From 1b3a618cfdfd640cfe0bd4ab6db4d6fd094f14a9 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong Date: Mon, 17 Jul 2023 14:43:57 +0100 Subject: [PATCH 60/75] test: fix mailer test --- tests/Unit/App/Tools/MailerTest.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/Unit/App/Tools/MailerTest.php b/tests/Unit/App/Tools/MailerTest.php index a36799d40f..1b7588e08e 100644 --- a/tests/Unit/App/Tools/MailerTest.php +++ b/tests/Unit/App/Tools/MailerTest.php @@ -47,8 +47,12 @@ public function testSend() $illuminateMailer ); + $code = 'abc123'; $mailer->send('noone@ushahidi.com', 'Resetpassword', [ - 'token' => 'abc123', + 'code' => $code, + 'user_name' => 'No One', + 'string' => base64_encode($code), + 'duration' => 30, ]); $illuminateMailer->shouldHaveReceived('send') From fc26fb314536d1a1c202b33a3e66cd64a1baff75 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong Date: Mon, 17 Jul 2023 14:47:56 +0100 Subject: [PATCH 61/75] test: fix mailer test --- tests/Unit/App/Tools/MailerTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Unit/App/Tools/MailerTest.php b/tests/Unit/App/Tools/MailerTest.php index 1b7588e08e..c47c6d067f 100644 --- a/tests/Unit/App/Tools/MailerTest.php +++ b/tests/Unit/App/Tools/MailerTest.php @@ -61,7 +61,7 @@ public function testSend() 'emails/forgot-password', M::on(function ($data) { $this->assertArrayHasKey('site_name', $data); - $this->assertArrayHasKey('token', $data); + $this->assertArrayHasKey('code', $data); $this->assertArrayHasKey('client_url', $data); return true; From 71670b2ce25e53c21b488d68fc33f2dacb2b6c61 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong Date: Mon, 17 Jul 2023 15:36:06 +0100 Subject: [PATCH 62/75] chore: made some modifications and fixed mailer tests --- {app/Tools => src/Ushahidi/Core/Tool}/Mailer.php | 6 +++--- src/Ushahidi/Modules/V3/ContainerConfig/LaravelConfig.php | 2 +- tests/Unit/{App/Tools => Core/Tool}/MailerTest.php | 7 +++---- 3 files changed, 7 insertions(+), 8 deletions(-) rename {app/Tools => src/Ushahidi/Core/Tool}/Mailer.php (98%) rename tests/Unit/{App/Tools => Core/Tool}/MailerTest.php (94%) diff --git a/app/Tools/Mailer.php b/src/Ushahidi/Core/Tool/Mailer.php similarity index 98% rename from app/Tools/Mailer.php rename to src/Ushahidi/Core/Tool/Mailer.php index 56e7f19fc3..56d58dfbc7 100644 --- a/app/Tools/Mailer.php +++ b/src/Ushahidi/Core/Tool/Mailer.php @@ -8,12 +8,12 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace App\Tools; +namespace Ushahidi\Core\Tool; use Illuminate\Support\Str; -use Ushahidi\Core\Concerns\UsesSiteInfo; -use Ushahidi\Contracts\Mailer as MailerContract; use Illuminate\Contracts\Mail\Mailer as LaravelMailer; +use Ushahidi\Contracts\Mailer as MailerContract; +use Ushahidi\Core\Concerns\UsesSiteInfo; class Mailer implements MailerContract { diff --git a/src/Ushahidi/Modules/V3/ContainerConfig/LaravelConfig.php b/src/Ushahidi/Modules/V3/ContainerConfig/LaravelConfig.php index d3fdb96b3e..69ef95f349 100644 --- a/src/Ushahidi/Modules/V3/ContainerConfig/LaravelConfig.php +++ b/src/Ushahidi/Modules/V3/ContainerConfig/LaravelConfig.php @@ -2,10 +2,10 @@ namespace Ushahidi\Modules\V3\ContainerConfig; -use App\Tools\Mailer; use Aura\Di\Container; use Aura\Di\ContainerConfig; use Ushahidi\Authzn\Session; +use Ushahidi\Core\Tool\Mailer; use Illuminate\Support\Facades\Storage; class LaravelConfig extends ContainerConfig diff --git a/tests/Unit/App/Tools/MailerTest.php b/tests/Unit/Core/Tool/MailerTest.php similarity index 94% rename from tests/Unit/App/Tools/MailerTest.php rename to tests/Unit/Core/Tool/MailerTest.php index c47c6d067f..70a5b80950 100644 --- a/tests/Unit/App/Tools/MailerTest.php +++ b/tests/Unit/Core/Tool/MailerTest.php @@ -8,12 +8,11 @@ * @license https://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License Version 3 (AGPL3) */ -namespace Ushahidi\Tests\Unit\App\Tools; +namespace Ushahidi\Tests\Unit\Core\Tool; use Mockery as M; -use App\Tools\Mailer; -use Ushahidi\Multisite\Site; use Ushahidi\Tests\TestCase; +use Ushahidi\Core\Entity\Site; /** * @backupGlobals disabled @@ -61,7 +60,7 @@ public function testSend() 'emails/forgot-password', M::on(function ($data) { $this->assertArrayHasKey('site_name', $data); - $this->assertArrayHasKey('code', $data); + $this->assertArrayHasKey('reset_code', $data); $this->assertArrayHasKey('client_url', $data); return true; From 7c8d703783d6621ce3f671f1d3f23e6fa42a8510 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong Date: Mon, 17 Jul 2023 17:57:36 +0100 Subject: [PATCH 63/75] test: fix mailer test --- tests/Unit/Core/Tool/MailerTest.php | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/Unit/Core/Tool/MailerTest.php b/tests/Unit/Core/Tool/MailerTest.php index 70a5b80950..dc0f493a03 100644 --- a/tests/Unit/Core/Tool/MailerTest.php +++ b/tests/Unit/Core/Tool/MailerTest.php @@ -13,6 +13,7 @@ use Mockery as M; use Ushahidi\Tests\TestCase; use Ushahidi\Core\Entity\Site; +use Ushahidi\Core\Tool\Mailer; /** * @backupGlobals disabled From a11efbba203117fd1ba6c039b4332d344fa8e122 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong Date: Mon, 17 Jul 2023 18:10:40 +0100 Subject: [PATCH 64/75] test: fix mailer test --- tests/Unit/Core/Tool/MailerTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Unit/Core/Tool/MailerTest.php b/tests/Unit/Core/Tool/MailerTest.php index dc0f493a03..6be7271cf5 100644 --- a/tests/Unit/Core/Tool/MailerTest.php +++ b/tests/Unit/Core/Tool/MailerTest.php @@ -39,7 +39,7 @@ public function testSend() 'password' => config('database.connections.mysql.password'), ]); $site->shouldReceive('getId')->andReturn(1); - $this->app->make('multisite')->setSite($site); + $this->app->make('site')->setSite($site); $illuminateMailer = M::spy(app('mailer')); From 0d954cc0dd2bd11479691e01a8c5792d19bc7bb4 Mon Sep 17 00:00:00 2001 From: Wisdom Ebong Date: Tue, 18 Jul 2023 13:20:06 +0100 Subject: [PATCH 65/75] test: fix mailer test --- tests/Unit/Core/Tool/MailerTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Unit/Core/Tool/MailerTest.php b/tests/Unit/Core/Tool/MailerTest.php index 6be7271cf5..1ecb134b62 100644 --- a/tests/Unit/Core/Tool/MailerTest.php +++ b/tests/Unit/Core/Tool/MailerTest.php @@ -39,7 +39,7 @@ public function testSend() 'password' => config('database.connections.mysql.password'), ]); $site->shouldReceive('getId')->andReturn(1); - $this->app->make('site')->setSite($site); + $this->app->make('site')->setDefault($site); $illuminateMailer = M::spy(app('mailer')); From 2b603754220f50507118e63a21b09b36f0a00625 Mon Sep 17 00:00:00 2001 From: miraxes Date: Wed, 12 Jul 2023 16:34:32 +0300 Subject: [PATCH 66/75] styles for forgot password email --- resources/views/emails/forgot-password.php | 306 +++++++++++++++------ 1 file changed, 218 insertions(+), 88 deletions(-) diff --git a/resources/views/emails/forgot-password.php b/resources/views/emails/forgot-password.php index 91357b4369..c1ba3baa9d 100644 --- a/resources/views/emails/forgot-password.php +++ b/resources/views/emails/forgot-password.php @@ -1,75 +1,158 @@ - + - -<?php echo $site_name; ?> - - - - - - - + + + <?php echo $site_name; ?> + + + + + + + + + - + +
+ + +
- +
+ +
- +
+ + + + +
- +
+ + + + + +
- -
- +
@@ -84,83 +167,130 @@ - -
- Ushahidi + Ushahidi
- +
- - -
+ - -
- +
- - - - - - - + + + + - - - - -
+ Reset your password
- Hi . + + Hi + .
- We received a request to reset the password for your account. Click the button below to reset your password. + + We received a request to reset + the password for your account. + + Click the button below to reset + your password. +
- - Recover Password - -
+ + Recover Password + +
- Or click the link or paste - Paste the code below into the token field on the recovery page. Note that the reset token will expire after minutes + + Or + click the link or paste + Paste + the code below + into the token field on the + recovery page. Note that the + reset token will expire after + minutes
- + - - -
+ -
- + +
- If you didn't initiate this request, please ignore and contact us on support@ushahidi.com + + If you didn't initiate this + request, please ignore and + contact us on support@ushahidi.com
- Best regards,
The Ushahidi Team +
+ Best regards,
The Ushahidi + Team
- + - -
+ - - -
+ - Ushahidi + Ushahidi
- Ushahidi empowers people through citizen-generated data to develop solutions that strengthen their communities. + + Ushahidi empowers people through + citizen-generated data to + develop solutions that + strengthen their communities.
-
-
-
-
-
-
- +
+ If you didn't initiate this request, please ignore and contact us on support@ushahidi.com +
+ Best regards,
The Ushahidi Team +
+
+ + + + + + + + +
+ + Ushahidi + +
+ Ushahidi empowers people through citizen-generated data to develop solutions that strengthen their communities. +
+
+
+
+
+ + + + + + + From ea54eca7ae601aeed42d0fc3032a793507f535cc Mon Sep 17 00:00:00 2001 From: Wisdom Ebong <30173059+webong@users.noreply.github.com> Date: Tue, 25 Jul 2023 11:38:58 +0100 Subject: [PATCH 75/75] fix: issues with export job and config in v5 module --- .../Commands/CreateExportJobCommand.php | 5 +- .../Http/Resources/Config/ConfigResource.php | 4 +- .../Resources/Export/ExportJobResource.php | 7 +- .../Modules/V5/Policies/ConfigPolicy.php | 66 +++++-------------- .../Modules/V5/Policies/ExportJobPolicy.php | 56 ++++------------ .../Repository/Export/ExportJobRepository.php | 5 +- 6 files changed, 42 insertions(+), 101 deletions(-) diff --git a/src/Ushahidi/Modules/V5/Actions/Export/Commands/CreateExportJobCommand.php b/src/Ushahidi/Modules/V5/Actions/Export/Commands/CreateExportJobCommand.php index 3b65596e23..3e25de11b2 100644 --- a/src/Ushahidi/Modules/V5/Actions/Export/Commands/CreateExportJobCommand.php +++ b/src/Ushahidi/Modules/V5/Actions/Export/Commands/CreateExportJobCommand.php @@ -7,6 +7,7 @@ use Ushahidi\Modules\V5\Requests\ExportJobRequest; use Illuminate\Support\Facades\Auth; use Ushahidi\Core\Entity\ExportJob as ExportJobEntity; +use Ushahidi\Core\Ohanzee\Entities\ExportJob as OhanzeeExportJob; use Ushahidi\Modules\V5\Models\Stage; class CreateExportJobCommand implements Command @@ -17,7 +18,7 @@ class CreateExportJobCommand implements Command private $export_job_entity; - + public function __construct(ExportJobEntity $export_job_entity) { @@ -47,7 +48,7 @@ public static function fromRequest(ExportJobRequest $request): self $input['created'] = time(); $input['updated'] = time(); - return new self(new ExportJobEntity($input)); + return new self(new OhanzeeExportJob($input)); } /** diff --git a/src/Ushahidi/Modules/V5/Http/Resources/Config/ConfigResource.php b/src/Ushahidi/Modules/V5/Http/Resources/Config/ConfigResource.php index 6fa98a8e9f..b2b6bc29c9 100644 --- a/src/Ushahidi/Modules/V5/Http/Resources/Config/ConfigResource.php +++ b/src/Ushahidi/Modules/V5/Http/Resources/Config/ConfigResource.php @@ -5,7 +5,7 @@ use Ushahidi\Modules\V5\Http\Resources\RequestCachedResource; use Ushahidi\Modules\V5\Http\Resources\Permissions\PermissionsCollection; use Illuminate\Support\Collection; -use Ushahidi\Core\Entity\Config as ConfigEntity; +use Ushahidi\Core\Ohanzee\Entities\Config as OhanzeeConfig; use App\Bus\Query\QueryBus; @@ -23,7 +23,7 @@ private function getResourcePrivileges() // Note that we use attributesToArray instead of toArray because the first // would have the effect of causing unnecessary requests to the database // (relations are not needed in this case by the authorizer) - $entity = new ConfigEntity($this->resource->toArray()); + $entity = new OhanzeeConfig($this->resource->toArray()); // if there's no user the guards will kick them off already, but if there // is one we need to check the authorizer to ensure we don't let // users without admin perms create forms etc diff --git a/src/Ushahidi/Modules/V5/Http/Resources/Export/ExportJobResource.php b/src/Ushahidi/Modules/V5/Http/Resources/Export/ExportJobResource.php index 3644b2a01f..86928bc650 100644 --- a/src/Ushahidi/Modules/V5/Http/Resources/Export/ExportJobResource.php +++ b/src/Ushahidi/Modules/V5/Http/Resources/Export/ExportJobResource.php @@ -2,10 +2,7 @@ namespace Ushahidi\Modules\V5\Http\Resources\Export; use Illuminate\Http\Resources\Json\JsonResource as Resource; -use Ushahidi\Core\Entity\ExportJob as ExportJobEntity; - - -use App\Bus\Query\QueryBus; +use Ushahidi\Core\Ohanzee\Entities\ExportJob as OhanzeeExportJob; class ExportJobResource extends Resource { @@ -20,7 +17,7 @@ private function getResourcePrivileges() // Note that we use attributesToArray instead of toArray because the first // would have the effect of causing unnecessary requests to the database // (relations are not needed in this case by the authorizer) - $entity = new ExportJobEntity($this->resource->toArray()); + $entity = new OhanzeeExportJob($this->resource->toArray()); // if there's no user the guards will kick them off already, but if there // is one we need to check the authorizer to ensure we don't let // users without admin perms create forms etc diff --git a/src/Ushahidi/Modules/V5/Policies/ConfigPolicy.php b/src/Ushahidi/Modules/V5/Policies/ConfigPolicy.php index 18ed7fcde1..6e81cdb221 100644 --- a/src/Ushahidi/Modules/V5/Policies/ConfigPolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/ConfigPolicy.php @@ -2,14 +2,14 @@ namespace Ushahidi\Modules\V5\Policies; -use Ushahidi\Authzn\GenericUser as User; -use Ushahidi\Core\Entity\Config as EntityConfig; use Ushahidi\Contracts\Entity; -use Ushahidi\Modules\V5\Models\Config; -use Ushahidi\Contracts\Permission; +use Ushahidi\Core\Entity\Permission; +use Ushahidi\Core\Concerns\PrivAccess; +use Ushahidi\Modules\V5\Models\Config as EloquentConfig; use Ushahidi\Core\Concerns\AdminAccess; use Ushahidi\Core\Concerns\UserContext; -use Ushahidi\Core\Concerns\PrivAccess; +use Ushahidi\Authzn\GenericUser as User; +use Ushahidi\Core\Ohanzee\Entities\Config as OhanzeeConfig; use Ushahidi\Core\Concerns\Acl as AccessControlList; class ConfigPolicy @@ -40,65 +40,35 @@ class ConfigPolicy */ protected $readonly_groups = ['features', 'deployment_id']; - - - - - - /** - * - * @param \Ushahidi\Modules\User $user - * @return bool - */ public function index() { - $empty_config_entity = new EntityConfig(); + $empty_config_entity = new OhanzeeConfig(); return $this->isAllowed($empty_config_entity, 'search'); } - /** - * - * @param GenericUser $user - * @param Config $config - * @return bool - */ - public function show(User $user, Config $config) + public function show(User $user, EloquentConfig $config) { - $config_entity = new EntityConfig($config->toArray()); + $config_entity = new OhanzeeConfig($config->toArray()); return $this->isAllowed($config_entity, 'read'); } - /** - * - * @param GenericUser $user - * @param Config $config - * @return bool - */ - public function delete(User $user, Config $config) + public function delete(User $user, EloquentConfig $config) { - $config_entity = new EntityConfig($config->toArray()); + $config_entity = new OhanzeeConfig($config->toArray()); return $this->isAllowed($config_entity, 'delete'); } - /** - * @param Config $config - * @return bool - */ - public function update(User $user, Config $config) + + public function update(User $user, EloquentConfig $config) { // we convert to a Config entity to be able to continue using the old authorizers and classes. - $config_entity = new EntityConfig($config->toArray()); + $config_entity = new OhanzeeConfig($config->toArray()); return $this->isAllowed($config_entity, 'update'); } - - /** - * @param Config $config - * @return bool - */ - public function store(User $user, Config $config) + public function store(User $user, EloquentConfig $config) { // we convert to a config_entity entity to be able to continue using the old authorizers and classes. - $config_entity = new EntityConfig($config->toArray()); + $config_entity = new OhanzeeConfig($config->toArray()); return $this->isAllowed($config_entity, 'create'); } @@ -135,14 +105,14 @@ public function isAllowed($entity, $privilege) return true; } -// If no other access checks succeed, we default to denying access + // If no other access checks succeed, we default to denying access return false; } /** * Check if a config group is public - * @param EntityBase $entity + * @param Entity $entity * @return boolean */ protected function isConfigPublic(Entity $entity) @@ -161,7 +131,7 @@ protected function isConfigPublic(Entity $entity) /** * Check if a config group is read only - * @param EntityBase $entity + * @param Entity $entity * @return boolean */ protected function isConfigReadOnly(Entity $entity) diff --git a/src/Ushahidi/Modules/V5/Policies/ExportJobPolicy.php b/src/Ushahidi/Modules/V5/Policies/ExportJobPolicy.php index 19dd5d1d84..4f0a186ff6 100644 --- a/src/Ushahidi/Modules/V5/Policies/ExportJobPolicy.php +++ b/src/Ushahidi/Modules/V5/Policies/ExportJobPolicy.php @@ -2,16 +2,16 @@ namespace Ushahidi\Modules\V5\Policies; -use Ushahidi\Authzn\GenericUser as User; -use Ushahidi\Core\Entity; -use Ushahidi\Modules\V5\Models\ExportJob; -use Ushahidi\Contracts\Permission; -use Ushahidi\Core\Concerns\AdminAccess; -use Ushahidi\Core\Concerns\UserContext; -use Ushahidi\Core\Concerns\PrivAccess; use Ushahidi\Core\Concerns\PrivateDeployment; -use Ushahidi\Core\Concerns\OwnerAccess; use Ushahidi\Core\Concerns\Acl as AccessControlList; +use Ushahidi\Core\Entity\Permission; +use Ushahidi\Core\Concerns\PrivAccess; +use Ushahidi\Core\Concerns\AdminAccess; +use Ushahidi\Core\Concerns\OwnerAccess; +use Ushahidi\Core\Concerns\UserContext; +use Ushahidi\Authzn\GenericUser as User; +use Ushahidi\Modules\V5\Models\ExportJob; +use Ushahidi\Core\Ohanzee\Entities\ExportJob as OhanzeeExportJob; class ExportJobPolicy { @@ -38,68 +38,40 @@ class ExportJobPolicy /** - * - * @param \Ushahidi\Modules\User $user * @return bool */ public function index() { - $empty_export_job_entity = new Entity\ExportJob(); + $empty_export_job_entity = new OhanzeeExportJob(); return $this->isAllowed($empty_export_job_entity, 'search'); } - /** - * - * @param GenericUser $user - * @param ExportJob $export_job - * @return bool - */ public function show(User $user, ExportJob $export_job) { - $export_job_entity = new Entity\ExportJob($export_job->toArray()); + $export_job_entity = new OhanzeeExportJob($export_job->toArray()); return $this->isAllowed($export_job_entity, 'read'); } - /** - * - * @param GenericUser $user - * @param ExportJob $export_job - * @return bool - */ public function delete(User $user, ExportJob $export_job) { - $export_job_entity = new Entity\ExportJob($export_job->toArray()); + $export_job_entity = new OhanzeeExportJob($export_job->toArray()); return $this->isAllowed($export_job_entity, 'delete'); } - /** - * @param ExportJob $export_job - * @return bool - */ + public function update(User $user, ExportJob $export_job) { // we convert to a ExportJob entity to be able to continue using the old authorizers and classes. - $export_job_entity = new Entity\ExportJob($export_job->toArray()); + $export_job_entity = new OhanzeeExportJob($export_job->toArray()); return $this->isAllowed($export_job_entity, 'update'); } - - /** - * @param ExportJob $export_job - * @return bool - */ public function store(User $user, ExportJob $export_job) { // we convert to a export_job_entity entity to be able to continue using the old authorizers and classes. - $export_job_entity = new Entity\ExportJob($export_job->toArray()); + $export_job_entity = new OhanzeeExportJob($export_job->toArray()); return $this->isAllowed($export_job_entity, 'create'); } - - /** - * @param $entity - * @param string $privilege - * @return bool - */ public function isAllowed($entity, $privilege) { $authorizer = service('authorizer.export_job'); diff --git a/src/Ushahidi/Modules/V5/Repository/Export/ExportJobRepository.php b/src/Ushahidi/Modules/V5/Repository/Export/ExportJobRepository.php index 5f128bac0e..54b814552b 100644 --- a/src/Ushahidi/Modules/V5/Repository/Export/ExportJobRepository.php +++ b/src/Ushahidi/Modules/V5/Repository/Export/ExportJobRepository.php @@ -2,12 +2,13 @@ namespace Ushahidi\Modules\V5\Repository\Export; -use Illuminate\Contracts\Pagination\LengthAwarePaginator; use Illuminate\Support\Collection; -use Ushahidi\Modules\V5\Models\ExportJob; use Ushahidi\Modules\V5\DTO\Paging; +use Ushahidi\Modules\V5\Models\ExportJob; +use Ushahidi\Core\Exception\NotFoundException; use Ushahidi\Modules\V5\DTO\ExportJobSearchFields; use Ushahidi\Core\Entity\ExportJob as ExportJobEntity; +use Illuminate\Contracts\Pagination\LengthAwarePaginator; interface ExportJobRepository {