Finished user endpoints, started zone ones.

This commit is contained in:
Junade Ali
2017-06-06 17:05:21 +01:00
parent 5fcb00153b
commit bf8716e0b8
14 changed files with 957 additions and 312 deletions

116
.idea/cloudflare-php.iml generated
View File

@@ -1,9 +1,123 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4"> <module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager"> <component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" /> <content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/vendor/composer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/instantiator" />
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/guzzle" />
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/promises" />
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/psr7" />
<excludeFolder url="file://$MODULE_DIR$/vendor/myclabs/deep-copy" />
<excludeFolder url="file://$MODULE_DIR$/vendor/pdepend/pdepend" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-common" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-docblock" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/type-resolver" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpmd/phpmd" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpspec/prophecy" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-code-coverage" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-file-iterator" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-text-template" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-timer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-token-stream" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/phpunit" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/phpunit-mock-objects" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-message" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/comparator" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/diff" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/environment" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/exporter" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/global-state" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/object-enumerator" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/recursion-context" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/resource-operations" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/version" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/config" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/dependency-injection" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/filesystem" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/yaml" />
<excludeFolder url="file://$MODULE_DIR$/vendor/webmozart/assert" />
</content>
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module-library">
<library name="PHP" type="php">
<CLASSES>
<root url="file://$MODULE_DIR$/vendor/composer" />
<root url="file://$MODULE_DIR$/vendor/doctrine/instantiator" />
<root url="file://$MODULE_DIR$/vendor/guzzlehttp/guzzle" />
<root url="file://$MODULE_DIR$/vendor/guzzlehttp/promises" />
<root url="file://$MODULE_DIR$/vendor/guzzlehttp/psr7" />
<root url="file://$MODULE_DIR$/vendor/myclabs/deep-copy" />
<root url="file://$MODULE_DIR$/vendor/pdepend/pdepend" />
<root url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-common" />
<root url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-docblock" />
<root url="file://$MODULE_DIR$/vendor/phpdocumentor/type-resolver" />
<root url="file://$MODULE_DIR$/vendor/phpmd/phpmd" />
<root url="file://$MODULE_DIR$/vendor/phpspec/prophecy" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-code-coverage" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-file-iterator" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-text-template" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-timer" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-token-stream" />
<root url="file://$MODULE_DIR$/vendor/phpunit/phpunit" />
<root url="file://$MODULE_DIR$/vendor/phpunit/phpunit-mock-objects" />
<root url="file://$MODULE_DIR$/vendor/psr/http-message" />
<root url="file://$MODULE_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
<root url="file://$MODULE_DIR$/vendor/sebastian/comparator" />
<root url="file://$MODULE_DIR$/vendor/sebastian/diff" />
<root url="file://$MODULE_DIR$/vendor/sebastian/environment" />
<root url="file://$MODULE_DIR$/vendor/sebastian/exporter" />
<root url="file://$MODULE_DIR$/vendor/sebastian/global-state" />
<root url="file://$MODULE_DIR$/vendor/sebastian/object-enumerator" />
<root url="file://$MODULE_DIR$/vendor/sebastian/recursion-context" />
<root url="file://$MODULE_DIR$/vendor/sebastian/resource-operations" />
<root url="file://$MODULE_DIR$/vendor/sebastian/version" />
<root url="file://$MODULE_DIR$/vendor/symfony/config" />
<root url="file://$MODULE_DIR$/vendor/symfony/dependency-injection" />
<root url="file://$MODULE_DIR$/vendor/symfony/filesystem" />
<root url="file://$MODULE_DIR$/vendor/symfony/yaml" />
<root url="file://$MODULE_DIR$/vendor/webmozart/assert" />
</CLASSES>
<SOURCES>
<root url="file://$MODULE_DIR$/vendor/composer" />
<root url="file://$MODULE_DIR$/vendor/doctrine/instantiator" />
<root url="file://$MODULE_DIR$/vendor/guzzlehttp/guzzle" />
<root url="file://$MODULE_DIR$/vendor/guzzlehttp/promises" />
<root url="file://$MODULE_DIR$/vendor/guzzlehttp/psr7" />
<root url="file://$MODULE_DIR$/vendor/myclabs/deep-copy" />
<root url="file://$MODULE_DIR$/vendor/pdepend/pdepend" />
<root url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-common" />
<root url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-docblock" />
<root url="file://$MODULE_DIR$/vendor/phpdocumentor/type-resolver" />
<root url="file://$MODULE_DIR$/vendor/phpmd/phpmd" />
<root url="file://$MODULE_DIR$/vendor/phpspec/prophecy" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-code-coverage" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-file-iterator" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-text-template" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-timer" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-token-stream" />
<root url="file://$MODULE_DIR$/vendor/phpunit/phpunit" />
<root url="file://$MODULE_DIR$/vendor/phpunit/phpunit-mock-objects" />
<root url="file://$MODULE_DIR$/vendor/psr/http-message" />
<root url="file://$MODULE_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
<root url="file://$MODULE_DIR$/vendor/sebastian/comparator" />
<root url="file://$MODULE_DIR$/vendor/sebastian/diff" />
<root url="file://$MODULE_DIR$/vendor/sebastian/environment" />
<root url="file://$MODULE_DIR$/vendor/sebastian/exporter" />
<root url="file://$MODULE_DIR$/vendor/sebastian/global-state" />
<root url="file://$MODULE_DIR$/vendor/sebastian/object-enumerator" />
<root url="file://$MODULE_DIR$/vendor/sebastian/recursion-context" />
<root url="file://$MODULE_DIR$/vendor/sebastian/resource-operations" />
<root url="file://$MODULE_DIR$/vendor/sebastian/version" />
<root url="file://$MODULE_DIR$/vendor/symfony/config" />
<root url="file://$MODULE_DIR$/vendor/symfony/dependency-injection" />
<root url="file://$MODULE_DIR$/vendor/symfony/filesystem" />
<root url="file://$MODULE_DIR$/vendor/symfony/yaml" />
<root url="file://$MODULE_DIR$/vendor/webmozart/assert" />
</SOURCES>
</library>
</orderEntry>
<orderEntry type="module-library"> <orderEntry type="module-library">
<library name="PHARS"> <library name="PHARS">
<CLASSES> <CLASSES>

13
.idea/misc.xml generated
View File

@@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
<OptionsSetting value="true" id="Add" />
<OptionsSetting value="true" id="Remove" />
<OptionsSetting value="true" id="Checkout" />
<OptionsSetting value="true" id="Update" />
<OptionsSetting value="true" id="Status" />
<OptionsSetting value="true" id="Edit" />
<ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" />
</component>
</project>

5
.idea/php.xml generated
View File

@@ -1,4 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="PhpProjectSharedConfiguration" php_language_level="7.1" /> <component name="PhpProjectSharedConfiguration" php_language_level="7.1" />
<component name="PhpUnit">
<phpunit_settings>
<PhpUnitSettings />
</phpunit_settings>
</component>
</project> </project>

689
.idea/workspace.xml generated
View File

@@ -2,15 +2,18 @@
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="c4689db7-00da-4fe5-bfe8-a51d28f5f0b5" name="Default" comment=""> <list default="true" id="c4689db7-00da-4fe5-bfe8-a51d28f5f0b5" name="Default" comment="">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/vcs.xml" /> <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/Endpoints/EndpointException.php" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/README.md" /> <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/Endpoints/Zones.php" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/Endpoints/API.php" /> <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/tests/Endpoints/ZonesTest.php" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/Endpoints/User.php" /> <change type="DELETED" beforePath="$PROJECT_DIR$/.idea/misc.xml" afterPath="" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/tests/Endpoints/UserTest.php" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/cloudflare-php.iml" afterPath="$PROJECT_DIR$/.idea/cloudflare-php.iml" />
<change type="DELETED" beforePath="$PROJECT_DIR$/src/API.php" afterPath="" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/php.xml" afterPath="$PROJECT_DIR$/.idea/php.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/Adapter/Adapter.php" afterPath="$PROJECT_DIR$/src/Adapter/Adapter.php" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/README.md" afterPath="$PROJECT_DIR$/README.md" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/Adapter/Guzzle.php" afterPath="$PROJECT_DIR$/src/Adapter/Guzzle.php" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/Adapter/Guzzle.php" afterPath="$PROJECT_DIR$/src/Adapter/Guzzle.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/Endpoints/User.php" afterPath="$PROJECT_DIR$/src/Endpoints/User.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/tests/Adapter/GuzzleTest.php" afterPath="$PROJECT_DIR$/tests/Adapter/GuzzleTest.php" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tests/Adapter/GuzzleTest.php" afterPath="$PROJECT_DIR$/tests/Adapter/GuzzleTest.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/tests/Endpoints/UserTest.php" afterPath="$PROJECT_DIR$/tests/Endpoints/UserTest.php" />
</list> </list>
<ignored path="cloudflare-php.iws" /> <ignored path="cloudflare-php.iws" />
<ignored path=".idea/workspace.xml" /> <ignored path=".idea/workspace.xml" />
@@ -30,50 +33,17 @@
<favorites_list name="cloudflare-php" /> <favorites_list name="cloudflare-php" />
</component> </component>
<component name="FileEditorManager"> <component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300" />
<file leaf-file-name="Guzzle.php" pinned="false" current-in-tab="false"> </component>
<entry file="file://$PROJECT_DIR$/src/Adapter/Guzzle.php"> <component name="FindInProjectRecents">
<provider selected="true" editor-type-id="text-editor"> <findStrings>
<state relative-caret-position="756"> <find>var</find>
<caret line="78" column="5" selection-start-line="78" selection-start-column="5" selection-end-line="78" selection-end-column="5" /> <find>var_</find>
<folding> <find>var_u</find>
<element signature="e#102#131#0#PHP" expanded="true" /> <find>var_d</find>
</folding> <find>var_du</find>
</state> <find>var_dum</find>
</provider> </findStrings>
</entry>
</file>
<file leaf-file-name="API.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/Endpoints/API.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="150">
<caret line="14" column="4" selection-start-line="14" selection-start-column="4" selection-end-line="14" selection-end-column="4" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="User.php" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/Endpoints/User.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="300">
<caret line="24" column="45" selection-start-line="24" selection-start-column="45" selection-end-line="24" selection-end-column="45" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="UserTest.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/tests/Endpoints/UserTest.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="225">
<caret line="15" column="32" selection-start-line="15" selection-start-column="32" selection-end-line="15" selection-end-column="32" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component> </component>
<component name="Git.Settings"> <component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
@@ -90,13 +60,23 @@
<option value="$PROJECT_DIR$/tests/Auth/UserServiceKeyTest.php" /> <option value="$PROJECT_DIR$/tests/Auth/UserServiceKeyTest.php" />
<option value="$PROJECT_DIR$/src/API.php" /> <option value="$PROJECT_DIR$/src/API.php" />
<option value="$PROJECT_DIR$/src/Adapter/Adapter.php" /> <option value="$PROJECT_DIR$/src/Adapter/Adapter.php" />
<option value="$PROJECT_DIR$/src/Adapter/Guzzle.php" />
<option value="$PROJECT_DIR$/tests/Adapter/GuzzleTest.php" />
<option value="$PROJECT_DIR$/README.md" />
<option value="$PROJECT_DIR$/src/Auth/Auth.php" /> <option value="$PROJECT_DIR$/src/Auth/Auth.php" />
<option value="$PROJECT_DIR$/src/Endpoints/API.php" /> <option value="$PROJECT_DIR$/src/Endpoints/API.php" />
<option value="$PROJECT_DIR$/tests/Endpoints/UserTest.php" /> <option value="$PROJECT_DIR$/src/Adapter/Response.php" />
<option value="$PROJECT_DIR$/src/ResponseProcessor/Processor.php" />
<option value="$PROJECT_DIR$/src/ResponseProcessor/ResponseException.php" />
<option value="$PROJECT_DIR$/src/Adapter/GuzzleException.php" />
<option value="$PROJECT_DIR$/src/Adapter/ServerException.php" />
<option value="$PROJECT_DIR$/src/Adapter/JSONException.php" />
<option value="$PROJECT_DIR$/src/Adapter/ResponseException.php" />
<option value="$PROJECT_DIR$/README.md" />
<option value="$PROJECT_DIR$/src/Endpoints/EndpointException.php" />
<option value="$PROJECT_DIR$/src/Endpoints/User.php" /> <option value="$PROJECT_DIR$/src/Endpoints/User.php" />
<option value="$PROJECT_DIR$/tests/Adapter/GuzzleTest.php" />
<option value="$PROJECT_DIR$/src/Adapter/Guzzle.php" />
<option value="$PROJECT_DIR$/tests/Endpoints/UserTest.php" />
<option value="$PROJECT_DIR$/tests/Endpoints/ZonesTest.php" />
<option value="$PROJECT_DIR$/src/Endpoints/Zones.php" />
</list> </list>
</option> </option>
</component> </component>
@@ -106,20 +86,48 @@
<detection-done>true</detection-done> <detection-done>true</detection-done>
<sorting>DEFINITION_ORDER</sorting> <sorting>DEFINITION_ORDER</sorting>
</component> </component>
<component name="PhpWorkspaceProjectConfiguration" backward_compatibility_performed="true" interpreter_name="PHP Homebrew" /> <component name="PhpWorkspaceProjectConfiguration" backward_compatibility_performed="true" interpreter_name="PHP 7.1">
<component name="ProjectFrameBounds"> <include_path>
<option name="width" value="1280" /> <path value="$PROJECT_DIR$/vendor/phpunit/php-timer" />
<option name="height" value="800" /> <path value="$PROJECT_DIR$/vendor/phpunit/php-file-iterator" />
<path value="$PROJECT_DIR$/vendor/phpspec/prophecy" />
<path value="$PROJECT_DIR$/vendor/pdepend/pdepend" />
<path value="$PROJECT_DIR$/vendor/myclabs/deep-copy" />
<path value="$PROJECT_DIR$/vendor/phpmd/phpmd" />
<path value="$PROJECT_DIR$/vendor/psr/http-message" />
<path value="$PROJECT_DIR$/vendor/symfony/config" />
<path value="$PROJECT_DIR$/vendor/symfony/dependency-injection" />
<path value="$PROJECT_DIR$/vendor/phpunit/phpunit" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-code-coverage" />
<path value="$PROJECT_DIR$/vendor/phpunit/phpunit-mock-objects" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-token-stream" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-text-template" />
<path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-common" />
<path value="$PROJECT_DIR$/vendor/phpdocumentor/type-resolver" />
<path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-docblock" />
<path value="$PROJECT_DIR$/vendor/guzzlehttp/promises" />
<path value="$PROJECT_DIR$/vendor/guzzlehttp/psr7" />
<path value="$PROJECT_DIR$/vendor/guzzlehttp/guzzle" />
<path value="$PROJECT_DIR$/vendor/composer" />
<path value="$PROJECT_DIR$/vendor/webmozart/assert" />
<path value="$PROJECT_DIR$/vendor/sebastian/version" />
<path value="$PROJECT_DIR$/vendor/sebastian/diff" />
<path value="$PROJECT_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
<path value="$PROJECT_DIR$/vendor/sebastian/resource-operations" />
<path value="$PROJECT_DIR$/vendor/sebastian/object-enumerator" />
<path value="$PROJECT_DIR$/vendor/sebastian/recursion-context" />
<path value="$PROJECT_DIR$/vendor/sebastian/exporter" />
<path value="$PROJECT_DIR$/vendor/sebastian/environment" />
<path value="$PROJECT_DIR$/vendor/sebastian/comparator" />
<path value="$PROJECT_DIR$/vendor/sebastian/global-state" />
<path value="$PROJECT_DIR$/vendor/doctrine/instantiator" />
<path value="$PROJECT_DIR$/vendor/symfony/yaml" />
<path value="$PROJECT_DIR$/vendor/symfony/filesystem" />
</include_path>
</component> </component>
<component name="ProjectLevelVcsManager" settingsEditedManually="false"> <component name="ProjectFrameBounds">
<OptionsSetting value="true" id="Add" /> <option name="width" value="1920" />
<OptionsSetting value="true" id="Remove" /> <option name="height" value="1080" />
<OptionsSetting value="true" id="Checkout" />
<OptionsSetting value="true" id="Update" />
<OptionsSetting value="true" id="Status" />
<OptionsSetting value="true" id="Edit" />
<ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" />
</component> </component>
<component name="ProjectView"> <component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1"> <navigator currentView="ProjectPane" proportions="" version="1">
@@ -136,14 +144,9 @@
<foldersAlwaysOnTop value="true" /> <foldersAlwaysOnTop value="true" />
</navigator> </navigator>
<panes> <panes>
<pane id="Scope" />
<pane id="ProjectPane"> <pane id="ProjectPane">
<subPane> <subPane>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="cloudflare-php" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
</PATH>
<PATH> <PATH>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="cloudflare-php" /> <option name="myItemId" value="cloudflare-php" />
@@ -264,26 +267,53 @@
</PATH> </PATH>
</subPane> </subPane>
</pane> </pane>
<pane id="Scope" />
<pane id="Scratches" /> <pane id="Scratches" />
</panes> </panes>
</component> </component>
<component name="PropertiesComponent"> <component name="PropertiesComponent">
<property name="last_opened_file_path" value="/usr/local/Cellar/php71/7.1.0-beta.1_2/bin/php" /> <property name="last_opened_file_path" value="/usr/local/Cellar/php71/7.1.0-beta.1_2/bin/php" />
<property name="nodejs_interpreter_path" value="/usr/local/bin/node" /> <property name="nodejs_interpreter_path" value="/usr/local/bin/node" />
<property name="settings.editor.selected.configurable" value="com.jetbrains.php.tools.quality.phpcs.PhpCSConfigurable" /> <property name="settings.editor.selected.configurable" value="reference.webide.settings.project.settings.php" />
<property name="settings.editor.splitter.proportion" value="0.2" />
<property name="WebServerToolWindowFactoryState" value="false" /> <property name="WebServerToolWindowFactoryState" value="false" />
<property name="FullScreen" value="true" />
<property name="js-jscs-nodeInterpreter" value="/usr/local/bin/node" /> <property name="js-jscs-nodeInterpreter" value="/usr/local/bin/node" />
<property name="php.override.implement.member.chooser.php.doc" value="INHERIT" /> <property name="php.override.implement.member.chooser.php.doc" value="INHERIT" />
<property name="FullScreen" value="true" />
</component> </component>
<component name="RecentsManager"> <component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS"> <key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/src/Auth" /> <recent name="$PROJECT_DIR$/src/Auth" />
</key> </key>
</component> </component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager"> <component name="RunManager">
<configuration default="true" type="CodeceptionConfigurationType" factoryName="Codeception">
<PhpTestRunnerSettings />
<method />
</configuration>
<configuration default="true" type="JavaScriptTestRunnerJest" factoryName="Jest">
<node-interpreter value="project" />
<working-dir value="" />
<envs />
<scope-kind value="ALL" />
<method />
</configuration>
<configuration default="true" type="JavaScriptTestRunnerProtractor" factoryName="Protractor">
<config-file value="" />
<node-interpreter value="project" />
<envs />
<method />
</configuration>
<configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug"> <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
<method /> <method />
</configuration> </configuration>
@@ -301,6 +331,10 @@
<configuration default="true" type="PhpLocalRunConfigurationType" factoryName="PHP Console"> <configuration default="true" type="PhpLocalRunConfigurationType" factoryName="PHP Console">
<method /> <method />
</configuration> </configuration>
<configuration default="true" type="PhpSpecConfigurationType" factoryName="PHPSpec">
<PhpTestRunnerSettings />
<method />
</configuration>
<configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js"> <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
<node-interpreter>project</node-interpreter> <node-interpreter>project</node-interpreter>
<node-options /> <node-options />
@@ -311,7 +345,7 @@
<method /> <method />
</configuration> </configuration>
<configuration default="true" type="js.build_tools.npm" factoryName="npm"> <configuration default="true" type="js.build_tools.npm" factoryName="npm">
<command value="run-script" /> <command value="run" />
<scripts /> <scripts />
<node-interpreter value="project" /> <node-interpreter value="project" />
<envs /> <envs />
@@ -346,6 +380,14 @@
<workItem from="1484735410563" duration="623000" /> <workItem from="1484735410563" duration="623000" />
<workItem from="1485039426533" duration="1315000" /> <workItem from="1485039426533" duration="1315000" />
<workItem from="1485944361031" duration="6401000" /> <workItem from="1485944361031" duration="6401000" />
<workItem from="1492274058792" duration="6380000" />
<workItem from="1492779820756" duration="6541000" />
<workItem from="1492871548791" duration="388000" />
<workItem from="1493840656477" duration="118000" />
<workItem from="1494067284208" duration="783000" />
<workItem from="1494118037959" duration="133000" />
<workItem from="1494733352913" duration="14000" />
<workItem from="1496751055934" duration="9942000" />
</task> </task>
<task id="LOCAL-00001" summary="Initial commit, WIP."> <task id="LOCAL-00001" summary="Initial commit, WIP.">
<created>1484351548066</created> <created>1484351548066</created>
@@ -358,32 +400,34 @@
<servers /> <servers />
</component> </component>
<component name="TimeTrackingManager"> <component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="18371000" /> <option name="totallyTimeSpent" value="46702000" />
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="0" y="0" width="1280" height="800" extended-state="0" /> <frame x="0" y="0" width="1920" height="1080" extended-state="0" />
<editor active="true" />
<layout> <layout>
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32578126" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" /> <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24427083" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Docker" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" /> <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" /> <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" /> <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Docker" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
</layout> </layout>
</component> </component>
<component name="TypeScriptGeneratedFilesManager">
<option name="processedProjectFiles" value="true" />
</component>
<component name="Vcs.Log.UiProperties"> <component name="Vcs.Log.UiProperties">
<option name="RECENTLY_FILTERED_USER_GROUPS"> <option name="RECENTLY_FILTERED_USER_GROUPS">
<collection /> <collection />
@@ -401,189 +445,16 @@
</component> </component>
<component name="XDebuggerManager"> <component name="XDebuggerManager">
<breakpoint-manager> <breakpoint-manager>
<option name="time" value="1" /> <option name="time" value="2" />
</breakpoint-manager> </breakpoint-manager>
<watches-manager /> <watches-manager />
</component> </component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/Adapter/Guzzle.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="405">
<caret line="32" column="4" selection-start-line="32" selection-start-column="4" selection-end-line="32" selection-end-column="4" />
<folding>
<element signature="e#102#131#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Auth/UserServiceKey.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="225">
<caret line="19" column="30" selection-start-line="19" selection-start-column="20" selection-end-line="19" selection-end-column="30" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/tests/Adapter/GuzzleTest.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="225">
<caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Adapter/Guzzle.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="e#102#131#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/tests/Adapter/GuzzleTest.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="225">
<caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/composer.lock">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="281">
<caret line="138" column="16" selection-start-line="138" selection-start-column="16" selection-end-line="138" selection-end-column="42" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/phpunit.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="32">
<caret line="1" column="41" selection-start-line="1" selection-start-column="41" selection-end-line="1" selection-end-column="41" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/psr/http-message/src/MessageInterface.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="318">
<caret line="99" column="17" selection-start-line="99" selection-start-column="14" selection-end-line="99" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/psr/http-message/src/RequestInterface.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="414">
<caret line="23" column="10" selection-start-line="23" selection-start-column="10" selection-end-line="23" selection-end-column="10" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/guzzlehttp/guzzle/src/ClientInterface.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="372">
<caret line="26" column="36" selection-start-line="26" selection-start-column="36" selection-end-line="26" selection-end-column="36" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/composer.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="165">
<caret line="11" column="29" selection-start-line="11" selection-start-column="29" selection-end-line="11" selection-end-column="29" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/tests/Auth/APIKeyTest.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="135">
<caret line="9" column="0" selection-start-line="9" selection-start-column="0" selection-end-line="22" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="8" selection-start-line="0" selection-start-column="8" selection-end-line="0" selection-end-column="8" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/psr/http-message/src/ResponseInterface.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="285">
<caret line="19" column="10" selection-start-line="19" selection-start-column="10" selection-end-line="19" selection-end-column="10" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/phpunit/phpunit/src/Framework/TestCase.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="241">
<caret line="1527" column="20" selection-start-line="1527" selection-start-column="20" selection-end-line="1527" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/tests/Auth/UserServiceKeyTest.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="210">
<caret line="14" column="57" selection-start-line="14" selection-start-column="57" selection-end-line="14" selection-end-column="57" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/phpunit/phpunit/src/Framework/Assert.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="335">
<caret line="502" column="27" selection-start-line="502" selection-start-column="27" selection-end-line="502" selection-end-column="27" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/guzzlehttp/guzzle/src/Client.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="11" column="32" selection-start-line="11" selection-start-column="10" selection-end-line="11" selection-end-column="32" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Auth/APIKey.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="345">
<caret line="27" column="5" selection-start-line="27" selection-start-column="5" selection-end-line="27" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Auth/UserServiceKey.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="225">
<caret line="19" column="30" selection-start-line="19" selection-start-column="20" selection-end-line="19" selection-end-column="30" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/API.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="300">
<caret line="24" column="5" selection-start-line="24" selection-start-column="5" selection-end-line="24" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/tests/Adapter/GuzzleTest.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1020">
<caret line="68" column="44" selection-start-line="68" selection-start-column="44" selection-end-line="68" selection-end-column="44" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/README.md"> <entry file="file://$PROJECT_DIR$/README.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT"> <state split_layout="SPLIT">
<first_editor relative-caret-position="270"> <first_editor relative-caret-position="270">
<caret line="18" column="13" selection-start-line="18" selection-start-column="13" selection-end-line="18" selection-end-column="13" /> <caret line="18" column="13" lean-forward="false" selection-start-line="18" selection-start-column="13" selection-end-line="18" selection-end-column="13" />
<folding />
</first_editor> </first_editor>
<second_editor /> <second_editor />
</state> </state>
@@ -592,17 +463,17 @@
<entry file="file://$PROJECT_DIR$/src/Auth/Auth.php"> <entry file="file://$PROJECT_DIR$/src/Auth/Auth.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="105"> <state relative-caret-position="105">
<caret line="11" column="1" selection-start-line="11" selection-start-column="1" selection-end-line="11" selection-end-column="1" /> <caret line="11" column="1" lean-forward="false" selection-start-line="11" selection-start-column="1" selection-end-line="11" selection-end-column="1" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/Adapter/Guzzle.php"> <entry file="file://$PROJECT_DIR$/src/Adapter/Guzzle.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="756"> <state relative-caret-position="1080">
<caret line="78" column="5" selection-start-line="78" selection-start-column="5" selection-end-line="78" selection-end-column="5" /> <caret line="78" column="5" lean-forward="false" selection-start-line="78" selection-start-column="5" selection-end-line="78" selection-end-column="5" />
<folding> <folding>
<element signature="e#102#131#0#PHP" expanded="true" /> <element signature="e#102#131#0#PHP" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@@ -610,7 +481,7 @@
<entry file="file://$PROJECT_DIR$/src/Endpoints/API.php"> <entry file="file://$PROJECT_DIR$/src/Endpoints/API.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="150"> <state relative-caret-position="150">
<caret line="14" column="4" selection-start-line="14" selection-start-column="4" selection-end-line="14" selection-end-column="4" /> <caret line="14" column="4" lean-forward="false" selection-start-line="14" selection-start-column="4" selection-end-line="14" selection-end-column="4" />
<folding /> <folding />
</state> </state>
</provider> </provider>
@@ -618,17 +489,15 @@
<entry file="file://$PROJECT_DIR$/src/Adapter/Adapter.php"> <entry file="file://$PROJECT_DIR$/src/Adapter/Adapter.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="360"> <state relative-caret-position="360">
<caret line="37" column="20" selection-start-line="37" selection-start-column="20" selection-end-line="37" selection-end-column="20" /> <caret line="37" column="20" lean-forward="false" selection-start-line="37" selection-start-column="20" selection-end-line="37" selection-end-column="20" />
<folding> <folding />
<element signature="e#101#130#0#PHP" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/tests/Endpoints/UserTest.php"> <entry file="file://$PROJECT_DIR$/tests/Endpoints/UserTest.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="225"> <state relative-caret-position="225">
<caret line="15" column="32" selection-start-line="15" selection-start-column="32" selection-end-line="15" selection-end-column="32" /> <caret line="15" column="32" lean-forward="false" selection-start-line="15" selection-start-column="32" selection-end-line="15" selection-end-column="32" />
<folding /> <folding />
</state> </state>
</provider> </provider>
@@ -636,7 +505,279 @@
<entry file="file://$PROJECT_DIR$/src/Endpoints/User.php"> <entry file="file://$PROJECT_DIR$/src/Endpoints/User.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="300"> <state relative-caret-position="300">
<caret line="24" column="45" selection-start-line="24" selection-start-column="45" selection-end-line="24" selection-end-column="45" /> <caret line="24" column="45" lean-forward="false" selection-start-line="24" selection-start-column="45" selection-end-line="24" selection-end-column="45" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Adapter/Guzzle.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="405">
<caret line="32" column="4" lean-forward="false" selection-start-line="32" selection-start-column="4" selection-end-line="32" selection-end-column="4" />
<folding>
<element signature="e#102#131#0#PHP" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Auth/UserServiceKey.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="225">
<caret line="19" column="30" lean-forward="false" selection-start-line="19" selection-start-column="20" selection-end-line="19" selection-end-column="30" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/tests/Adapter/GuzzleTest.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="225">
<caret line="15" column="0" lean-forward="false" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Adapter/Guzzle.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="e#102#131#0#PHP" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/tests/Adapter/GuzzleTest.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="225">
<caret line="15" column="0" lean-forward="false" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/psr/http-message/src/RequestInterface.php" />
<entry file="file://$PROJECT_DIR$/vendor/guzzlehttp/guzzle/src/ClientInterface.php" />
<entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="8" lean-forward="false" selection-start-line="0" selection-start-column="8" selection-end-line="0" selection-end-column="8" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/phpunit/phpunit/src/Framework/TestCase.php" />
<entry file="file://$PROJECT_DIR$/vendor/phpunit/phpunit/src/Framework/Assert.php" />
<entry file="file://$PROJECT_DIR$/vendor/guzzlehttp/guzzle/src/Client.php" />
<entry file="file://$PROJECT_DIR$/src/API.php" />
<entry file="file://$PROJECT_DIR$/src/Adapter/Response.php" />
<entry file="jar://$APPLICATION_HOME_DIR$/plugins/php/lib/php.jar!/stubs/Core/Core_c.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-268">
<caret line="258" column="6" lean-forward="false" selection-start-line="258" selection-start-column="6" selection-end-line="258" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/ResponseProcessor/ResponseException.php" />
<entry file="file://$PROJECT_DIR$/src/ResponseProcessor/Processor.php" />
<entry file="file://$PROJECT_DIR$/vendor/psr/http-message/src/MessageInterface.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="483">
<caret line="170" column="20" lean-forward="false" selection-start-line="170" selection-start-column="20" selection-end-line="170" selection-end-column="20" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Adapter/ClientException.php" />
<entry file="file://$PROJECT_DIR$/vendor/psr/http-message/src/ResponseInterface.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="276">
<caret line="29" column="20" lean-forward="false" selection-start-line="29" selection-start-column="20" selection-end-line="29" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Adapter/ServerException.php" />
<entry file="jar://$APPLICATION_HOME_DIR$/plugins/php/lib/php.jar!/stubs/Reflection/Reflection.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="276">
<caret line="1004" column="20" lean-forward="false" selection-start-line="1004" selection-start-column="20" selection-end-line="1004" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/tests/Auth/UserServiceKeyTest.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="210">
<caret line="14" column="57" lean-forward="false" selection-start-line="14" selection-start-column="57" selection-end-line="14" selection-end-column="57" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/tests/Auth/APIKeyTest.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270">
<caret line="18" column="66" lean-forward="false" selection-start-line="18" selection-start-column="29" selection-end-line="18" selection-end-column="66" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Adapter/ResponseException.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="11" column="42" lean-forward="false" selection-start-line="11" selection-start-column="42" selection-end-line="11" selection-end-column="42" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/phpunit.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="15">
<caret line="1" column="41" lean-forward="false" selection-start-line="1" selection-start-column="41" selection-end-line="1" selection-end-column="41" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/composer.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="165">
<caret line="11" column="29" lean-forward="false" selection-start-line="11" selection-start-column="29" selection-end-line="11" selection-end-column="29" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Auth/Auth.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="10" column="10" lean-forward="false" selection-start-line="10" selection-start-column="10" selection-end-line="10" selection-end-column="10" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/composer.lock">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="281">
<caret line="138" column="16" lean-forward="false" selection-start-line="138" selection-start-column="16" selection-end-line="138" selection-end-column="42" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/README.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT">
<first_editor relative-caret-position="315">
<caret line="21" column="13" lean-forward="true" selection-start-line="21" selection-start-column="13" selection-end-line="21" selection-end-column="13" />
<folding />
</first_editor>
<second_editor />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/InvocationMocker.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="336">
<caret line="229" column="20" lean-forward="false" selection-start-line="229" selection-start-column="20" selection-end-line="229" selection-end-column="20" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Auth/UserServiceKey.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="225">
<caret line="19" column="30" lean-forward="false" selection-start-line="19" selection-start-column="20" selection-end-line="19" selection-end-column="30" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Auth/APIKey.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="345">
<caret line="27" column="5" lean-forward="false" selection-start-line="27" selection-start-column="5" selection-end-line="27" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Adapter/Guzzle.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="834">
<caret line="123" column="54" lean-forward="true" selection-start-line="123" selection-start-column="54" selection-end-line="123" selection-end-column="54" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Adapter/JSONException.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="11" column="38" lean-forward="false" selection-start-line="11" selection-start-column="38" selection-end-line="11" selection-end-column="38" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/tests/Adapter/GuzzleTest.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1802">
<caret line="110" column="27" lean-forward="false" selection-start-line="110" selection-start-column="27" selection-end-line="110" selection-end-column="27" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Endpoints/EndpointException.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="11" column="42" lean-forward="false" selection-start-line="11" selection-start-column="42" selection-end-line="11" selection-end-column="42" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Endpoints/API.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="165">
<caret line="15" column="1" lean-forward="true" selection-start-line="15" selection-start-column="1" selection-end-line="15" selection-end-column="1" />
<folding />
</state>
</provider>
</entry>
<entry file="jar://$APPLICATION_HOME_DIR$/plugins/php/lib/php.jar!/stubs/standard/standard_8.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="459">
<caret line="1015" column="9" lean-forward="false" selection-start-line="1015" selection-start-column="9" selection-end-line="1015" selection-end-column="9" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Adapter/Adapter.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="498">
<caret line="46" column="20" lean-forward="false" selection-start-line="46" selection-start-column="20" selection-end-line="46" selection-end-column="20" />
<folding />
</state>
</provider>
</entry>
<entry file="jar://$APPLICATION_HOME_DIR$/plugins/php/lib/php.jar!/stubs/standard/_types.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="390">
<caret line="105" column="13" lean-forward="false" selection-start-line="105" selection-start-column="13" selection-end-line="105" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Endpoints/Zones.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="650">
<caret line="31" column="53" lean-forward="false" selection-start-line="31" selection-start-column="53" selection-end-line="31" selection-end-column="53" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/tests/Endpoints/ZonesTest.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1365">
<caret line="96" column="92" lean-forward="false" selection-start-line="96" selection-start-column="92" selection-end-line="96" selection-end-column="92" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/tests/Endpoints/UserTest.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="774">
<caret line="128" column="8" lean-forward="true" selection-start-line="128" selection-start-column="8" selection-end-line="130" selection-end-column="113" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Endpoints/User.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="606">
<caret line="32" column="0" lean-forward="true" selection-start-line="32" selection-start-column="0" selection-end-line="32" selection-end-column="0" />
<folding /> <folding />
</state> </state>
</provider> </provider>

View File

@@ -1,4 +1,4 @@
# cloudflare-php # Cloudflare v4 API Binding for PHP 7
## Installation ## Installation
@@ -8,12 +8,15 @@ The recommended way to install this package is via the Packagist Dependency Mana
The Cloudflare API can be found [here](https://api.cloudflare.com/). The Cloudflare API can be found [here](https://api.cloudflare.com/).
Each API call is provided via a similarly named function within the **CloudFlare** class. Each API call is provided via a similarly named function within the **CloudFlare** class.
A full list is provided below.
## Example code
All example code is available on GitHub (see [package](https://github.com/cloudflare/python-cloudflare) in the [examples](https://github.com/cloudflare/python-cloudflare/tree/master/examples) folder.
## Getting Started ## Getting Started
```php
$key = new \Cloudflare\API\Auth\APIKey('user@example.com', 'apiKey');
$adapter = new Cloudflare\API\Adapter\Guzzle($key);
$user = new \Cloudflare\API\Endpoints\User($adapter);
echo $user->getUserID();
```
## Licensing ## Licensing

View File

@@ -25,8 +25,8 @@ class Guzzle implements Adapter
$this->client = new Client([ $this->client = new Client([
'base_uri' => $baseURI, 'base_uri' => $baseURI,
'headers' => $headers, 'headers' => $headers,
'Accept' => 'application/json' 'Accept' => 'application/json'
]); ]);
} }
@@ -38,6 +38,7 @@ class Guzzle implements Adapter
{ {
$response = $this->client->get($uri, ['headers' => $headers]); $response = $this->client->get($uri, ['headers' => $headers]);
$this->checkError($response);
return $response; return $response;
} }
@@ -48,11 +49,12 @@ class Guzzle implements Adapter
public function post(String $uri, array $headers = array(), array $body = array()): ResponseInterface public function post(String $uri, array $headers = array(), array $body = array()): ResponseInterface
{ {
$response = $this->client->post($uri, [ $response = $this->client->post($uri, [
'headers' => $headers, 'headers' => $headers,
'form_params' => $body 'form_params' => $body
] ]
); );
$this->checkError($response);
return $response; return $response;
} }
@@ -65,10 +67,11 @@ class Guzzle implements Adapter
$response = $this->client->put($uri, [ $response = $this->client->put($uri, [
'headers' => $headers, 'headers' => $headers,
'body' => $jsonBody 'body' => $jsonBody
] ]
); );
$this->checkError($response);
return $response; return $response;
} }
@@ -81,10 +84,11 @@ class Guzzle implements Adapter
$response = $this->client->patch($uri, [ $response = $this->client->patch($uri, [
'headers' => $headers, 'headers' => $headers,
'body' => $jsonBody 'body' => $jsonBody
] ]
); );
$this->checkError($response);
return $response; return $response;
} }
@@ -94,11 +98,31 @@ class Guzzle implements Adapter
public function delete(String $uri, array $headers = array(), array $body = array()): ResponseInterface public function delete(String $uri, array $headers = array(), array $body = array()): ResponseInterface
{ {
$response = $this->client->delete($uri, [ $response = $this->client->delete($uri, [
'headers' => $headers, 'headers' => $headers,
'form_params' => $body 'form_params' => $body
] ]
); );
$this->checkError($response);
return $response; return $response;
} }
private function checkError(ResponseInterface $response)
{
$json = json_decode($response->getBody());
if (json_last_error() !== JSON_ERROR_NONE) {
throw new JSONException();
}
if (isset($json->errors)) {
foreach ($json->errors as $error) {
throw new ResponseException($error->message, $error->code);
}
}
if (isset($json->success) && ($json->success === false)) {
throw new ResponseException("Request was unsuccessful.");
}
}
} }

View File

@@ -0,0 +1,15 @@
<?php
/**
* Created by PhpStorm.
* User: junade
* Date: 21/04/2017
* Time: 06:52
*/
namespace Cloudflare\API\Adapter;
class JSONException extends \Exception
{
}

View File

@@ -0,0 +1,15 @@
<?php
/**
* Created by PhpStorm.
* User: junade
* Date: 21/04/2017
* Time: 07:23
*/
namespace Cloudflare\API\Adapter;
class ResponseException extends \Exception
{
}

View File

@@ -0,0 +1,15 @@
<?php
/**
* Created by PhpStorm.
* User: junade
* Date: 06/06/2017
* Time: 14:24
*/
namespace Cloudflare\API\Endpoints;
class EndpointException extends \Exception
{
}

View File

@@ -19,10 +19,26 @@ class User implements API
$this->adapter = $adapter; $this->adapter = $adapter;
} }
public function getUserDetails() public function getUserDetails(): \stdClass
{ {
$user = $this->adapter->get('user', []); $user = $this->adapter->get('user', []);
$body = json_decode($user->getBody()); $body = json_decode($user->getBody());
var_dump($body); return $body->result;
}
public function getUserID(): string
{
return ($this->getUserDetails())->id;
}
public function getUserEmail(): string
{
return ($this->getUserDetails())->email;
}
public function updateUserDetails(array $details): \stdClass
{
$response = $this->adapter->patch("user", [], $details);
return json_decode($response->getBody());
} }
} }

39
src/Endpoints/Zones.php Normal file
View File

@@ -0,0 +1,39 @@
<?php
/**
* Created by PhpStorm.
* User: junade
* Date: 06/06/2017
* Time: 15:45
*/
namespace Cloudflare\API\Endpoints;
use Cloudflare\API\Adapter\Adapter;
class Zones implements API
{
private $adapter;
public function __construct(Adapter $adapter)
{
$this->adapter = $adapter;
}
public function addZone(string $name, bool $jumpstart = false, string $organizationID = ''): \stdClass
{
$options = [
'name' => $name,
'jumpstart' => $jumpstart
];
if (!empty($organizationID)) {
$organization = new \stdClass();
$organization->id = $organizationID;
$options["organization"] = $organization;
}
$user = $this->adapter->post('zones', [], $options);
$body = json_decode($user->getBody());
return $body->result;
}
}

View File

@@ -5,6 +5,9 @@
* Date: 13/01/2017 * Date: 13/01/2017
* Time: 23:35 * Time: 23:35
*/ */
use GuzzleHttp\Psr7\Response;
class GuzzleTest extends PHPUnit_Framework_TestCase class GuzzleTest extends PHPUnit_Framework_TestCase
{ {
private $client; private $client;
@@ -12,11 +15,11 @@ class GuzzleTest extends PHPUnit_Framework_TestCase
public function setUp() public function setUp()
{ {
$auth = $this->getMockBuilder(\Cloudflare\API\Auth\Auth::class) $auth = $this->getMockBuilder(\Cloudflare\API\Auth\Auth::class)
->setMethods(['getHeaders']) ->setMethods(['getHeaders'])
->getMock(); ->getMock();
$auth->method('getHeaders') $auth->method('getHeaders')
->willReturn(['X-Testing' => 'Test']); ->willReturn(['X-Testing' => 'Test']);
$this->client = new \Cloudflare\API\Adapter\Guzzle($auth, 'https://httpbin.org/'); $this->client = new \Cloudflare\API\Adapter\Guzzle($auth, 'https://httpbin.org/');
} }
@@ -32,7 +35,7 @@ class GuzzleTest extends PHPUnit_Framework_TestCase
$this->assertEquals("Test", $body->headers->{"X-Testing"}); $this->assertEquals("Test", $body->headers->{"X-Testing"});
$response = $this->client->get('https://httpbin.org/get', ['X-Another-Test' => 'Test2']); $response = $this->client->get('https://httpbin.org/get', ['X-Another-Test' => 'Test2']);
$body = json_decode($response->getBody()); $body = json_decode($response->getBody());
$this->assertEquals("Test2", $body->headers->{"X-Another-Test"}); $this->assertEquals("Test2", $body->headers->{"X-Another-Test"});
} }
@@ -60,7 +63,8 @@ class GuzzleTest extends PHPUnit_Framework_TestCase
public function testPatch() public function testPatch()
{ {
$response = $this->client->patch('https://httpbin.org/patch', [], ['X-Patch-Test' => 'Testing a PATCH request.']); $response = $this->client->patch('https://httpbin.org/patch', [],
['X-Patch-Test' => 'Testing a PATCH request.']);
$headers = $response->getHeaders(); $headers = $response->getHeaders();
$this->assertEquals("application/json", $headers["Content-Type"][0]); $this->assertEquals("application/json", $headers["Content-Type"][0]);
@@ -71,7 +75,8 @@ class GuzzleTest extends PHPUnit_Framework_TestCase
public function testDelete() public function testDelete()
{ {
$response = $this->client->delete('https://httpbin.org/delete', [], ['X-Delete-Test' => 'Testing a DELETE request.']); $response = $this->client->delete('https://httpbin.org/delete', [],
['X-Delete-Test' => 'Testing a DELETE request.']);
$headers = $response->getHeaders(); $headers = $response->getHeaders();
$this->assertEquals("application/json", $headers["Content-Type"][0]); $this->assertEquals("application/json", $headers["Content-Type"][0]);
@@ -79,4 +84,49 @@ class GuzzleTest extends PHPUnit_Framework_TestCase
$body = json_decode($response->getBody()); $body = json_decode($response->getBody());
$this->assertEquals("Testing a DELETE request.", $body->form->{"X-Delete-Test"}); $this->assertEquals("Testing a DELETE request.", $body->form->{"X-Delete-Test"});
} }
public function testErrors()
{
$class = new ReflectionClass(\Cloudflare\API\Adapter\Guzzle::class);
$method = $class->getMethod('checkError');
$method->setAccessible(true);
$body =
'{
"result": null,
"success": false,
"errors": [{"code":1003,"message":"Invalid or missing zone id."}],
"messages": []
}'
;
$response = new Response(200, [], $body);
$this->expectException(\Cloudflare\API\Adapter\ResponseException::class);
$method->invokeArgs($this->client, [$response]);
$body =
'{
"result": null,
"success": false,
"errors": [],
"messages": []
}'
;
$response = new Response(200, [], $body);
$this->expectException(\Cloudflare\API\Adapter\ResponseException::class);
$method->invokeArgs($this->client, [$response]);
$body = 'this isnt json.';
$response = new Response(200, [], $body);
$this->expectException(\Cloudflare\API\Adapter\JSONException::class);
$method->invokeArgs($this->client, [$response]);
}
public function testNotFound() {
$this->expectException(\GuzzleHttp\Exception\RequestException::class);
$response = $this->client->get('https://httpbin.org/status/404');
}
} }

View File

@@ -9,10 +9,128 @@ class UserTest extends PHPUnit_Framework_TestCase
{ {
public function testGetUserDetails() public function testGetUserDetails()
{ {
$key = new \Cloudflare\API\Auth\APIKey('mjsa@junade.com', '2e2f2eb5934b328b9a7c190ce4c9d887875b1'); $stream = GuzzleHttp\Psr7\stream_for('
$adapter = new Cloudflare\API\Adapter\Guzzle($key); {
$user = new \Cloudflare\API\Endpoints\User($adapter); "success": true,
"errors": [],
"messages": [],
"result": {
"id": "7c5dae5552338874e5053f2534d2767a",
"email": "user@example.com",
"first_name": "John",
"last_name": "Appleseed",
"username": "cfuser12345",
"telephone": "+1 123-123-1234",
"country": "US",
"zipcode": "12345",
"created_on": "2014-01-01T05:20:00Z",
"modified_on": "2014-01-01T05:20:00Z",
"two_factor_authentication_enabled": false
}
}');
$response = new GuzzleHttp\Psr7\Response(200, ['Content-Type' => 'application/json'], $stream);
$mock = $this->getMockBuilder(\Cloudflare\API\Adapter\Adapter::class)->getMock();
$mock->method('get')->willReturn($response);
$user->getUserDetails(); $user = new \Cloudflare\API\Endpoints\User($mock);
$details = $user->getUserDetails();
$this->assertObjectHasAttribute("id", $details);
$this->assertEquals("7c5dae5552338874e5053f2534d2767a", $details->id);
$this->assertObjectHasAttribute("email", $details);
$this->assertEquals("user@example.com", $details->email);
}
public function testGetUserID()
{
$stream = GuzzleHttp\Psr7\stream_for('
{
"success": true,
"errors": [],
"messages": [],
"result": {
"id": "7c5dae5552338874e5053f2534d2767a",
"email": "user@example.com",
"first_name": "John",
"last_name": "Appleseed",
"username": "cfuser12345",
"telephone": "+1 123-123-1234",
"country": "US",
"zipcode": "12345",
"created_on": "2014-01-01T05:20:00Z",
"modified_on": "2014-01-01T05:20:00Z",
"two_factor_authentication_enabled": false
}
}');
$response = new GuzzleHttp\Psr7\Response(200, ['Content-Type' => 'application/json'], $stream);
$mock = $this->getMockBuilder(\Cloudflare\API\Adapter\Adapter::class)->getMock();
$mock->method('get')->willReturn($response);
$user = new \Cloudflare\API\Endpoints\User($mock);
$this->assertEquals("7c5dae5552338874e5053f2534d2767a", $user->getUserID());
}
public function testGetUserEmail()
{
$stream = GuzzleHttp\Psr7\stream_for('
{
"success": true,
"errors": [],
"messages": [],
"result": {
"id": "7c5dae5552338874e5053f2534d2767a",
"email": "user@example.com",
"first_name": "John",
"last_name": "Appleseed",
"username": "cfuser12345",
"telephone": "+1 123-123-1234",
"country": "US",
"zipcode": "12345",
"created_on": "2014-01-01T05:20:00Z",
"modified_on": "2014-01-01T05:20:00Z",
"two_factor_authentication_enabled": false
}
}');
$response = new GuzzleHttp\Psr7\Response(200, ['Content-Type' => 'application/json'], $stream);
$mock = $this->getMockBuilder(\Cloudflare\API\Adapter\Adapter::class)->getMock();
$mock->method('get')->willReturn($response);
$mock->expects($this->once())->method('get');
$user = new \Cloudflare\API\Endpoints\User($mock);
$this->assertEquals("user@example.com", $user->getUserEmail());
}
public function testUpdateUserDetails()
{
$stream = GuzzleHttp\Psr7\stream_for('
{
"success": true,
"errors": [],
"messages": [],
"result": {
"id": "7c5dae5552338874e5053f2534d2767a",
"email": "user@example.com",
"first_name": "John",
"last_name": "Appleseed",
"username": "cfuser12345",
"telephone": "+1 123-123-1234",
"country": "US",
"zipcode": "12345",
"created_on": "2014-01-01T05:20:00Z",
"modified_on": "2014-01-01T05:20:00Z",
"two_factor_authentication_enabled": false
}
}');
$response = new GuzzleHttp\Psr7\Response(200, ['Content-Type' => 'application/json'], $stream);
$mock = $this->getMockBuilder(\Cloudflare\API\Adapter\Adapter::class)->getMock();
$mock->method('patch')->willReturn($response);
$mock->expects($this->once())
->method('patch')
->with($this->equalTo('user'), $this->equalTo([]), $this->equalTo(['email' => 'user2@example.com']));
$user = new \Cloudflare\API\Endpoints\User($mock);
$user->updateUserDetails(['email' => "user2@example.com"]);
} }
} }

View File

@@ -0,0 +1,103 @@
<?php
/**
* Created by PhpStorm.
* User: junade
* Date: 06/06/2017
* Time: 16:01
*/
use Cloudflare\API\Endpoints\Zones;
class ZonesTest extends PHPUnit_Framework_TestCase
{
public function testAddZone()
{
$stream = GuzzleHttp\Psr7\stream_for('{
"success": true,
"errors": [],
"messages": [],
"result": {
"id": "023e105f4ecef8ad9ca31a8372d0c353",
"name": "example.com",
"development_mode": 7200,
"original_name_servers": [
"ns1.originaldnshost.com",
"ns2.originaldnshost.com"
],
"original_registrar": "GoDaddy",
"original_dnshost": "NameCheap",
"created_on": "2014-01-01T05:20:00.12345Z",
"modified_on": "2014-01-01T05:20:00.12345Z",
"name_servers": [
"tony.ns.cloudflare.com",
"woz.ns.cloudflare.com"
],
"owner": {
"id": "7c5dae5552338874e5053f2534d2767a",
"email": "user@example.com",
"owner_type": "user"
},
"permissions": [
"#zone:read",
"#zone:edit"
],
"plan": {
"id": "e592fd9519420ba7405e1307bff33214",
"name": "Pro Plan",
"price": 20,
"currency": "USD",
"frequency": "monthly",
"legacy_id": "pro",
"is_subscribed": true,
"can_subscribe": true
},
"plan_pending": {
"id": "e592fd9519420ba7405e1307bff33214",
"name": "Pro Plan",
"price": 20,
"currency": "USD",
"frequency": "monthly",
"legacy_id": "pro",
"is_subscribed": true,
"can_subscribe": true
},
"status": "active",
"paused": false,
"type": "full"
}
}');
$response = new GuzzleHttp\Psr7\Response(200, ['Content-Type' => 'application/json'], $stream);
$mock = $this->getMockBuilder(\Cloudflare\API\Adapter\Adapter::class)->getMock();
$mock->method('post')->willReturn($response);
$mock->expects($this->once())
->method('post')
->with($this->equalTo('zones'),
$this->equalTo([]),
$this->equalTo(['name' => 'example.com', 'jumpstart' => false])
);
$zones = new \Cloudflare\API\Endpoints\Zones($mock);
$result = $zones->addZone("example.com");
$this->assertObjectHasAttribute("id", $result);
$this->assertEquals("023e105f4ecef8ad9ca31a8372d0c353", $result->id);
$response = new GuzzleHttp\Psr7\Response(200, ['Content-Type' => 'application/json'], $stream);
$mock = $this->getMockBuilder(\Cloudflare\API\Adapter\Adapter::class)->getMock();
$mock->method('post')->willReturn($response);
$org = new stdClass();
$org->id = "01a7362d577a6c3019a474fd6f485823";
$mock->expects($this->once())
->method('post')
->with($this->equalTo('zones'),
$this->equalTo([]),
$this->equalTo(['name' => 'example.com', 'jumpstart' => true, 'organization' => $org])
);
$zones = new \Cloudflare\API\Endpoints\Zones($mock);
$zones->addZone("example.com", true, "01a7362d577a6c3019a474fd6f485823");
}
}