upgrade
This commit is contained in:
19
plugin/xapi/php-xapi/repository-doctrine-orm/LICENSE
Normal file
19
plugin/xapi/php-xapi/repository-doctrine-orm/LICENSE
Normal file
@@ -0,0 +1,19 @@
|
||||
Copyright (c) 2016-2017 Christian Flothmann
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is furnished
|
||||
to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
41
plugin/xapi/php-xapi/repository-doctrine-orm/composer.json
Normal file
41
plugin/xapi/php-xapi/repository-doctrine-orm/composer.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"name": "php-xapi/repository-doctrine-orm",
|
||||
"description": "Doctrine based ORM implementations of an Experience API (xAPI) repository",
|
||||
"keywords": ["xAPI", "Tin Can API", "Experience API", "storage", "database", "repository", "entity", "Doctrine", "ORM"],
|
||||
"homepage": "https://github.com/php-xapi/repository-orm/",
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Christian Flothmann",
|
||||
"homepage": "https://github.com/xabbuh"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": "^5.6 || ^7.0",
|
||||
"doctrine/orm": "^2.3",
|
||||
"php-xapi/repository-api": "^0.4",
|
||||
"php-xapi/repository-doctrine": "^0.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/phpunit-bridge": "^3.4 || ^4.0"
|
||||
},
|
||||
"provide": {
|
||||
"php-xapi/repository-implementation": "0.3"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"XApi\\Repository\\ORM\\": "src/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"XApi\\Repository\\ORM\\Tests\\": "tests/"
|
||||
}
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "0.1.x-dev"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
|
||||
http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
|
||||
|
||||
<entity name="XApi\Repository\Doctrine\Mapping\Actor" table="xapi_actor">
|
||||
<id name="identifier" type="integer">
|
||||
<generator strategy="AUTO" />
|
||||
</id>
|
||||
|
||||
<field name="type" type="string" nullable="true" />
|
||||
<field name="mbox" type="string" nullable="true" />
|
||||
<field name="mboxSha1Sum" type="string" nullable="true" />
|
||||
<field name="openId" type="string" nullable="true" />
|
||||
<field name="accountName" type="string" nullable="true" />
|
||||
<field name="accountHomePage" type="string" nullable="true" />
|
||||
<field name="name" type="string" nullable="true" />
|
||||
</entity>
|
||||
</doctrine-mapping>
|
||||
@@ -0,0 +1,23 @@
|
||||
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
|
||||
http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
|
||||
|
||||
<entity name="XApi\Repository\Doctrine\Mapping\Attachment" table="xapi_attachment">
|
||||
<id name="identifier" type="integer">
|
||||
<generator strategy="AUTO" />
|
||||
</id>
|
||||
|
||||
<field name="usageType" type="string" />
|
||||
<field name="contentType" type="string" />
|
||||
<field name="length" type="integer" />
|
||||
<field name="sha2" type="string" />
|
||||
<field name="display" type="json_array" />
|
||||
<field name="hasDescription" type="boolean" />
|
||||
<field name="description" type="json_array" nullable="true" />
|
||||
<field name="fileUrl" type="string" nullable="true" />
|
||||
<field name="content" type="text" nullable="true" />
|
||||
|
||||
<many-to-one field="statement" target-entity="XApi\Repository\Doctrine\Mapping\Statement" inversed-by="attachments" />
|
||||
</entity>
|
||||
</doctrine-mapping>
|
||||
@@ -0,0 +1,59 @@
|
||||
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
|
||||
http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
|
||||
|
||||
<entity name="XApi\Repository\Doctrine\Mapping\Context" table="xapi_context">
|
||||
<id name="identifier" type="integer">
|
||||
<generator strategy="AUTO" />
|
||||
</id>
|
||||
|
||||
<field name="registration" type="string" nullable="true" />
|
||||
<field name="hasContextActivities" type="boolean" nullable="true" />
|
||||
<field name="revision" type="string" nullable="true" />
|
||||
<field name="platform" type="string" nullable="true" />
|
||||
<field name="language" type="string" nullable="true" />
|
||||
<field name="statement" type="string" nullable="true" />
|
||||
|
||||
<one-to-one field="instructor" target-entity="XApi\Repository\Doctrine\Mapping\StatementObject">
|
||||
<cascade>
|
||||
<cascade-all />
|
||||
</cascade>
|
||||
<join-column referenced-column-name="identifier" />
|
||||
</one-to-one>
|
||||
<one-to-one field="team" target-entity="XApi\Repository\Doctrine\Mapping\StatementObject">
|
||||
<cascade>
|
||||
<cascade-all />
|
||||
</cascade>
|
||||
<join-column referenced-column-name="identifier" />
|
||||
</one-to-one>
|
||||
<one-to-one field="extensions" target-entity="XApi\Repository\Doctrine\Mapping\Extensions">
|
||||
<cascade>
|
||||
<cascade-all />
|
||||
</cascade>
|
||||
<join-column referenced-column-name="identifier" />
|
||||
</one-to-one>
|
||||
|
||||
<!-- context activities -->
|
||||
<one-to-many field="parentActivities" target-entity="XApi\Repository\Doctrine\Mapping\StatementObject" mapped-by="parentContext">
|
||||
<cascade>
|
||||
<cascade-all />
|
||||
</cascade>
|
||||
</one-to-many>
|
||||
<one-to-many field="groupingActivities" target-entity="XApi\Repository\Doctrine\Mapping\StatementObject" mapped-by="groupingContext">
|
||||
<cascade>
|
||||
<cascade-all />
|
||||
</cascade>
|
||||
</one-to-many>
|
||||
<one-to-many field="categoryActivities" target-entity="XApi\Repository\Doctrine\Mapping\StatementObject" mapped-by="categoryContext">
|
||||
<cascade>
|
||||
<cascade-all />
|
||||
</cascade>
|
||||
</one-to-many>
|
||||
<one-to-many field="otherActivities" target-entity="XApi\Repository\Doctrine\Mapping\StatementObject" mapped-by="otherContext">
|
||||
<cascade>
|
||||
<cascade-all />
|
||||
</cascade>
|
||||
</one-to-many>
|
||||
</entity>
|
||||
</doctrine-mapping>
|
||||
@@ -0,0 +1,13 @@
|
||||
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
|
||||
http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
|
||||
|
||||
<entity name="XApi\Repository\Doctrine\Mapping\Extensions" table="xapi_extensions">
|
||||
<id name="identifier" type="integer">
|
||||
<generator strategy="AUTO" />
|
||||
</id>
|
||||
|
||||
<field name="extensions" type="json_array" />
|
||||
</entity>
|
||||
</doctrine-mapping>
|
||||
@@ -0,0 +1,28 @@
|
||||
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
|
||||
http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
|
||||
|
||||
<entity name="XApi\Repository\Doctrine\Mapping\Result" table="xapi_result">
|
||||
<id name="identifier" type="integer">
|
||||
<generator strategy="AUTO" />
|
||||
</id>
|
||||
|
||||
<field name="hasScore" type="boolean" />
|
||||
<field name="scaled" type="float" nullable="true" />
|
||||
<field name="raw" type="float" nullable="true" />
|
||||
<field name="min" type="float" nullable="true" />
|
||||
<field name="max" type="float" nullable="true" />
|
||||
<field name="success" type="boolean" nullable="true" />
|
||||
<field name="completion" type="boolean" nullable="true" />
|
||||
<field name="response" type="string" nullable="true" />
|
||||
<field name="duration" type="string" nullable="true" />
|
||||
|
||||
<one-to-one field="extensions" target-entity="XApi\Repository\Doctrine\Mapping\Extensions">
|
||||
<cascade>
|
||||
<cascade-all />
|
||||
</cascade>
|
||||
<join-column referenced-column-name="identifier" />
|
||||
</one-to-one>
|
||||
</entity>
|
||||
</doctrine-mapping>
|
||||
@@ -0,0 +1,62 @@
|
||||
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
|
||||
http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
|
||||
|
||||
<entity name="XApi\Repository\Doctrine\Mapping\Statement"
|
||||
repository-class="XApi\Repository\ORM\StatementRepository"
|
||||
table="xapi_statement">
|
||||
|
||||
<id name="id" type="string">
|
||||
<generator strategy="NONE" />
|
||||
</id>
|
||||
|
||||
<field name="created" type="bigint" nullable="true" />
|
||||
<field name="stored" type="bigint" nullable="true" />
|
||||
<field name="hasAttachments" type="boolean" />
|
||||
|
||||
<one-to-one field="actor" target-entity="XApi\Repository\Doctrine\Mapping\StatementObject">
|
||||
<cascade>
|
||||
<cascade-all />
|
||||
</cascade>
|
||||
<join-column referenced-column-name="identifier" />
|
||||
</one-to-one>
|
||||
<one-to-one field="verb" target-entity="XApi\Repository\Doctrine\Mapping\Verb">
|
||||
<cascade>
|
||||
<cascade-all />
|
||||
</cascade>
|
||||
<join-column referenced-column-name="identifier" />
|
||||
</one-to-one>
|
||||
<one-to-one field="object" target-entity="XApi\Repository\Doctrine\Mapping\StatementObject">
|
||||
<cascade>
|
||||
<cascade-all />
|
||||
</cascade>
|
||||
<join-column referenced-column-name="identifier" />
|
||||
</one-to-one>
|
||||
<one-to-one field="result" target-entity="XApi\Repository\Doctrine\Mapping\Result">
|
||||
<cascade>
|
||||
<cascade-all />
|
||||
</cascade>
|
||||
<join-column referenced-column-name="identifier" />
|
||||
</one-to-one>
|
||||
<one-to-one field="authority" target-entity="XApi\Repository\Doctrine\Mapping\StatementObject">
|
||||
<cascade>
|
||||
<cascade-all />
|
||||
</cascade>
|
||||
<join-column referenced-column-name="identifier" />
|
||||
</one-to-one>
|
||||
<one-to-one field="context" target-entity="XApi\Repository\Doctrine\Mapping\Context">
|
||||
<cascade>
|
||||
<cascade-all />
|
||||
</cascade>
|
||||
<join-column referenced-column-name="identifier" />
|
||||
</one-to-one>
|
||||
|
||||
<!-- attachments -->
|
||||
<one-to-many field="attachments" target-entity="XApi\Repository\Doctrine\Mapping\Attachment" mapped-by="statement">
|
||||
<cascade>
|
||||
<cascade-all />
|
||||
</cascade>
|
||||
</one-to-many>
|
||||
</entity>
|
||||
</doctrine-mapping>
|
||||
@@ -0,0 +1,83 @@
|
||||
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
|
||||
http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
|
||||
|
||||
<entity name="XApi\Repository\Doctrine\Mapping\StatementObject" table="xapi_object">
|
||||
<id name="identifier" type="integer">
|
||||
<generator strategy="AUTO" />
|
||||
</id>
|
||||
|
||||
<!-- discriminator column -->
|
||||
<field name="type" type="string" nullable="true" />
|
||||
|
||||
<!-- activity -->
|
||||
<field name="activityId" type="string" nullable="true" />
|
||||
<field name="hasActivityDefinition" type="boolean" nullable="true" />
|
||||
<field name="hasActivityName" type="boolean" nullable="true" />
|
||||
<field name="activityName" type="json_array" nullable="true" />
|
||||
<field name="hasActivityDescription" type="boolean" nullable="true" />
|
||||
<field name="activityDescription" type="json_array" nullable="true" />
|
||||
<field name="activityType" type="string" nullable="true" />
|
||||
<field name="activityMoreInfo" type="string" nullable="true" />
|
||||
|
||||
<!-- actor -->
|
||||
<field name="mbox" type="string" nullable="true" />
|
||||
<field name="mboxSha1Sum" type="string" nullable="true" />
|
||||
<field name="openId" type="string" nullable="true" />
|
||||
<field name="accountName" type="string" nullable="true" />
|
||||
<field name="accountHomePage" type="string" nullable="true" />
|
||||
<field name="name" type="string" nullable="true" />
|
||||
|
||||
<!-- statement reference -->
|
||||
<field name="referencedStatementId" type="string" nullable="true" />
|
||||
|
||||
<!-- sub statement -->
|
||||
<one-to-one field="actor" target-entity="XApi\Repository\Doctrine\Mapping\StatementObject">
|
||||
<cascade>
|
||||
<cascade-all />
|
||||
</cascade>
|
||||
<join-column referenced-column-name="identifier" />
|
||||
</one-to-one>
|
||||
<one-to-one field="verb" target-entity="XApi\Repository\Doctrine\Mapping\Verb">
|
||||
<cascade>
|
||||
<cascade-all />
|
||||
</cascade>
|
||||
<join-column referenced-column-name="identifier" />
|
||||
</one-to-one>
|
||||
<one-to-one field="object" target-entity="XApi\Repository\Doctrine\Mapping\StatementObject">
|
||||
<cascade>
|
||||
<cascade-all />
|
||||
</cascade>
|
||||
<join-column referenced-column-name="identifier" />
|
||||
</one-to-one>
|
||||
|
||||
<!-- activity extensions -->
|
||||
<one-to-one field="activityExtensions" target-entity="XApi\Repository\Doctrine\Mapping\Extensions">
|
||||
<cascade>
|
||||
<cascade-all />
|
||||
</cascade>
|
||||
<join-column referenced-column-name="identifier" />
|
||||
</one-to-one>
|
||||
|
||||
<!-- group members -->
|
||||
<one-to-many target-entity="XApi\Repository\Doctrine\Mapping\StatementObject" mapped-by="group" field="members" />
|
||||
<many-to-one target-entity="XApi\Repository\Doctrine\Mapping\StatementObject" field="group" inversed-by="members">
|
||||
<join-column referenced-column-name="identifier" />
|
||||
</many-to-one>
|
||||
|
||||
<!-- context activities -->
|
||||
<many-to-one target-entity="XApi\Repository\Doctrine\Mapping\Context" field="parentContext" inversed-by="parentActivities">
|
||||
<join-column referenced-column-name="identifier" />
|
||||
</many-to-one>
|
||||
<many-to-one target-entity="XApi\Repository\Doctrine\Mapping\Context" field="groupingContext" inversed-by="groupingActivities">
|
||||
<join-column referenced-column-name="identifier" />
|
||||
</many-to-one>
|
||||
<many-to-one target-entity="XApi\Repository\Doctrine\Mapping\Context" field="categoryContext" inversed-by="categoryActivities">
|
||||
<join-column referenced-column-name="identifier" />
|
||||
</many-to-one>
|
||||
<many-to-one target-entity="XApi\Repository\Doctrine\Mapping\Context" field="otherContext" inversed-by="otherActivities">
|
||||
<join-column referenced-column-name="identifier" />
|
||||
</many-to-one>
|
||||
</entity>
|
||||
</doctrine-mapping>
|
||||
@@ -0,0 +1,14 @@
|
||||
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
|
||||
http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
|
||||
|
||||
<entity name="XApi\Repository\Doctrine\Mapping\Verb" table="xapi_verb">
|
||||
<id name="identifier" type="integer">
|
||||
<generator strategy="AUTO" />
|
||||
</id>
|
||||
|
||||
<field name="id" type="string" />
|
||||
<field name="display" type="json_array" />
|
||||
</entity>
|
||||
</doctrine-mapping>
|
||||
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the xAPI package.
|
||||
*
|
||||
* (c) Christian Flothmann <christian.flothmann@xabbuh.de>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace XApi\Repository\ORM;
|
||||
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use XApi\Repository\Doctrine\Mapping\Context;
|
||||
use XApi\Repository\Doctrine\Mapping\Statement;
|
||||
use XApi\Repository\Doctrine\Repository\Mapping\StatementRepository as BaseStatementRepository;
|
||||
|
||||
/**
|
||||
* @author Christian Flothmann <christian.flothmann@xabbuh.de>
|
||||
*/
|
||||
final class StatementRepository extends EntityRepository implements BaseStatementRepository
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function findStatement(array $criteria)
|
||||
{
|
||||
return parent::findOneBy($criteria);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function findStatements(array $criteria)
|
||||
{
|
||||
if (!empty($criteria['registration'])) {
|
||||
$contexts = $this->_em->getRepository(Context::class)->findBy([
|
||||
'registration' => $criteria['registration'],
|
||||
]);
|
||||
|
||||
$criteria['context'] = $contexts;
|
||||
}
|
||||
|
||||
unset(
|
||||
$criteria['registration'],
|
||||
$criteria['related_activities'],
|
||||
$criteria['related_agents'],
|
||||
$criteria['ascending'],
|
||||
$criteria['limit']
|
||||
);
|
||||
|
||||
return parent::findBy($criteria, ['created' => 'ASC']);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function storeStatement(Statement $mappedStatement, $flush = true)
|
||||
{
|
||||
$this->_em->persist($mappedStatement);
|
||||
|
||||
if ($flush) {
|
||||
$this->_em->flush();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user