http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/src/Native/Facades/Usergrid.php ---------------------------------------------------------------------- diff --git a/sdks/php5/apache-usergrid/src/Native/Facades/Usergrid.php b/sdks/php5/apache-usergrid/src/Native/Facades/Usergrid.php deleted file mode 100644 index fbfcffe..0000000 --- a/sdks/php5/apache-usergrid/src/Native/Facades/Usergrid.php +++ /dev/null @@ -1,118 +0,0 @@ -<?php -/** - * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -namespace Apache\Usergrid\Native\Facades; - - -use Apache\Usergrid\Native\UsergridBootstrapper; - -/** - * Class Usergrid - * - * @package Apache/Usergrid - * @version 1.0.0 - * @author Jason Kristian <jasonkrist...@gmail.com> - * @license Apache License, Version 2.0 - * @copyright (c) 2008-2014, Baas Platform Pty. Ltd - * @link http://baas-platform.com - */ -class Usergrid -{ - /** - * The Native Bootstrap instance. - * - * @var \Apache\Usergrid\Native\UsergridBootstrapper - */ - protected static $instance; - /** - * The Usergrid API instance. - * - * @var \Apache\Usergrid\Api\Usergrid - */ - protected $usergrid; - - /** - * Constructor. - * - * @param \Apache\Usergrid\Native\UsergridBootstrapper $bootstraper - * @return \Apache\Usergrid\Native\Facades\Usergrid - */ - public function __construct(UsergridBootstrapper $bootstraper = null) - { - if (!$bootstraper) { - $bootstraper = new UsergridBootstrapper; - } - - $this->usergrid = $bootstraper->createUsergrid(); - } - - /** - * Handle dynamic, static calls to the object. - * - * @param string $method - * @param array $args - * @return mixed - */ - public static function __callStatic($method, $args) - { - $instance = static::instance()->getUsergrid(); - - switch (count($args)) { - case 0: - return $instance->{$method}(); - - case 1: - return $instance->{$method}($args[0]); - - case 2: - return $instance->{$method}($args[0], $args[1]); - - case 3: - return $instance->{$method}($args[0], $args[1], $args[2]); - - case 4: - return $instance->{$method}($args[0], $args[1], $args[2], $args[3]); - - default: - return call_user_func_array([$instance, $method], $args); - } - } - - /** - * Creates a new Native Bootstraper instance. - * - * @param \Apache\Usergrid\Native\UsergridBootstrapper $bootstrapper - * @return static - */ - public static function instance(UsergridBootstrapper $bootstrapper = null) - { - if (static::$instance === null) { - static::$instance = new static($bootstrapper); - } - - return static::$instance; - } - - /** - * Returns the Usergrid API instance. - * - * @return \Apache\Usergrid\Api\Usergrid - */ - public function getUsergrid() - { - return $this->usergrid; - } -} \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/src/Native/UsergridBootstrapper.php ---------------------------------------------------------------------- diff --git a/sdks/php5/apache-usergrid/src/Native/UsergridBootstrapper.php b/sdks/php5/apache-usergrid/src/Native/UsergridBootstrapper.php deleted file mode 100644 index 0f71b78..0000000 --- a/sdks/php5/apache-usergrid/src/Native/UsergridBootstrapper.php +++ /dev/null @@ -1,150 +0,0 @@ -<?php -/** - * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -namespace Apache\Usergrid\Native; - - -use Apache\Usergrid\Api\Usergrid; -use Apache\Usergrid\Guzzle\Plugin\Oauth2\GrantType\ClientCredentials; -use Apache\Usergrid\Guzzle\Plugin\Oauth2\GrantType\PasswordCredentials; -use Apache\Usergrid\Guzzle\Plugin\Oauth2\GrantType\RefreshToken; -use Apache\Usergrid\Guzzle\Plugin\Oauth2\Oauth2Plugin; -use Guzzle\Http\Client; - -/** - * Class UsergridBootstrapper - * - * @package Apache/Usergrid - * @version 1.0.0 - * @author Jason Kristian <jasonkrist...@gmail.com> - * @license Apache License, Version 2.0 - * @copyright (c) 2008-2014, Baas Platform Pty. Ltd - * @link http://baas-platform.com - */ -class UsergridBootstrapper -{ - /** - * The Usergrid configuration. - * - * @var array - */ - protected $config; - - /** - * The Oauth2 Plugin. - * - * @var \Apache\Usergrid\Guzzle\Plugin\Oauth2\Oauth2Plugin - */ - protected $oauth2Plugin = null; - - /** - * Constructor. - * - * @param mixed $config - * @return \Apache\Usergrid\Native\UsergridBootstrapper - */ - public function __construct($config = null) - { - $this->config = $config ?: new ConfigRepository($config); - } - - /** - * Creates the Usergrid instance. - * - * @return \Apache\Usergrid\Api\Usergrid - */ - public function createUsergrid() - { - $baseUrl = array_get($this->config, 'usergrid.url'); - - $orgName = array_get($this->config, 'usergrid.orgName'); - - $appName = array_get($this->config, 'usergrid.appName'); - - $manifestPath = array_get($this->config, 'usergrid.manifestPath'); - - $version = array_get($this->config, 'usergrid.version'); - - $enable_oauth2_plugin = array_get($this->config, 'usergrid.enable_oauth2_plugin'); - - //check if user wants to manage there own Oauth 2 auth flow - if ($enable_oauth2_plugin) { - - $this->createOauth2Plugin(); - - return new Usergrid($orgName, $appName, $manifestPath, $version, $baseUrl, $this->oauth2Plugin); - } else { - return new Usergrid($orgName, $appName, $manifestPath, $version, $baseUrl); - } - - } - - private function createOauth2Plugin() - { - $base_url = array_get($this->config, 'usergrid.url'); - - $client_id = array_get($this->config, 'usergrid.clientId'); - - $client_secret = array_get($this->config, 'usergrid.clientSecret'); - - $grant_type = array_get($this->config, 'usergrid.grant_type'); - - $auth_type = array_get($this->config, 'usergrid.auth_type'); - - $username = array_get($this->config, 'usergrid.username'); - - $password = array_get($this->config, 'usergrid.password'); - - - $org_name = array_get($this->config, 'usergrid.orgName'); - - $app_name = array_get($this->config, 'usergrid.appName'); - - if ($auth_type == 'organization') { - - $url = $base_url . '/management/token'; - - } elseif ($auth_type == 'application') { - $url = $base_url . '/' . $org_name . '/' . $app_name . '/token'; - } - - $oauth2Client = new Client($url); - - - if ($grant_type == 'client_credentials') { - $config = [ - 'client_id' => $client_id, - 'client_secret' => $client_secret, - - ]; - $grantType = new ClientCredentials($oauth2Client, $config); - $refreshTokenGrantType = new RefreshToken($oauth2Client, $config); - $this->oauth2Plugin = new Oauth2Plugin($grantType, $refreshTokenGrantType); - - } elseif ($grant_type == 'password') { - $config = [ - 'username' => $username, - 'password' => $password, - 'client_id' => $client_id, - 'client_secret' => $client_secret - ]; - $grantType = new PasswordCredentials($oauth2Client, $config); - $refreshTokenGrantType = new RefreshToken($oauth2Client, $config); - $this->oauth2Plugin = new Oauth2Plugin($grantType, $refreshTokenGrantType); - } - } - -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/src/config/config.php ---------------------------------------------------------------------- diff --git a/sdks/php5/apache-usergrid/src/config/config.php b/sdks/php5/apache-usergrid/src/config/config.php deleted file mode 100644 index 75a886f..0000000 --- a/sdks/php5/apache-usergrid/src/config/config.php +++ /dev/null @@ -1,53 +0,0 @@ -<?php -/** - * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -return [ - - 'usergrid' => [ - - 'url' => 'https://api.usergrid.com', - 'version' => '1.0.0', - 'orgName' => null, - 'appName' => null, - 'manifestPath' => null, - //its better not to set the real values here if using laravel set them in a .env file or - // if your not using Laravel set them as environment variable and include them here using $_ENV global. - // so that way you can be sure not to commit privates ID to a public repo - 'clientId' => null, - 'clientSecret' => null, - 'username' => null, - 'password' => null, - /** - * The Auth Type setting is the Oauth 2 end point you want to get the OAuth 2 - * Token from. You have two options here one is 'application' the other is 'organization' - * - * organization will get the the token from http://example.com/management using client_credentials or password grant type - * application will get the token from http://example.com/managment/org_name/app_name using client_credentials or password grant type - */ - 'auth_type' => 'organization', - /** The Grant Type to use - * - * This has to be set to one of the 2 grant types that Apache Usergrid - * supports which at the moment is client_credentials or password but at - * 2 level organization or application - */ - 'grant_type' => 'client_credentials', - /** - * if you want to manage your own auth flow by calling the token api and setting the token your self just set this to false - * */ - 'enable_oauth2_plugin' => true - ] -]; http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/ApplicationTest.php ---------------------------------------------------------------------- diff --git a/sdks/php5/apache-usergrid/tests/Api/ApplicationTest.php b/sdks/php5/apache-usergrid/tests/Api/ApplicationTest.php deleted file mode 100644 index d25a205..0000000 --- a/sdks/php5/apache-usergrid/tests/Api/ApplicationTest.php +++ /dev/null @@ -1,72 +0,0 @@ -<?php -/** - * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -namespace Apache\Usergrid\Tests\Api; - - -use Apache\Usergrid\Api\Exception\UsergridException; -use PHPUnit_Framework_TestCase; - -/** - * Class ApplicationTest - * - * @package Apache/Usergrid - * @version 1.0.0 - * @author Jason Kristian <jasonkrist...@gmail.com> - * @license Apache License, Version 2.0 - * @copyright (c) 2008-2014, Baas Platform Pty. Ltd - * @link http://baas-platform.com - */ -class ApplicationTest extends PHPUnit_Framework_TestCase -{ - - /** - * Usergrid client - * - * @var Usergrid $usergrid - */ - protected $usergrid; - - protected $config; - - /** - * - */ - public function setUp() - { - $this->usergrid = $GLOBALS['usergrid']; - } - - /** - * @test - * @group internet - */ - public function it_can_get_entity() - { - - $error = null; - - try { - $this->usergrid->application()->EntityGet(['collection' => 'users']); - } catch (UsergridException $e) { - $error = $e; - } - - $this->assertNull($error, 'Exception should be null'); - } - - -} http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/AttributeTest.php ---------------------------------------------------------------------- diff --git a/sdks/php5/apache-usergrid/tests/Api/AttributeTest.php b/sdks/php5/apache-usergrid/tests/Api/AttributeTest.php deleted file mode 100644 index cc1f29e..0000000 --- a/sdks/php5/apache-usergrid/tests/Api/AttributeTest.php +++ /dev/null @@ -1,59 +0,0 @@ -<?php -/** - * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -namespace Apache\Usergrid\Tests\Api; - - -use PHPUnit_Framework_TestCase; - -/** - * Class AttributeTest - * - * @package Apache/Usergrid - * @version 1.0.0 - * @author Jason Kristian <jasonkrist...@gmail.com> - * @license Apache License, Version 2.0 - * @copyright (c) 2008-2014, Baas Platform Pty. Ltd - * @link http://baas-platform.com - */ -class AttributeTest extends PHPUnit_Framework_TestCase -{ - /** @var Usergrid Api Client */ - protected $usergrid; - - - /** - * Setup resources and dependencies - * - * @return void - */ - public function setup() - { - $this->usergrid = $GLOBALS['usergrid']; - } - - /** - * @test - * @group internet - */ - public function it_should_have_attribute() - { - $this->assertTrue(method_exists('Apache\Usergrid\Api\Models\User', 'deviceAttribute'), - 'Class does not have method Attribute Method' - ); - } -} - \ No newline at end of file http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/Exception/BadRequestExceptionTest.php ---------------------------------------------------------------------- diff --git a/sdks/php5/apache-usergrid/tests/Api/Exception/BadRequestExceptionTest.php b/sdks/php5/apache-usergrid/tests/Api/Exception/BadRequestExceptionTest.php deleted file mode 100644 index b716e3d..0000000 --- a/sdks/php5/apache-usergrid/tests/Api/Exception/BadRequestExceptionTest.php +++ /dev/null @@ -1,59 +0,0 @@ -<?php -/** - * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -namespace Apache\Usergrid\Tests\Api\Exception; - -use Apache\Usergrid\Api\Exception\BadRequestException; -use Guzzle\Http\Message\Response; -use PHPUnit_Framework_TestCase; - -/** - * Class BadRequestExceptionTest - * - * @package Apache/Usergrid - * @version 1.0.0 - * @author Jason Kristian <jasonkrist...@gmail.com> - * @license Apache License, Version 2.0 - * @copyright (c) 2008-2014, Baas Platform Pty. Ltd - * @link http://baas-platform.com - */ -class BadRequestExceptionTest extends PHPUnit_Framework_TestCase -{ - - /** @test */ - public function it_can_create_the_exception() - { - $command = $this->getMock('Guzzle\Service\Command\CommandInterface'); - $command - ->expects($this->once()) - ->method('getRequest') - ->will($this->returnValue( - $this->getMock('Guzzle\Http\Message\Request', [], [], '', false) - )); - - $response = new Response(400); - $response->setBody(''); - - /** @noinspection PhpParamsInspection */ - $exception = BadRequestException::fromCommand($command, $response); - - $this->assertInstanceOf( - 'Apache\Usergrid\Api\Exception\BadRequestException', - $exception - ); - } - -} http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/Exception/InvalidIdExceptionTest.php ---------------------------------------------------------------------- diff --git a/sdks/php5/apache-usergrid/tests/Api/Exception/InvalidIdExceptionTest.php b/sdks/php5/apache-usergrid/tests/Api/Exception/InvalidIdExceptionTest.php deleted file mode 100644 index b74aa64..0000000 --- a/sdks/php5/apache-usergrid/tests/Api/Exception/InvalidIdExceptionTest.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php -/** - * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -namespace Apache\Usergrid\Tests\Api\Exception; - -use Apache\Usergrid\Api\Exception\InvalidIdException; -use Guzzle\Http\Message\Response; -use PHPUnit_Framework_TestCase; - -/** - * Class InvalidIdExceptionTest - * - * @package Apache/Usergrid - * @version 1.0.0 - * @author Jason Kristian <jasonkrist...@gmail.com> - * @license Apache License, Version 2.0 - * @copyright (c) 2008-2014, Baas Platform Pty. Ltd - * @link http://baas-platform.com - */ -class InvalidIdExceptionTest extends PHPUnit_Framework_TestCase -{ - /** @test */ - public function it_can_create_the_exception() - { - $command = $this->getMock('Guzzle\Service\Command\CommandInterface'); - $command - ->expects($this->once()) - ->method('getRequest') - ->will($this->returnValue( - $this->getMock('Guzzle\Http\Message\Request', [], [], '', false) - )); - - $response = new Response(400); - $response->setBody(''); - - /** @noinspection PhpParamsInspection */ - $exception = InvalidIdException::fromCommand($command, $response); - - $this->assertInstanceOf( - 'Apache\Usergrid\Api\Exception\InvalidIdException', - $exception - ); - } - -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/Exception/NotFoundExceptionTest.php ---------------------------------------------------------------------- diff --git a/sdks/php5/apache-usergrid/tests/Api/Exception/NotFoundExceptionTest.php b/sdks/php5/apache-usergrid/tests/Api/Exception/NotFoundExceptionTest.php deleted file mode 100644 index c264751..0000000 --- a/sdks/php5/apache-usergrid/tests/Api/Exception/NotFoundExceptionTest.php +++ /dev/null @@ -1,57 +0,0 @@ -<?php -/** - * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -namespace Apache\Usergrid\Tests\Api\Exception; - -use Apache\Usergrid\Api\Exception\NotFoundException; -use Guzzle\Http\Message\Response; -use PHPUnit_Framework_TestCase; - -/** - * Class UnauthorizedExceptionTest - * - * @package Apache/Usergrid - * @version 1.0.0 - * @author Jason Kristian <jasonkrist...@gmail.com> - * @license Apache License, Version 2.0 - * @copyright (c) 2008-2014, Baas Platform Pty. Ltd - * @link http://baas-platform.com - */ -class NotFoundExceptionTest extends PHPUnit_Framework_TestCase -{ - /** @test */ - public function it_can_create_the_exception() - { - $command = $this->getMock('Guzzle\Service\Command\CommandInterface'); - $command - ->expects($this->once()) - ->method('getRequest') - ->will($this->returnValue( - $this->getMock('Guzzle\Http\Message\Request', [], [], '', false) - )); - - $response = new Response(404); - $response->setBody(''); - - /** @noinspection PhpParamsInspection */ - $exception = NotFoundException::fromCommand($command, $response); - - $this->assertInstanceOf( - 'Apache\Usergrid\Api\Exception\NotFoundException', - $exception - ); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/Exception/ServerErrorExceptionTest.php ---------------------------------------------------------------------- diff --git a/sdks/php5/apache-usergrid/tests/Api/Exception/ServerErrorExceptionTest.php b/sdks/php5/apache-usergrid/tests/Api/Exception/ServerErrorExceptionTest.php deleted file mode 100644 index 514288f..0000000 --- a/sdks/php5/apache-usergrid/tests/Api/Exception/ServerErrorExceptionTest.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php -/** - * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -namespace Apache\Usergrid\Tests\Api\Exception; - -use Apache\Usergrid\Api\Exception\ServerErrorException; -use Guzzle\Http\Message\Response; -use PHPUnit_Framework_TestCase; - -/** - * Class ServerErrorException - * - * @package Apache/Usergrid - * @version 1.0.0 - * @author Jason Kristian <jasonkrist...@gmail.com> - * @license Apache License, Version 2.0 - * @copyright (c) 2008-2014, Baas Platform Pty. Ltd - * @link http://baas-platform.com - */ -class ServerErrorExceptionTest extends PHPUnit_Framework_TestCase -{ - /** @test */ - public function it_can_create_the_exception() - { - $command = $this->getMock('Guzzle\Service\Command\CommandInterface'); - $command - ->expects($this->once()) - ->method('getRequest') - ->will($this->returnValue( - $this->getMock('Guzzle\Http\Message\Request', [], [], '', false) - )); - - $response = new Response(400); - $response->setBody(''); - - /** @noinspection PhpParamsInspection */ - $exception = ServerErrorException::fromCommand($command, $response); - - $this->assertInstanceOf( - 'Apache\Usergrid\Api\Exception\ServerErrorException', - $exception - ); - } - -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/Exception/UnauthorizedExceptionTest.php ---------------------------------------------------------------------- diff --git a/sdks/php5/apache-usergrid/tests/Api/Exception/UnauthorizedExceptionTest.php b/sdks/php5/apache-usergrid/tests/Api/Exception/UnauthorizedExceptionTest.php deleted file mode 100644 index 889e7de..0000000 --- a/sdks/php5/apache-usergrid/tests/Api/Exception/UnauthorizedExceptionTest.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php -/** - * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -namespace Apache\Usergrid\Tests\Api\Exception; - - -use Apache\Usergrid\Api\Exception\UnauthorizedException; -use Guzzle\Http\Message\Response; -use PHPUnit_Framework_TestCase; - -/** - * Class UnauthorizedExceptionTest - * - * @package Apache/Usergrid - * @version 1.0.0 - * @author Jason Kristian <jasonkrist...@gmail.com> - * @license Apache License, Version 2.0 - * @copyright (c) 2008-2014, Baas Platform Pty. Ltd - * @link http://baas-platform.com - */ -class UnauthorizedExceptionTest extends PHPUnit_Framework_TestCase -{ - /** @test */ - public function it_can_create_the_exception() - { - $command = $this->getMock('Guzzle\Service\Command\CommandInterface'); - $command - ->expects($this->once()) - ->method('getRequest') - ->will($this->returnValue( - $this->getMock('Guzzle\Http\Message\Request', [], [], '', false) - )); - - $response = new Response(401); - $response->setBody(''); - - /** @noinspection PhpParamsInspection */ - $exception = UnauthorizedException::fromCommand($command, $response); - - $this->assertInstanceOf( - 'Apache\Usergrid\Api\Exception\UnauthorizedException', - $exception - ); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/Filters/BooleanTest.php ---------------------------------------------------------------------- diff --git a/sdks/php5/apache-usergrid/tests/Api/Filters/BooleanTest.php b/sdks/php5/apache-usergrid/tests/Api/Filters/BooleanTest.php deleted file mode 100644 index 1550a55..0000000 --- a/sdks/php5/apache-usergrid/tests/Api/Filters/BooleanTest.php +++ /dev/null @@ -1,45 +0,0 @@ -<?php -/** - * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -namespace Apache\Usergrid\Tests\Api\Filters; - - -use Apache\Usergrid\Api\Filters\Boolean; -use PHPUnit_Framework_TestCase; - -/** - * Class BooleanTest - * - * @package Apache/Usergrid - * @version 1.0.0 - * @author Jason Kristian <jasonkrist...@gmail.com> - * @license Apache License, Version 2.0 - * @copyright (c) 2008-2014, Baas Platform Pty. Ltd - * @link http://baas-platform.com - */ -class BooleanTest extends PHPUnit_Framework_TestCase -{ - - /** @test */ - public function it_can_convert_booleans() - { - $this->assertEquals('true', Boolean::convert(1)); - $this->assertEquals('true', Boolean::convert(true)); - - $this->assertEquals('false', Boolean::convert(0)); - $this->assertEquals('false', Boolean::convert(false)); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/Filters/DateTest.php ---------------------------------------------------------------------- diff --git a/sdks/php5/apache-usergrid/tests/Api/Filters/DateTest.php b/sdks/php5/apache-usergrid/tests/Api/Filters/DateTest.php deleted file mode 100644 index 13d37f6..0000000 --- a/sdks/php5/apache-usergrid/tests/Api/Filters/DateTest.php +++ /dev/null @@ -1,41 +0,0 @@ -<?php -/** - * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -namespace Apache\Usergrid\Tests\Api\Filters; - - -use Apache\Usergrid\Api\Filters\Date; -use PHPUnit_Framework_TestCase; - -/** - * Class DateTest - * - * @package Apache/Usergrid - * @version 1.0.0 - * @author Jason Kristian <jasonkrist...@gmail.com> - * @license Apache License, Version 2.0 - * @copyright (c) 2008-2014, Baas Platform Pty. Ltd - * @link http://baas-platform.com - */ -class DateTest extends PHPUnit_Framework_TestCase -{ - /** @test */ - public function it_can_convert_dates() - { - - $this->assertEquals('Tue, Oct 14, 2014 3:55 AM', Date::convert(1413258923819)); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/ManagementTest.php ---------------------------------------------------------------------- diff --git a/sdks/php5/apache-usergrid/tests/Api/ManagementTest.php b/sdks/php5/apache-usergrid/tests/Api/ManagementTest.php deleted file mode 100644 index 46ea21c..0000000 --- a/sdks/php5/apache-usergrid/tests/Api/ManagementTest.php +++ /dev/null @@ -1,59 +0,0 @@ -<?php -/** - * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -namespace Apache\Usergrid\Tests\Api; - - -use Apache\Usergrid\Api\Exception\UsergridException; -use PHPUnit_Framework_TestCase; - -/** - * Class ManagementTest - * - * @package Apache/Usergrid - * @version 1.0.0 - * @author Jason Kristian <jasonkrist...@gmail.com> - * @license Apache License, Version 2.0 - * @copyright (c) 2008-2014, Baas Platform Pty. Ltd - * @link http://baas-platform.com - */ -class ManagementTest extends PHPUnit_Framework_TestCase -{ - protected $usergrid; - protected $config; - - public function setUp() - { - $this->usergrid = $GLOBALS['usergrid']; - } - - /** - * @test - * @group internet - */ - public function it_can_make_management_call() - { - $error = null; - - try { - $this->usergrid->management()->OrgAppsGet(); - } catch (UsergridException $e) { - $error = $e; - } - - $this->assertNull($error, "Should be no exception if manifest files exits and sdk can make management calls"); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/QueryAggregatorTest.php ---------------------------------------------------------------------- diff --git a/sdks/php5/apache-usergrid/tests/Api/QueryAggregatorTest.php b/sdks/php5/apache-usergrid/tests/Api/QueryAggregatorTest.php deleted file mode 100644 index eaa7b0b..0000000 --- a/sdks/php5/apache-usergrid/tests/Api/QueryAggregatorTest.php +++ /dev/null @@ -1,40 +0,0 @@ -<?php -/** - * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -namespace Apache\Usergrid\Tests\Api; - - -use PHPUnit_Framework_TestCase; - -/** - * Class QueryAggregatorTest - * - * @package Apache/Usergrid - * @version 1.0.0 - * @author Jason Kristian <jasonkrist...@gmail.com> - * @license Apache License, Version 2.0 - * @copyright (c) 2008-2014, Baas Platform Pty. Ltd - * @link http://baas-platform.com - */ -class QueryAggregatorTest extends PHPUnit_Framework_TestCase -{ - - /** @test */ - public function it_can_test_the_aggregate_method() - { - } - -} http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/UsergridTest.php ---------------------------------------------------------------------- diff --git a/sdks/php5/apache-usergrid/tests/Api/UsergridTest.php b/sdks/php5/apache-usergrid/tests/Api/UsergridTest.php deleted file mode 100644 index 0c7a340..0000000 --- a/sdks/php5/apache-usergrid/tests/Api/UsergridTest.php +++ /dev/null @@ -1,153 +0,0 @@ -<?php -/** - * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -namespace Apache\Usergrid\Tests\Api; - -use Apache\Usergrid\Api\Exception\UnauthorizedException; -use PHPUnit_Framework_TestCase; - -/** - * Class UsergridTest - * - * @package Apache/Usergrid - * @version 1.0.0 - * @author Jason Kristian <jasonkrist...@gmail.com> - * @license Apache License, Version 2.0 - * @copyright (c) 2008-2014, Baas Platform Pty. Ltd - * @link http://baas-platform.com - */ -class UsergridTest extends PHPUnit_Framework_TestCase -{ - - /** @var Usergrid Api Client */ - protected $usergrid; - - protected $config; - - /** - * Setup resources and dependencies - * - * @return void - */ - public function setup() - { - $this->usergrid = $GLOBALS['usergrid']; - } - - /** - * @test - * @group internet - */ - public function it_can_retrieve_oauth2_token() - { - $error = null; - - try { - $this->usergrid->application()->EntityGet(['collection' => 'roles']); - } catch (UnauthorizedException $e) { - $error = $e; - } - - $this->assertNull($error, 'Exception should be null if authorized'); - } - - /** @test */ - public function it_can_set_the_oauth2_token() - { - $this->usergrid->setToken('ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'); - - $this->assertEquals('ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890', $this->usergrid->getToken()); - } - - /** @test */ - public function it_can_retrieve_user_agent() - { - - $this->assertEquals('BaaS-Usergrid/1.0.0', $this->usergrid->getUserAgent()); - } - - /** @test */ - public function it_can_set_the_user_agent() - { - - $this->usergrid->setUserAgent('Foo/Bar'); - - $this->assertEquals('Foo/Bar', $this->usergrid->getUserAgent()); - } - - /** @test */ - public function it_can_retrieve_the_manifest_path() - { - - $this->assertEquals($this->usergrid->getManifestPath(), $this->usergrid->getManifestPath()); - } - - /** @test */ - public function it_can_set_the_manifest_path() - { - $this->usergrid->setManifestPath('/usr/foo/bar'); - - $this->assertEquals('/usr/foo/bar', $this->usergrid->getManifestPath()); - } - - /** @test */ - public function it_can_retrieve_api_version() - { - $this->assertEquals('1.0.1', $this->usergrid->getVersion()); - } - - /** @test */ - public function it_can_set_api_version() - { - $this->usergrid->setVersion('1.0.1'); - - $this->assertEquals('1.0.1', $this->usergrid->getVersion()); - } - - - /** @test */ - public function it_can_retrieve_the_client_header() - { - $headers = $this->usergrid->getHeaders(); - - $expected = [ - 'Usergrid-Version' => '1.0.1', - 'Authorization' => 'Bearer ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890' - ]; - - $this->assertEquals($headers, $expected); - } - - /** @test */ - public function it_can_set_client_headers() - { - $this->usergrid->setHeaders([ - 'some-header' => 'foo-bar', - ]); - - $headers = $this->usergrid->getHeaders(); - - $expected = [ - 'Usergrid-Version' => '1.0.1', - 'Authorization' => 'Bearer ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890', - 'some-header' => 'foo-bar', - ]; - - $this->assertEquals($headers, $expected); - } - - -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Laravel/Facades/UsergridTest.php ---------------------------------------------------------------------- diff --git a/sdks/php5/apache-usergrid/tests/Laravel/Facades/UsergridTest.php b/sdks/php5/apache-usergrid/tests/Laravel/Facades/UsergridTest.php deleted file mode 100644 index 3362bfc..0000000 --- a/sdks/php5/apache-usergrid/tests/Laravel/Facades/UsergridTest.php +++ /dev/null @@ -1,53 +0,0 @@ -<?php -/** - * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ -namespace Apache\Usergrid\Tests\Laravel\Facades; - -use PHPUnit_Framework_TestCase; -use ReflectionClass; - -/** - * Class UsergridTest - * - * @package Apache/Usergrid - * @version 1.0.0 - * @author Jason Kristian <jasonkrist...@gmail.com> - * @license Apache License, Version 2.0 - * @copyright (c) 2008-2014, Baas Platform Pty. Ltd - * @link http://baas-platform.com - */ -class UsergridTest extends PHPUnit_Framework_TestCase -{ - /** @test */ - public function it_can_test_it_is_a_facade() - { - $facade = new ReflectionClass('Illuminate\Support\Facades\Facade'); - - $reflection = new ReflectionClass('Apache\Usergrid\Laravel\Facades\Usergrid'); - - $this->assertTrue($reflection->isSubclassOf($facade)); - } - - /** @test */ - public function it_can_test_it_is_a_facade_accessor() - { - $reflection = new ReflectionClass('Apache\Usergrid\Laravel\Facades\Usergrid'); - - $method = $reflection->getMethod('getFacadeAccessor'); - $method->setAccessible(true); - - - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/bootstrap.php ---------------------------------------------------------------------- diff --git a/sdks/php5/apache-usergrid/tests/bootstrap.php b/sdks/php5/apache-usergrid/tests/bootstrap.php deleted file mode 100644 index edc11d1..0000000 --- a/sdks/php5/apache-usergrid/tests/bootstrap.php +++ /dev/null @@ -1,61 +0,0 @@ -<?php -/** - * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -include('vendor/autoload.php'); - -use Apache\Usergrid\Native\UsergridBootstrapper; - -$config = [ - - 'usergrid' => [ - - 'url' => 'https://api.usergrid.com', - 'version' => '1.0.1', - 'orgName' => null, - 'appName' => null, - 'manifestPath' => null, - //its better not to set the real values here if using laravel set them in a .env file or - // if your not using Laravel set them as environment variable and include them here using $_ENV global. - // so that way you can be sure not to commit privates ID to a public repo - 'clientId' => null, - 'clientSecret' => null, - 'username' => null, - 'password' => null, - /** - * The Auth Type setting is the Oauth 2 end point you want to get the OAuth 2 - * Token from. You have two options here one is 'application' the other is 'organization' - * - * organization will get the the token from http://example.com/management using client_credentials or password grant type - * application will get the token from http://example.com/managment/org_name/app_name using client_credentials or password grant type - */ - 'auth_type' => 'organization', - /** The Grant Type to use - * - * This has to be set to one of the 2 grant types that Apache Usergrid - * supports which at the moment is client_credentials or password but at - * 2 level organization or application - */ - 'grant_type' => 'client_credentials', - /** - * if you want to manage your own auth flow by calling the token api and setting the token your self just set this to false - * */ - 'enable_oauth2_plugin' => true - ] -]; - -$boot = new UsergridBootstrapper($config); -$usergrid = $boot->createUsergrid(); - http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/ruby-on-rails/Gemfile ---------------------------------------------------------------------- diff --git a/sdks/ruby-on-rails/Gemfile b/sdks/ruby-on-rails/Gemfile deleted file mode 100644 index 60aff2b..0000000 --- a/sdks/ruby-on-rails/Gemfile +++ /dev/null @@ -1,19 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -source 'https://rubygems.org' - -# Specify your gem's dependencies in usergrid_ironhorse.gemspec -gemspec http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/ruby-on-rails/LICENSE.txt ---------------------------------------------------------------------- diff --git a/sdks/ruby-on-rails/LICENSE.txt b/sdks/ruby-on-rails/LICENSE.txt deleted file mode 100644 index ae1e83e..0000000 --- a/sdks/ruby-on-rails/LICENSE.txt +++ /dev/null @@ -1,14 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/ruby-on-rails/README.md ---------------------------------------------------------------------- diff --git a/sdks/ruby-on-rails/README.md b/sdks/ruby-on-rails/README.md deleted file mode 100644 index dce855b..0000000 --- a/sdks/ruby-on-rails/README.md +++ /dev/null @@ -1,212 +0,0 @@ -# Apache Usergrid_ironhorse - -Usergrid_ironhorse is based on Usergrid_iron and enables Ruby or Rails applications -native Rails-style access to Apigee's App Services (aka Usergrid) REST API. - -## Compatibility - -**Usergrid_ironhorse is currently only compatible with Ruby on Rails 3.2.** - -Thus, if you are using Rails 4.x, you must use Usergrid_iron (the low-level API for Ruby). -Alternatively, we would welcome your contributions to make Usergrid_ironhorse compatible with Rails 4.x. Thanks! - -## Installation - -Add this line to your application's Gemfile: - - gem 'usergrid_ironhorse' - -And then execute: - - $ bundle - -Or install it yourself as: - - $ gem install usergrid_ironhorse - - -## Usage - -### Not familiar with Usergrid's App Services? - -#### It's great stuff! Check it out, here: - - Docs: <https://usergrid.apache.org/docs/> - Open source: <https://github.com/usergrid/usergrid/> - -### Getting started with the Usergrid_ironhorse SDK is super simple! - -#### Setup - -* Add 'gem usergrid_ironhorse' to your Gemfile -* Create a 'config/usergrid.yml' file that looks something like this (the -auth_token is your application token): - -``` -development: - application_url: http://localhost:8080/my-organization/my-application - client_id: YXA6BVYasLdNEeKBd1A2yYstg - client_secret: YXA60Dnbzaxg1ObkE8ffsIxsGzsSo8 - require_login: false - -test: - application_url: http://localhost:8080/my-organization/my-application - client_id: YXA6BVYasLdNEeKBd1A2yYstg - client_secret: YXA60Dnbzaxg1ObkE8ffsIxsGzsSo8 - require_login: false - -production: - application_url: http://api.usergrid.com/my-organization/my-application - client_id: YXA6BVYasLdNEeKBd1A2yYstg - client_secret: YXA60Dnbzaxg1ObkE8ffsIxsGzsSo8 - require_login: false -``` - -#### Get going! - -* Subclass Usergrid::Ironhorse::Base for your models. -Your models will automatically be stored in a collection according to the name of your -class as defined by Rails' ActiveModel::Naming module. (Which you may override by -implementing model_name if desired.) - -``` -class Developer < Usergrid::Ironhorse::Base - validates :name, :presence => true # Yes, of course you can use validation - -end -``` - -* Now just use the Rails methods you're already familiar with: - -``` - - dev = Developer.new language: 'Ruby' - dev.valid? # nope! - dev.errors # {:name=>["can't be blank"]} - dev.name = 'Scott' - dev.save! - - dev = Developer.find_or_create_by_name 'Scott' - dev.favorite_color = 'green' # assign new attributes automatically - - dev = Developer.find_by_name 'Scott' -``` - -* BTW: If you need to do management tasks, wrapping the work in an as_admin block -will use the auth_token from your settings: - -``` -User.as_admin do - # do protected task -end -``` - - -#### (Optional) Need to have user-specific logins to UserGrid? - -* Create a User model and subclass `Usergrid::Ironhorse::Base` and `extend -Usergrid::Ironhorse::UserContext` like so: - -``` -class User < Usergrid::Ironhorse::Base - extend Usergrid::Ironhorse::UserContext - ... -end -``` - -* Set up your authentication - * Use `User.authenticate(username, password, session)` to login. - * Use `User.clear_authentication(session)` to log out. -* Propogate the authentication in your ApplicationController: - -``` -before_filter :set_user_context -def set_user_context - User.set_context session -end -``` - -* Optionally, if you need to access the User from your view, you may add something -like the following to your ApplicationController: - -``` -helper_method :current_user -def current_user - User.current_user -end -``` - -## Contributing - -We welcome your enhancements! - -1. Fork it -2. Create your feature branch (`git checkout -b my-new-feature`) -3. Write some broken rspecs. -4. Fix the rspecs with your new code. -3. Commit your changes (`git commit -am 'Added some feature'`) -4. Push your changes to the upstream branch (`git push origin my-new-feature`) -5. Create new Pull Request - -We're shooting for 100% rspec coverage, so keep that in mind! - -In order to run the tests, check out the Usergrid open source project -(https://github.com/usergrid/usergrid/), build, and launch it locally. - -(Note: If you change your local Usergrid settings from the default, be sure to update -usergrid_ironhorse/spec/spec_settings.yaml to match.) - - -## Release notes - -### 0.1.1 -* New Features - 1. Now prefer application client_id and client_secret (instead of auth_token) in usergrid.yml. - -### 0.1.0 -* New Features - 1. next_page() added to return the next page of results from the server. An example of this used in conjunction - with to_a() is in base_spec.rb (see "should be able to page through results"). -* Incompatible changes - 1. each() iteration will now transparently cross page boundaries (as generally expected by Rails users). - You may use limit(n) to restrict the result set, but note that limit will retrieve the number of entities - specified as a single batch (no paging). - -### 0.0.5 -* New Features - 1. support MassAssignmentSecurity (attr_accessible & attr_protected) - -### 0.0.4 -* New Features - 1. add require_login to config (with ability to skip individual logins) - -### 0.0.3 -* Internal - 1. Improve authentication and user propagation - -### 0.0.2 -* New Features - 1. Authentication and user propagation features - -### 0.0.1 -* Initial commit - 1. Support for most ActiveModel stuff including Validations - 1. No scoping support - - -## License -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -the ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/ruby-on-rails/Rakefile ---------------------------------------------------------------------- diff --git a/sdks/ruby-on-rails/Rakefile b/sdks/ruby-on-rails/Rakefile deleted file mode 100644 index 632aa48..0000000 --- a/sdks/ruby-on-rails/Rakefile +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env rake -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -require "bundler/gem_tasks" - -require 'rspec/core/rake_task' -RSpec::Core::RakeTask.new(:spec) - -RSpec::Core::RakeTask.new("spec:coverage") http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/ruby-on-rails/lib/extensions/hash.rb ---------------------------------------------------------------------- diff --git a/sdks/ruby-on-rails/lib/extensions/hash.rb b/sdks/ruby-on-rails/lib/extensions/hash.rb deleted file mode 100644 index a82062a..0000000 --- a/sdks/ruby-on-rails/lib/extensions/hash.rb +++ /dev/null @@ -1,23 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -class Hash - - def nested_under_indifferent_access - self - end - -end http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/ruby-on-rails/lib/extensions/resource.rb ---------------------------------------------------------------------- diff --git a/sdks/ruby-on-rails/lib/extensions/resource.rb b/sdks/ruby-on-rails/lib/extensions/resource.rb deleted file mode 100644 index b858b92..0000000 --- a/sdks/ruby-on-rails/lib/extensions/resource.rb +++ /dev/null @@ -1,66 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -# overrides methods dealing with auth_token to operate on a thread basis -module Usergrid - class Resource - - def options - options = @options.clone - require_login = Ironhorse::Base.settings[:require_login] != false - if require_login - auth_token = Thread.current[:usergrid_auth_token] - else - unless Ironhorse::Base.settings[:auth_token] - as_admin {} - end - auth_token = Ironhorse::Base.settings[:auth_token] - end - options[:headers].delete :Authorization - options[:headers][:Authorization] = "Bearer #{auth_token}" if auth_token - options - end - - def as_admin(&block) - save_auth_token = Thread.current[:usergrid_auth_token] - begin - unless Ironhorse::Base.settings[:auth_token] - resource = RestClient::Resource.new Ironhorse::Base.settings[:application_url] - response = resource['token'].post grant_type: 'client_credentials', client_id: Ironhorse::Base.settings[:client_id], client_secret: Ironhorse::Base.settings[:client_secret] - Ironhorse::Base.settings[:auth_token] = MultiJson.load(response)['access_token'] - end - Thread.current[:usergrid_auth_token] = Ironhorse::Base.settings[:auth_token] - yield block - ensure - Thread.current[:usergrid_auth_token] = save_auth_token - end - end - - # gets user token and automatically set auth header for future requests on this Thread - # precondition: resource must already be set to the correct context (application or management) - def login(username, password) - params = { grant_type: "password", username: username, password: password } - response = self['token'].get({ params: params }) - user_uuid = response.data['user']['uuid'] - user_access_token = response.data['access_token'] - Thread.current[:usergrid_user_id] = user_uuid - Thread.current[:usergrid_auth_token] = user_access_token - @current_user = self["/users/#{user_uuid}"].get.entity - response - end - - end -end http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/ruby-on-rails/lib/usergrid_ironhorse.rb ---------------------------------------------------------------------- diff --git a/sdks/ruby-on-rails/lib/usergrid_ironhorse.rb b/sdks/ruby-on-rails/lib/usergrid_ironhorse.rb deleted file mode 100644 index 0dde1d1..0000000 --- a/sdks/ruby-on-rails/lib/usergrid_ironhorse.rb +++ /dev/null @@ -1,39 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -require 'logger' -require 'active_model' -require 'rest-client' -require 'active_support' -require 'usergrid_iron' -require 'active_record/errors' - -module Usergrid - module Ironhorse - - Dir[Pathname.new(File.dirname(__FILE__)).join("extensions/**/*.rb")].each { |f| require f } - - USERGRID_PATH = File.join File.dirname(__FILE__), 'usergrid_ironhorse' - - def self.usergrid_path *path - File.join USERGRID_PATH, *path - end - - require usergrid_path('base') - require usergrid_path('query') - - autoload :UserContext, usergrid_path('user_context') - end -end http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/ruby-on-rails/lib/usergrid_ironhorse/base.rb ---------------------------------------------------------------------- diff --git a/sdks/ruby-on-rails/lib/usergrid_ironhorse/base.rb b/sdks/ruby-on-rails/lib/usergrid_ironhorse/base.rb deleted file mode 100644 index aa6f4d9..0000000 --- a/sdks/ruby-on-rails/lib/usergrid_ironhorse/base.rb +++ /dev/null @@ -1,370 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -require 'active_record/validations' -require 'active_record/errors' -require 'active_record/callbacks' - -module Usergrid - module Ironhorse - - class Base - include ActiveModel::AttributeMethods - include ActiveModel::Conversion - include ActiveModel::Validations - include ActiveModel::Dirty - include ActiveModel::Serialization - include ActiveModel::MassAssignmentSecurity - extend ActiveModel::Naming - extend ActiveModel::Callbacks - - RESERVED_ATTRIBUTES = %w(metadata created modified uuid type uri) - - define_model_callbacks :create, :destroy, :save, :update - - # todo: determine the subset to support... - # unsupported: :group, :joins, :preload, :eager_load, :includes, :from, :lock, - # :having, :create_with, :uniq, :references, :none, :count, - # :average, :minimum, :maximum, :sum, :calculate, :ids - # :find_each, :find_in_batches, :offset, :readonly - - #delegate :find, :take, :take!, :first, :first!, :last, :last!, :exists?, :any?, :many?, :to => :all - #delegate :first_or_create, :first_or_create!, :first_or_initialize, :to => :all - #delegate :find_by, :find_by!, :to => :all - #delegate :destroy, :destroy_all, :delete, :delete_all, :update, :update_all, :to => :all - #delegate :find_each, :find_in_batches, :to => :all - #delegate :select, :group, :order, :except, :reorder, :limit, :offset, - # :where, :preload, :eager_load, :includes, :from, :lock, :readonly, - # :having, :create_with, :uniq, :references, :none, :to => :all - #delegate :count, :average, :minimum, :maximum, :sum, :calculate, :pluck, :ids, :to => :all - - @@settings ||= nil - - attr_accessor :attributes - - HashWithIndifferentAccess = ActiveSupport::HashWithIndifferentAccess - RecordNotSaved = ActiveRecord::RecordNotSaved - - def initialize(attrs=nil) - @attributes = HashWithIndifferentAccess.new - assign_attributes attrs if attrs - end - - def self.configure!(application_url, auth_token) - @@settings = HashWithIndifferentAccess.new application_url: application_url, auth_token: auth_token - end - - def self.settings - return @@settings if @@settings - path = "config/usergrid.yml" - environment = defined?(Rails) && Rails.respond_to?(:env) ? Rails.env : ENV['RACK_ENV'] - @@settings = HashWithIndifferentAccess.new YAML.load(ERB.new(File.new(path).read).result)[environment] - end - - # forward to all - def self.method_missing(method, *args, &block) - all.send method, *args, &block - end - - # forward to all - def method_missing(method, *args, &block) - if args.size == 0 - attributes[method] - elsif args.size == 1 && method[-1] == '=' - attr = method[0..-2] - if attributes[attr] != args[0] - attribute_will_change!(attr) - attributes[attr] = args[0] - end - else - all.send method, *args, &block - end - end - - # todo: scopes - def self.all - unscoped - end - - #def self.scope(symbol, scope) - # @scopes[symbol] = scope - #end - - #def self.current_scope - # @current_scope ||= default_scope - #end - # - #def self.current_scope=(scope) - # @current_scope = scope - #end - # - #def self.default_scope - # @default_scope ||= unscoped - #end - - def self.unscoped - Query.new(self) - end - - def self.create(attributes=nil, options=nil, &block) - if attributes.is_a?(Array) - attributes.collect { |attr| create(attr, options, &block) } - else - object = new(attributes, &block) - object.save - object - end - end - - def self.create!(attributes=nil, options=nil, &block) - if attributes.is_a?(Array) - attributes.collect {|attr| create!(attr, options, &block)} - else - object = new(attributes) - yield(object) if block_given? - object.save! - object - end - end - - def self.class_attributes - @class_attributes ||= {} - end - - # Returns true if the record is persisted, i.e. it's not a new record and it was - # not destroyed, otherwise returns false. - def persisted? - !(new_record? || destroyed?) - end - - def new_record? - !self.uuid - end - - def self.group - model_name.plural.downcase - end - - # Creates a Usergrid::Resource - def self.resource - app = Usergrid::Application.new settings[:application_url] - #app.auth_token = Thread.current[:usergrid_auth_token] - app[group] - end - - # Saves the model. - # - # If the model is new a record gets created in the database, otherwise - # the existing record gets updated. - # - # By default, save always run validations. If any of them fail the action - # is cancelled and +save+ returns +false+. However, if you supply - # :validate => false, validations are bypassed altogether. See - # ActiveRecord::Validations for more information. - # - # There's a series of callbacks associated with +save+. If any of the - # <tt>before_*</tt> callbacks return +false+ the action is cancelled and - # +save+ returns +false+. See ActiveRecord::Callbacks for further - # details. - def save - begin - create_or_update - rescue ActiveRecord::RecordInvalid - false - end - end - - # Saves the model. - # - # If the model is new a record gets created in the database, otherwise - # the existing record gets updated. - # - # With <tt>save!</tt> validations always run. If any of them fail - # ActiveRecord::RecordInvalid gets raised. See ActiveRecord::Validations - # for more information. - # - # There's a series of callbacks associated with <tt>save!</tt>. If any of - # the <tt>before_*</tt> callbacks return +false+ the action is cancelled - # and <tt>save!</tt> raises ActiveRecord::RecordNotSaved. See - # ActiveRecord::Callbacks for further details. - def save! - create_or_update or raise RecordNotSaved - end - - # Deletes the record in the database and freezes this instance to - # reflect that no changes should be made (since they can't be - # persisted). Returns the frozen instance. - # - # The row is simply removed with a +DELETE+ statement on the - # record's primary key, and no callbacks are executed. - # - # To enforce the object's +before_destroy+ and +after_destroy+ - # callbacks, Observer methods, or any <tt>:dependent</tt> association - # options, use <tt>#destroy</tt>. - def delete - self.class.delete(id) if persisted? - @destroyed = true - freeze - end - - # Deletes the record in the database and freezes this instance to reflect - # that no changes should be made (since they can't be persisted). - # - # There's a series of callbacks associated with <tt>destroy</tt>. If - # the <tt>before_destroy</tt> callback return +false+ the action is cancelled - # and <tt>destroy</tt> returns +false+. See - # ActiveRecord::Callbacks for further details. - def destroy - raise ReadOnlyRecord if readonly? - # todo: callbacks? - instance_resource.delete if persisted? - @destroyed = true - freeze - end - - # Deletes the record in the database and freezes this instance to reflect - # that no changes should be made (since they can't be persisted). - # - # There's a series of callbacks associated with <tt>destroy!</tt>. If - # the <tt>before_destroy</tt> callback return +false+ the action is cancelled - # and <tt>destroy!</tt> raises ActiveRecord::RecordNotDestroyed. See - # ActiveRecord::Callbacks for further details. - def destroy! - destroy || raise(ActiveRecord::RecordNotDestroyed) - end - - # Returns true if this object has been destroyed, otherwise returns false. - def destroyed? - !!@destroyed - end - - # Reloads the attributes of this object from the database. - def reload - return false if !persisted? - fresh_object = self.class.find(id) - refresh_data fresh_object.instance_variable_get('@attributes') - self - end - - # Updates the attributes of the model from the passed-in hash and saves the - # record, all wrapped in a transaction. If the object is invalid, the saving - # will fail and false will be returned. - def update_attributes(attributes) - assign_attributes attributes - save - end - - # Updates its receiver just like +update_attributes+ but calls <tt>save!</tt> instead - # of +save+, so an exception is raised if the record is invalid. - def update_attributes!(attributes) - assign_attributes attributes - save! - end - - # Note that whenever you include ActiveModel::AttributeMethods in your class, - # it requires you to implement an +attributes+ method which returns a hash - # with each attribute name in your model as hash key and the attribute value as - # hash value. - # - # Hash keys must be strings. - def attributes - @attributes ||= self.class.class_attributes.clone - end - - def id; self.uuid end - def created_at; self.created end - def updated_at; self.modified end - - - protected - - - def assign_attributes(attrs) - attrs = sanitize_for_mass_assignment(attrs) - attrs.each do |attr,value| - attr = attr.to_s - unless attributes[attr] == value - attribute_will_change!(attr) unless RESERVED_ATTRIBUTES.include? attr - attributes[attr] = value - end - end - end - - def create_or_update - raise ReadOnlyRecord if readonly? - if valid? - run_callbacks :save do - return new_record? ? do_create : do_update - end - end - false - end - - def do_create - group_resource.post(unsaved_attributes) do |resp, req, res, &block| - if resp.code.to_s == "200" || resp.code.to_s == "201" - refresh_data resp.entity_data - return true - else - errors.add(resp.code.to_s, resp) - return false - end - end - end - - def do_update - return false unless changed? - - instance_resource.put(unsaved_attributes) do |resp, req, res, &block| - if resp.code.to_s == "200" || resp.code.to_s == "201" - refresh_data resp.entity_data - return true - else - errors.add(resp.code, resp) - return false - end - end - end - - def unsaved_attributes - HashWithIndifferentAccess[changed.collect {|k| [k, attributes[k]]}] - end - - def group_resource - self.class.resource - end - - def instance_resource - self.class.resource["#{self.id}"] - end - - def refresh_data(entity_data) - @previously_changed = changes - @changed_attributes.clear - @attributes = HashWithIndifferentAccess.new entity_data - end - - def attribute_will_change!(attr) - begin - value = __send__(attr) - value = value.duplicable? ? value.clone : value - rescue TypeError, NoMethodError - end - - changed_attributes[attr] = value unless changed_attributes.include?(attr) - end - end - end -end