mirror of
https://github.com/ToxicCrack/PrintABrick.git
synced 2025-05-21 06:30:10 -07:00
Add Rebrickable API client
This commit is contained in:
parent
fcd0cba43f
commit
1a0d1d6b2a
@ -19,4 +19,7 @@ parameters:
|
||||
secret: ThisTokenIsNotSoSecretChangeIt
|
||||
|
||||
# Brickset API key obtainable at http://brickset.com/tools/webservices/requestkey
|
||||
brickset_apikey: ~
|
||||
brickset_apikey: ~
|
||||
|
||||
# Rebrickable API key obtainable at http://rebrickable.com/api/
|
||||
rebrickable_apikey: ~
|
@ -1,4 +1,7 @@
|
||||
services:
|
||||
client.brickset:
|
||||
class: AppBundle\Client\Brickset\Brickset
|
||||
arguments: ['%brickset_apikey%']
|
||||
arguments: ['%brickset_apikey%']
|
||||
client.rebrickable:
|
||||
class: AppBundle\Client\Rebrickable\Rebrickable
|
||||
arguments: ['%rebrickable_apikey%']
|
@ -21,7 +21,8 @@
|
||||
"symfony/polyfill-apcu": "^1.0",
|
||||
"sensio/distribution-bundle": "^5.0",
|
||||
"sensio/framework-extra-bundle": "^3.0.2",
|
||||
"incenteev/composer-parameter-handler": "^2.0"
|
||||
"incenteev/composer-parameter-handler": "^2.0",
|
||||
"guzzlehttp/guzzle": "^6.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"sensio/generator-bundle": "^3.0",
|
||||
|
349
composer.lock
generated
349
composer.lock
generated
@ -4,7 +4,8 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "4be3c063eb6331a8a3de74d3393dee92",
|
||||
"hash": "6a0a087c1e2fc52f43e0cdb32405a4f1",
|
||||
"content-hash": "6931eab7f98ea98f61f97e66ceeed392",
|
||||
"packages": [
|
||||
{
|
||||
"name": "doctrine/annotations",
|
||||
@ -72,7 +73,7 @@
|
||||
"docblock",
|
||||
"parser"
|
||||
],
|
||||
"time": "2015-08-31T12:32:49+00:00"
|
||||
"time": "2015-08-31 12:32:49"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/cache",
|
||||
@ -142,7 +143,7 @@
|
||||
"cache",
|
||||
"caching"
|
||||
],
|
||||
"time": "2015-12-31T16:37:02+00:00"
|
||||
"time": "2015-12-31 16:37:02"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/collections",
|
||||
@ -208,7 +209,7 @@
|
||||
"collections",
|
||||
"iterator"
|
||||
],
|
||||
"time": "2015-04-14T22:21:58+00:00"
|
||||
"time": "2015-04-14 22:21:58"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/common",
|
||||
@ -281,7 +282,7 @@
|
||||
"persistence",
|
||||
"spl"
|
||||
],
|
||||
"time": "2015-12-25T13:18:31+00:00"
|
||||
"time": "2015-12-25 13:18:31"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/dbal",
|
||||
@ -352,7 +353,7 @@
|
||||
"persistence",
|
||||
"queryobject"
|
||||
],
|
||||
"time": "2016-09-09T19:13:33+00:00"
|
||||
"time": "2016-09-09 19:13:33"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/doctrine-bundle",
|
||||
@ -433,7 +434,7 @@
|
||||
"orm",
|
||||
"persistence"
|
||||
],
|
||||
"time": "2016-08-10T15:35:22+00:00"
|
||||
"time": "2016-08-10 15:35:22"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/doctrine-cache-bundle",
|
||||
@ -521,7 +522,7 @@
|
||||
"cache",
|
||||
"caching"
|
||||
],
|
||||
"time": "2016-01-26T17:28:51+00:00"
|
||||
"time": "2016-01-26 17:28:51"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/inflector",
|
||||
@ -588,7 +589,7 @@
|
||||
"singularize",
|
||||
"string"
|
||||
],
|
||||
"time": "2015-11-06T14:35:42+00:00"
|
||||
"time": "2015-11-06 14:35:42"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/instantiator",
|
||||
@ -642,7 +643,7 @@
|
||||
"constructor",
|
||||
"instantiate"
|
||||
],
|
||||
"time": "2015-06-14T21:17:01+00:00"
|
||||
"time": "2015-06-14 21:17:01"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/lexer",
|
||||
@ -696,7 +697,7 @@
|
||||
"lexer",
|
||||
"parser"
|
||||
],
|
||||
"time": "2014-09-09T13:34:57+00:00"
|
||||
"time": "2014-09-09 13:34:57"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/orm",
|
||||
@ -772,7 +773,178 @@
|
||||
"database",
|
||||
"orm"
|
||||
],
|
||||
"time": "2016-09-10T18:51:13+00:00"
|
||||
"time": "2016-09-10 18:51:13"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/guzzle",
|
||||
"version": "6.2.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/guzzle.git",
|
||||
"reference": "ebf29dee597f02f09f4d5bbecc68230ea9b08f60"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/ebf29dee597f02f09f4d5bbecc68230ea9b08f60",
|
||||
"reference": "ebf29dee597f02f09f4d5bbecc68230ea9b08f60",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"guzzlehttp/promises": "^1.0",
|
||||
"guzzlehttp/psr7": "^1.3.1",
|
||||
"php": ">=5.5"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-curl": "*",
|
||||
"phpunit/phpunit": "^4.0",
|
||||
"psr/log": "^1.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "6.2-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
"src/functions_include.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
}
|
||||
],
|
||||
"description": "Guzzle is a PHP HTTP client library",
|
||||
"homepage": "http://guzzlephp.org/",
|
||||
"keywords": [
|
||||
"client",
|
||||
"curl",
|
||||
"framework",
|
||||
"http",
|
||||
"http client",
|
||||
"rest",
|
||||
"web service"
|
||||
],
|
||||
"time": "2016-10-08 15:01:37"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/promises",
|
||||
"version": "1.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/promises.git",
|
||||
"reference": "c10d860e2a9595f8883527fa0021c7da9e65f579"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/promises/zipball/c10d860e2a9595f8883527fa0021c7da9e65f579",
|
||||
"reference": "c10d860e2a9595f8883527fa0021c7da9e65f579",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\Promise\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/functions_include.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
}
|
||||
],
|
||||
"description": "Guzzle promises library",
|
||||
"keywords": [
|
||||
"promise"
|
||||
],
|
||||
"time": "2016-05-18 16:56:05"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/psr7",
|
||||
"version": "1.3.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/psr7.git",
|
||||
"reference": "5c6447c9df362e8f8093bda8f5d8873fe5c7f65b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/5c6447c9df362e8f8093bda8f5d8873fe5c7f65b",
|
||||
"reference": "5c6447c9df362e8f8093bda8f5d8873fe5c7f65b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.4.0",
|
||||
"psr/http-message": "~1.0"
|
||||
},
|
||||
"provide": {
|
||||
"psr/http-message-implementation": "1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\Psr7\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/functions_include.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
}
|
||||
],
|
||||
"description": "PSR-7 message implementation",
|
||||
"keywords": [
|
||||
"http",
|
||||
"message",
|
||||
"stream",
|
||||
"uri"
|
||||
],
|
||||
"time": "2016-06-24 23:00:38"
|
||||
},
|
||||
{
|
||||
"name": "incenteev/composer-parameter-handler",
|
||||
@ -823,7 +995,7 @@
|
||||
"keywords": [
|
||||
"parameters management"
|
||||
],
|
||||
"time": "2015-11-10T17:04:01+00:00"
|
||||
"time": "2015-11-10 17:04:01"
|
||||
},
|
||||
{
|
||||
"name": "jdorn/sql-formatter",
|
||||
@ -873,7 +1045,7 @@
|
||||
"highlight",
|
||||
"sql"
|
||||
],
|
||||
"time": "2014-01-12T16:20:24+00:00"
|
||||
"time": "2014-01-12 16:20:24"
|
||||
},
|
||||
{
|
||||
"name": "monolog/monolog",
|
||||
@ -951,7 +1123,7 @@
|
||||
"logging",
|
||||
"psr-3"
|
||||
],
|
||||
"time": "2016-07-29T03:23:52+00:00"
|
||||
"time": "2016-07-29 03:23:52"
|
||||
},
|
||||
{
|
||||
"name": "paragonie/random_compat",
|
||||
@ -999,7 +1171,7 @@
|
||||
"pseudorandom",
|
||||
"random"
|
||||
],
|
||||
"time": "2016-10-17T15:23:22+00:00"
|
||||
"time": "2016-10-17 15:23:22"
|
||||
},
|
||||
{
|
||||
"name": "psr/cache",
|
||||
@ -1045,7 +1217,57 @@
|
||||
"psr",
|
||||
"psr-6"
|
||||
],
|
||||
"time": "2016-08-06T20:24:11+00:00"
|
||||
"time": "2016-08-06 20:24:11"
|
||||
},
|
||||
{
|
||||
"name": "psr/http-message",
|
||||
"version": "1.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/http-message.git",
|
||||
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
|
||||
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Http\\Message\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interface for HTTP messages",
|
||||
"homepage": "https://github.com/php-fig/http-message",
|
||||
"keywords": [
|
||||
"http",
|
||||
"http-message",
|
||||
"psr",
|
||||
"psr-7",
|
||||
"request",
|
||||
"response"
|
||||
],
|
||||
"time": "2016-08-06 14:39:51"
|
||||
},
|
||||
{
|
||||
"name": "psr/log",
|
||||
@ -1092,7 +1314,7 @@
|
||||
"psr",
|
||||
"psr-3"
|
||||
],
|
||||
"time": "2016-10-10T12:19:37+00:00"
|
||||
"time": "2016-10-10 12:19:37"
|
||||
},
|
||||
{
|
||||
"name": "sensio/distribution-bundle",
|
||||
@ -1144,7 +1366,7 @@
|
||||
"configuration",
|
||||
"distribution"
|
||||
],
|
||||
"time": "2016-10-08T18:50:33+00:00"
|
||||
"time": "2016-10-08 18:50:33"
|
||||
},
|
||||
{
|
||||
"name": "sensio/framework-extra-bundle",
|
||||
@ -1206,7 +1428,7 @@
|
||||
"annotations",
|
||||
"controllers"
|
||||
],
|
||||
"time": "2016-03-25T17:08:27+00:00"
|
||||
"time": "2016-03-25 17:08:27"
|
||||
},
|
||||
{
|
||||
"name": "sensiolabs/security-checker",
|
||||
@ -1250,7 +1472,7 @@
|
||||
}
|
||||
],
|
||||
"description": "A security checker for your composer.lock",
|
||||
"time": "2016-09-23T18:09:57+00:00"
|
||||
"time": "2016-09-23 18:09:57"
|
||||
},
|
||||
{
|
||||
"name": "swiftmailer/swiftmailer",
|
||||
@ -1303,7 +1525,7 @@
|
||||
"mail",
|
||||
"mailer"
|
||||
],
|
||||
"time": "2016-07-08T11:51:25+00:00"
|
||||
"time": "2016-07-08 11:51:25"
|
||||
},
|
||||
{
|
||||
"name": "symfony/monolog-bundle",
|
||||
@ -1363,7 +1585,7 @@
|
||||
"log",
|
||||
"logging"
|
||||
],
|
||||
"time": "2016-04-13T16:21:01+00:00"
|
||||
"time": "2016-04-13 16:21:01"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-apcu",
|
||||
@ -1416,7 +1638,7 @@
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2016-05-18T14:26:46+00:00"
|
||||
"time": "2016-05-18 14:26:46"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-icu",
|
||||
@ -1474,7 +1696,7 @@
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2016-05-18T14:26:46+00:00"
|
||||
"time": "2016-05-18 14:26:46"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
@ -1533,7 +1755,7 @@
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2016-05-18T14:26:46+00:00"
|
||||
"time": "2016-05-18 14:26:46"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php56",
|
||||
@ -1589,7 +1811,7 @@
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2016-05-18T14:26:46+00:00"
|
||||
"time": "2016-05-18 14:26:46"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php70",
|
||||
@ -1648,7 +1870,7 @@
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2016-05-18T14:26:46+00:00"
|
||||
"time": "2016-05-18 14:26:46"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-util",
|
||||
@ -1700,7 +1922,7 @@
|
||||
"polyfill",
|
||||
"shim"
|
||||
],
|
||||
"time": "2016-05-18T14:26:46+00:00"
|
||||
"time": "2016-05-18 14:26:46"
|
||||
},
|
||||
{
|
||||
"name": "symfony/swiftmailer-bundle",
|
||||
@ -1757,7 +1979,7 @@
|
||||
],
|
||||
"description": "Symfony SwiftmailerBundle",
|
||||
"homepage": "http://symfony.com",
|
||||
"time": "2016-01-15T16:41:20+00:00"
|
||||
"time": "2016-01-15 16:41:20"
|
||||
},
|
||||
{
|
||||
"name": "symfony/symfony",
|
||||
@ -1898,7 +2120,7 @@
|
||||
"keywords": [
|
||||
"framework"
|
||||
],
|
||||
"time": "2016-10-27T02:38:53+00:00"
|
||||
"time": "2016-10-27 02:38:53"
|
||||
},
|
||||
{
|
||||
"name": "twig/twig",
|
||||
@ -1959,7 +2181,7 @@
|
||||
"keywords": [
|
||||
"templating"
|
||||
],
|
||||
"time": "2016-10-25T19:17:17+00:00"
|
||||
"time": "2016-10-25 19:17:17"
|
||||
}
|
||||
],
|
||||
"packages-dev": [
|
||||
@ -2013,7 +2235,7 @@
|
||||
}
|
||||
],
|
||||
"description": "This bundle generates code for you",
|
||||
"time": "2016-10-10T14:17:42+00:00"
|
||||
"time": "2016-10-10 14:17:42"
|
||||
},
|
||||
{
|
||||
"name": "symfony/phpunit-bridge",
|
||||
@ -2068,7 +2290,66 @@
|
||||
],
|
||||
"description": "Symfony PHPUnit Bridge",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2016-08-19T06:48:39+00:00"
|
||||
"time": "2016-08-19 06:48:39"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-iconv",
|
||||
"version": "v1.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-iconv.git",
|
||||
"reference": "b287e8554b1ffd9b5b20b5df940d906930ff4a10"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/b287e8554b1ffd9b5b20b5df940d906930ff4a10",
|
||||
"reference": "b287e8554b1ffd9b5b20b5df940d906930ff4a10",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-iconv": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.2-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Iconv\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for the Iconv extension",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"iconv",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2016-05-18 14:26:46"
|
||||
}
|
||||
],
|
||||
"aliases": [],
|
||||
|
162
src/AppBundle/Client/Rebrickable/Entity/Part.php
Normal file
162
src/AppBundle/Client/Rebrickable/Entity/Part.php
Normal file
@ -0,0 +1,162 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: hubnedav
|
||||
* Date: 11/11/16
|
||||
* Time: 12:45 AM
|
||||
*/
|
||||
|
||||
namespace AppBundle\Client\Rebrickable\Entity;
|
||||
|
||||
|
||||
class Part
|
||||
{
|
||||
protected $id;
|
||||
protected $name;
|
||||
protected $category;
|
||||
protected $typeId;
|
||||
protected $colors;
|
||||
protected $external_part_ids;
|
||||
protected $part_url;
|
||||
protected $part_img_url;
|
||||
|
||||
public function __construct($part_id, $part_name, $category, $part_type_id, $colors, $external_part_ids, $part_url, $part_img_url)
|
||||
{
|
||||
$this->id = $part_id;
|
||||
$this->name = $part_name;
|
||||
$this->category = $category;
|
||||
$this->typeId = $part_type_id;
|
||||
$this->colors = $colors;
|
||||
$this->external_part_ids = $external_part_ids;
|
||||
$this->part_url = $part_url;
|
||||
$this->part_img_url = $part_img_url;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getId()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $id
|
||||
*/
|
||||
public function setId($id)
|
||||
{
|
||||
$this->id = $id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $name
|
||||
*/
|
||||
public function setName($name)
|
||||
{
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getCategory()
|
||||
{
|
||||
return $this->category;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $category
|
||||
*/
|
||||
public function setCategory($category)
|
||||
{
|
||||
$this->category = $category;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getTypeId()
|
||||
{
|
||||
return $this->typeId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $typeId
|
||||
*/
|
||||
public function setTypeId($typeId)
|
||||
{
|
||||
$this->typeId = $typeId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getColors()
|
||||
{
|
||||
return $this->colors;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $colors
|
||||
*/
|
||||
public function setColors($colors)
|
||||
{
|
||||
$this->colors = $colors;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getExternalPartIds()
|
||||
{
|
||||
return $this->external_part_ids;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $external_part_ids
|
||||
*/
|
||||
public function setExternalPartIds($external_part_ids)
|
||||
{
|
||||
$this->external_part_ids = $external_part_ids;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getPartUrl()
|
||||
{
|
||||
return $this->part_url;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $part_url
|
||||
*/
|
||||
public function setPartUrl($part_url)
|
||||
{
|
||||
$this->part_url = $part_url;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getPartImgUrl()
|
||||
{
|
||||
return $this->part_img_url;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $part_img_url
|
||||
*/
|
||||
public function setPartImgUrl($part_img_url)
|
||||
{
|
||||
$this->part_img_url = $part_img_url;
|
||||
}
|
||||
}
|
127
src/AppBundle/Client/Rebrickable/Rebrickable.php
Normal file
127
src/AppBundle/Client/Rebrickable/Rebrickable.php
Normal file
@ -0,0 +1,127 @@
|
||||
<?php
|
||||
|
||||
namespace AppBundle\Client\Rebrickable;
|
||||
|
||||
use GuzzleHttp\Client;
|
||||
use GuzzleHttp\Exception\ClientException;
|
||||
use GuzzleHttp\Exception\ConnectException;
|
||||
use Symfony\Component\Asset\Exception\LogicException;
|
||||
|
||||
class Rebrickable
|
||||
{
|
||||
const BASE_URI = 'https://rebrickable.com/api/';
|
||||
const FORMAT = 'json';
|
||||
|
||||
private $client;
|
||||
|
||||
private $apiKey;
|
||||
|
||||
/**
|
||||
* RebrickableAPI constructor.
|
||||
*/
|
||||
public function __construct($apiKey)
|
||||
{
|
||||
$this->client = new Client(['base_uri' => self::BASE_URI]);
|
||||
$this->apiKey = $apiKey;
|
||||
}
|
||||
|
||||
|
||||
private function call($method, $parameters) {
|
||||
$parameters['query']['key'] = $this->apiKey;
|
||||
$parameters['query']['format'] = self::FORMAT;
|
||||
|
||||
try
|
||||
{
|
||||
$response = $this->client->request('GET', $method, $parameters);
|
||||
|
||||
if ($response->getStatusCode() === 200)
|
||||
{
|
||||
$content = $response->getBody()->getContents();
|
||||
if($content === 'INVALIDKEY') {
|
||||
//TODO
|
||||
throw new LogicException("Invalid API Key");
|
||||
} else {
|
||||
return $content;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//TODO
|
||||
throw new LogicException($response->getStatusCode());
|
||||
}
|
||||
} catch (ConnectException $e) {
|
||||
//TODO
|
||||
throw new LogicException($e->getMessage());
|
||||
} catch (ClientException $e) {
|
||||
//TODO
|
||||
throw new LogicException($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a list of all parts (normal + spare) used in a set.
|
||||
*
|
||||
* @param string $setName unique rebrickable set name
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getSetParts($setName)
|
||||
{
|
||||
$parameters = [
|
||||
'query' => [
|
||||
'set' => $setName,
|
||||
]
|
||||
];
|
||||
|
||||
return $this->call('get_set_parts', $parameters);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get details about a specific part.
|
||||
*
|
||||
* @param $partID
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public function getPart($partID)
|
||||
{
|
||||
$parameters = [
|
||||
'query' => [
|
||||
'part_id' => $partID,
|
||||
'inc_ext' => 1
|
||||
]
|
||||
];
|
||||
|
||||
return $this->call('get_part',$parameters);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the list of colors used by all parts.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public function getColors()
|
||||
{
|
||||
return $this->call('get_colors', []);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the list of sets that a specific part/color appears in.
|
||||
*
|
||||
* @param $partID
|
||||
* @param $colorID
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public function getPartSets($partID, $colorID)
|
||||
{
|
||||
$parameters = [
|
||||
'query' => [
|
||||
'part_id' => $partID,
|
||||
'color_id' => $colorID
|
||||
]
|
||||
];
|
||||
|
||||
return $this->call('get_part_sets', $parameters);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user