uatu-marvel 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +4 -1
  5. data/Gemfile +2 -1
  6. data/README.md +5 -3
  7. data/bin/console +7 -0
  8. data/lib/uatu.rb +13 -2
  9. data/lib/uatu/base.rb +10 -55
  10. data/lib/uatu/configuration.rb +3 -5
  11. data/lib/uatu/connection.rb +48 -41
  12. data/lib/uatu/endpoints/collection.rb +16 -0
  13. data/lib/uatu/endpoints/nested.rb +23 -0
  14. data/lib/uatu/endpoints/single.rb +17 -0
  15. data/lib/uatu/resource.rb +21 -19
  16. data/lib/uatu/resources.rb +3 -0
  17. data/lib/uatu/response.rb +1 -4
  18. data/lib/uatu/version.rb +1 -1
  19. data/spec/integration/characters_spec.rb +25 -0
  20. data/spec/integration/comics_spec.rb +17 -0
  21. data/spec/integration/creators_spec.rb +19 -0
  22. data/spec/integration/events_spec.rb +19 -0
  23. data/spec/integration/series_spec.rb +19 -0
  24. data/spec/integration/stories_spec.rb +19 -0
  25. data/spec/spec_helper.rb +18 -0
  26. data/spec/support/fake_marvel_api.rb +24 -0
  27. data/spec/support/fake_marvel_api/characters/list.json +381 -0
  28. data/spec/support/fake_marvel_api/characters/show.json +381 -0
  29. data/spec/support/fake_marvel_api/comics/list.json +1479 -0
  30. data/spec/support/fake_marvel_api/comics/show.json +134 -0
  31. data/spec/support/fake_marvel_api/creators/list.json +180 -0
  32. data/spec/support/fake_marvel_api/creators/show.json +323 -0
  33. data/spec/support/fake_marvel_api/events/list.json +2224 -0
  34. data/spec/support/fake_marvel_api/events/show.json +474 -0
  35. data/spec/support/fake_marvel_api/series/list.json +739 -0
  36. data/spec/support/fake_marvel_api/series/show.json +101 -0
  37. data/spec/support/fake_marvel_api/stories/list.json +523 -0
  38. data/spec/support/fake_marvel_api/stories/show.json +69 -0
  39. data/spec/uatu/configuration_spec.rb +26 -0
  40. data/spec/uatu/connection_spec.rb +54 -0
  41. data/spec/uatu/resource_spec.rb +40 -0
  42. data/spec/uatu_spec.rb +9 -0
  43. data/uatu.gemspec +6 -4
  44. metadata +123 -34
  45. data/test/helper.rb +0 -9
  46. data/test/uatu/base_test.rb +0 -51
  47. data/test/uatu/configuration_test.rb +0 -19
  48. data/test/uatu/connection_test.rb +0 -31
  49. data/test/uatu/resource_test.rb +0 -33
  50. data/test/uatu/uatu_test.rb +0 -9
@@ -0,0 +1,134 @@
1
+ {
2
+ "code": 200,
3
+ "status": "Ok",
4
+ "copyright": "© 2017 MARVEL",
5
+ "attributionText": "Data provided by Marvel. © 2017 MARVEL",
6
+ "attributionHTML": "<a href=\"http://marvel.com\">Data provided by Marvel. © 2017 MARVEL</a>",
7
+ "etag": "c6f91b55240d048c40998b1a59edd2aa1c9eb2de",
8
+ "data": {
9
+ "offset": 0,
10
+ "limit": 20,
11
+ "total": 1,
12
+ "count": 1,
13
+ "results": [
14
+ {
15
+ "id": 65443,
16
+ "digitalId": 0,
17
+ "title": "Black Panther: The Man Without Fear - The Complete Collection (Trade Paperback)",
18
+ "issueNumber": 0,
19
+ "variantDescription": "",
20
+ "description": "In the wake of SHADOWLAND, Hell’s Kitchen has a new protector: the Black Panther! He has no kingdom, no Vibranium and no high-tech safety net — just bloody knuckles and the will to prove himself in a foreign land. T’Challa will create a new life, a new identity and become a new kind of hero. But with Daredevil gone, the bad guys are coming out to play, and a deadly nemesis — Vlad the Impaler — plots his bloody rise to power. Soon, the new Man Without Fear will face FEAR ITSELF! And when a killer starts targeting people T’Challa has saved, the Panther must go on the prowl to show exactly why he is the most dangerous man alive! Collecting BLACK PANTHER: THE MAN WITHOUT FEAR #513-523 and BLACK PANTHER: THE MOST DANGEROUS MAN ALIVE #523.1 and #524-529.",
21
+ "modified": "2017-12-13T19:24:35-0500",
22
+ "isbn": "978-1-302-90772-3",
23
+ "upc": "",
24
+ "diamondCode": "OCT170999",
25
+ "ean": "9781302 907723 53499",
26
+ "issn": "",
27
+ "format": "Trade Paperback",
28
+ "pageCount": 416,
29
+ "textObjects": [
30
+ {
31
+ "type": "issue_solicit_text",
32
+ "language": "en-us",
33
+ "text": "In the wake of SHADOWLAND, Hell’s Kitchen has a new protector: the Black Panther! He has no kingdom, no Vibranium and no high-tech safety net — just bloody knuckles and the will to prove himself in a foreign land. T’Challa will create a new life, a new identity and become a new kind of hero. But with Daredevil gone, the bad guys are coming out to play, and a deadly nemesis — Vlad the Impaler — plots his bloody rise to power. Soon, the new Man Without Fear will face FEAR ITSELF! And when a killer starts targeting people T’Challa has saved, the Panther must go on the prowl to show exactly why he is the most dangerous man alive! Collecting BLACK PANTHER: THE MAN WITHOUT FEAR #513-523 and BLACK PANTHER: THE MOST DANGEROUS MAN ALIVE #523.1 and #524-529."
34
+ }
35
+ ],
36
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/65443",
37
+ "urls": [
38
+ {
39
+ "type": "detail",
40
+ "url": "http://marvel.com/comics/collection/65443/black_panther_the_man_without_fear_-_the_complete_collection_trade_paperback?utm_campaign=apiRef&utm_source=dcc0afa448458533d901bf0ff81da74c"
41
+ }
42
+ ],
43
+ "series": {
44
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/23808",
45
+ "name": "Black Panther: The Man Without Fear - The Complete Collection (2017)"
46
+ },
47
+ "variants": [],
48
+ "collections": [],
49
+ "collectedIssues": [],
50
+ "dates": [
51
+ {
52
+ "type": "onsaleDate",
53
+ "date": "2017-12-27T00:00:00-0500"
54
+ },
55
+ {
56
+ "type": "focDate",
57
+ "date": "2017-11-06T00:00:00-0500"
58
+ }
59
+ ],
60
+ "prices": [
61
+ {
62
+ "type": "printPrice",
63
+ "price": 34.99
64
+ }
65
+ ],
66
+ "thumbnail": {
67
+ "path": "http://i.annihil.us/u/prod/marvel/i/mg/b/40/image_not_available",
68
+ "extension": "jpg"
69
+ },
70
+ "images": [],
71
+ "creators": {
72
+ "available": 3,
73
+ "collectionURI": "http://gateway.marvel.com/v1/public/comics/65443/creators",
74
+ "items": [
75
+ {
76
+ "resourceURI": "http://gateway.marvel.com/v1/public/creators/11886",
77
+ "name": "Francesco Francavilla",
78
+ "role": "penciller (cover)"
79
+ },
80
+ {
81
+ "resourceURI": "http://gateway.marvel.com/v1/public/creators/10104",
82
+ "name": "David Liss",
83
+ "role": "writer"
84
+ },
85
+ {
86
+ "resourceURI": "http://gateway.marvel.com/v1/public/creators/4430",
87
+ "name": "Jeff Youngquist",
88
+ "role": "editor"
89
+ }
90
+ ],
91
+ "returned": 3
92
+ },
93
+ "characters": {
94
+ "available": 2,
95
+ "collectionURI": "http://gateway.marvel.com/v1/public/comics/65443/characters",
96
+ "items": [
97
+ {
98
+ "resourceURI": "http://gateway.marvel.com/v1/public/characters/1009187",
99
+ "name": "Black Panther"
100
+ },
101
+ {
102
+ "resourceURI": "http://gateway.marvel.com/v1/public/characters/1009262",
103
+ "name": "Daredevil"
104
+ }
105
+ ],
106
+ "returned": 2
107
+ },
108
+ "stories": {
109
+ "available": 2,
110
+ "collectionURI": "http://gateway.marvel.com/v1/public/comics/65443/stories",
111
+ "items": [
112
+ {
113
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/142006",
114
+ "name": "cover from BLACK PANTHER: THE MAN WITHOUT FEAR - THE COMPLETE COLLECTION TPB (2017) #1",
115
+ "type": "cover"
116
+ },
117
+ {
118
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/142007",
119
+ "name": "story from BLACK PANTHER: THE MAN WITHOUT FEAR - THE COMPLETE COLLECTION TPB (2017) #1",
120
+ "type": "interiorStory"
121
+ }
122
+ ],
123
+ "returned": 2
124
+ },
125
+ "events": {
126
+ "available": 0,
127
+ "collectionURI": "http://gateway.marvel.com/v1/public/comics/65443/events",
128
+ "items": [],
129
+ "returned": 0
130
+ }
131
+ }
132
+ ]
133
+ }
134
+ }
@@ -0,0 +1,180 @@
1
+ {
2
+ "code": 200,
3
+ "status": "Ok",
4
+ "copyright": "© 2017 MARVEL",
5
+ "attributionText": "Data provided by Marvel. © 2017 MARVEL",
6
+ "attributionHTML": "<a href=\"http://marvel.com\">Data provided by Marvel. © 2017 MARVEL</a>",
7
+ "etag": "44d115855a11207e389e0e386c4a6c4ed7cf1511",
8
+ "data": {
9
+ "offset": 0,
10
+ "limit": 3,
11
+ "total": 6294,
12
+ "count": 3,
13
+ "results": [
14
+ {
15
+ "id": 7968,
16
+ "firstName": "",
17
+ "middleName": "",
18
+ "lastName": "",
19
+ "suffix": "",
20
+ "fullName": "",
21
+ "modified": "-0001-11-30T00:00:00-0500",
22
+ "thumbnail": {
23
+ "path": "http://i.annihil.us/u/prod/marvel/i/mg/b/40/image_not_available",
24
+ "extension": "jpg"
25
+ },
26
+ "resourceURI": "http://gateway.marvel.com/v1/public/creators/7968",
27
+ "comics": {
28
+ "available": 0,
29
+ "collectionURI": "http://gateway.marvel.com/v1/public/creators/7968/comics",
30
+ "items": [],
31
+ "returned": 0
32
+ },
33
+ "series": {
34
+ "available": 0,
35
+ "collectionURI": "http://gateway.marvel.com/v1/public/creators/7968/series",
36
+ "items": [],
37
+ "returned": 0
38
+ },
39
+ "stories": {
40
+ "available": 0,
41
+ "collectionURI": "http://gateway.marvel.com/v1/public/creators/7968/stories",
42
+ "items": [],
43
+ "returned": 0
44
+ },
45
+ "events": {
46
+ "available": 0,
47
+ "collectionURI": "http://gateway.marvel.com/v1/public/creators/7968/events",
48
+ "items": [],
49
+ "returned": 0
50
+ },
51
+ "urls": [
52
+ {
53
+ "type": "detail",
54
+ "url": "http://marvel.com/comics/creators/7968?utm_campaign=apiRef&utm_source=dcc0afa448458533d901bf0ff81da74c"
55
+ }
56
+ ]
57
+ },
58
+ {
59
+ "id": 6606,
60
+ "firstName": "A.R.K.",
61
+ "middleName": "",
62
+ "lastName": "",
63
+ "suffix": "",
64
+ "fullName": "A.R.K.",
65
+ "modified": "2007-01-02T00:00:00-0500",
66
+ "thumbnail": {
67
+ "path": "http://i.annihil.us/u/prod/marvel/i/mg/b/40/image_not_available",
68
+ "extension": "jpg"
69
+ },
70
+ "resourceURI": "http://gateway.marvel.com/v1/public/creators/6606",
71
+ "comics": {
72
+ "available": 1,
73
+ "collectionURI": "http://gateway.marvel.com/v1/public/creators/6606/comics",
74
+ "items": [
75
+ {
76
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/19815",
77
+ "name": "Marvel Fanfare (1982) #4"
78
+ }
79
+ ],
80
+ "returned": 1
81
+ },
82
+ "series": {
83
+ "available": 1,
84
+ "collectionURI": "http://gateway.marvel.com/v1/public/creators/6606/series",
85
+ "items": [
86
+ {
87
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/3719",
88
+ "name": "Marvel Fanfare (1982 - 1992)"
89
+ }
90
+ ],
91
+ "returned": 1
92
+ },
93
+ "stories": {
94
+ "available": 1,
95
+ "collectionURI": "http://gateway.marvel.com/v1/public/creators/6606/stories",
96
+ "items": [
97
+ {
98
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/42310",
99
+ "name": "Mindgame",
100
+ "type": "interiorStory"
101
+ }
102
+ ],
103
+ "returned": 1
104
+ },
105
+ "events": {
106
+ "available": 0,
107
+ "collectionURI": "http://gateway.marvel.com/v1/public/creators/6606/events",
108
+ "items": [],
109
+ "returned": 0
110
+ },
111
+ "urls": [
112
+ {
113
+ "type": "detail",
114
+ "url": "http://marvel.com/comics/creators/6606/ark.?utm_campaign=apiRef&utm_source=dcc0afa448458533d901bf0ff81da74c"
115
+ }
116
+ ]
117
+ },
118
+ {
119
+ "id": 3096,
120
+ "firstName": "Abel",
121
+ "middleName": "",
122
+ "lastName": "",
123
+ "suffix": "",
124
+ "fullName": "Abel",
125
+ "modified": "2007-01-02T00:00:00-0500",
126
+ "thumbnail": {
127
+ "path": "http://i.annihil.us/u/prod/marvel/i/mg/b/40/image_not_available",
128
+ "extension": "jpg"
129
+ },
130
+ "resourceURI": "http://gateway.marvel.com/v1/public/creators/3096",
131
+ "comics": {
132
+ "available": 1,
133
+ "collectionURI": "http://gateway.marvel.com/v1/public/creators/3096/comics",
134
+ "items": [
135
+ {
136
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/9653",
137
+ "name": "Iron Man (1968) #94"
138
+ }
139
+ ],
140
+ "returned": 1
141
+ },
142
+ "series": {
143
+ "available": 1,
144
+ "collectionURI": "http://gateway.marvel.com/v1/public/creators/3096/series",
145
+ "items": [
146
+ {
147
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/2029",
148
+ "name": "Iron Man (1968 - 1996)"
149
+ }
150
+ ],
151
+ "returned": 1
152
+ },
153
+ "stories": {
154
+ "available": 1,
155
+ "collectionURI": "http://gateway.marvel.com/v1/public/creators/3096/stories",
156
+ "items": [
157
+ {
158
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/19787",
159
+ "name": "Frenzy At Fifty Fathoms",
160
+ "type": ""
161
+ }
162
+ ],
163
+ "returned": 1
164
+ },
165
+ "events": {
166
+ "available": 0,
167
+ "collectionURI": "http://gateway.marvel.com/v1/public/creators/3096/events",
168
+ "items": [],
169
+ "returned": 0
170
+ },
171
+ "urls": [
172
+ {
173
+ "type": "detail",
174
+ "url": "http://marvel.com/comics/creators/3096/abel?utm_campaign=apiRef&utm_source=dcc0afa448458533d901bf0ff81da74c"
175
+ }
176
+ ]
177
+ }
178
+ ]
179
+ }
180
+ }
@@ -0,0 +1,323 @@
1
+ {
2
+ "code": 200,
3
+ "status": "Ok",
4
+ "copyright": "© 2017 MARVEL",
5
+ "attributionText": "Data provided by Marvel. © 2017 MARVEL",
6
+ "attributionHTML": "<a href=\"http://marvel.com\">Data provided by Marvel. © 2017 MARVEL</a>",
7
+ "etag": "7b3a479212d5d897b6101fd3533163dbdfcdadaa",
8
+ "data": {
9
+ "offset": 0,
10
+ "limit": 20,
11
+ "total": 1,
12
+ "count": 1,
13
+ "results": [
14
+ {
15
+ "id": 2,
16
+ "firstName": "Garth",
17
+ "middleName": "",
18
+ "lastName": "Ennis",
19
+ "suffix": "",
20
+ "fullName": "Garth Ennis",
21
+ "modified": "2015-02-12T14:59:46-0500",
22
+ "thumbnail": {
23
+ "path": "http://i.annihil.us/u/prod/marvel/i/mg/e/f0/4bc6ad5b4bd54",
24
+ "extension": "jpg"
25
+ },
26
+ "resourceURI": "http://gateway.marvel.com/v1/public/creators/2",
27
+ "comics": {
28
+ "available": 104,
29
+ "collectionURI": "http://gateway.marvel.com/v1/public/creators/2/comics",
30
+ "items": [
31
+ {
32
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/39268",
33
+ "name": "Fury Max (2011) #1"
34
+ },
35
+ {
36
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/39270",
37
+ "name": "Fury Max (2011) #2"
38
+ },
39
+ {
40
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/39267",
41
+ "name": "Fury Max (2011) #3"
42
+ },
43
+ {
44
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/39269",
45
+ "name": "Fury Max (2011) #4"
46
+ },
47
+ {
48
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/39266",
49
+ "name": "Fury Max (2011) #5"
50
+ },
51
+ {
52
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/39271",
53
+ "name": "Fury Max (2011) #6"
54
+ },
55
+ {
56
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/40436",
57
+ "name": "Fury Max (2011) #7"
58
+ },
59
+ {
60
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/40435",
61
+ "name": "Fury Max (2011) #8"
62
+ },
63
+ {
64
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/40434",
65
+ "name": "Fury Max (2011) #9"
66
+ },
67
+ {
68
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/40433",
69
+ "name": "Fury Max (2011) #10"
70
+ },
71
+ {
72
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/40437",
73
+ "name": "Fury Max (2011) #11"
74
+ },
75
+ {
76
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/40432",
77
+ "name": "Fury Max (2011) #12"
78
+ },
79
+ {
80
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/42910",
81
+ "name": "Fury Max (2011) #13"
82
+ },
83
+ {
84
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/39281",
85
+ "name": "FURY MAX: MY WAR GONE BY VOL. 1 TPB (Trade Paperback)"
86
+ },
87
+ {
88
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/40986",
89
+ "name": "FURY MAX: MY WAR GONE BY VOL. 2 TPB (Trade Paperback)"
90
+ },
91
+ {
92
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/50053",
93
+ "name": "Fury Max: My War Gone by (Hardcover)"
94
+ },
95
+ {
96
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/116",
97
+ "name": "Punisher (2004) #1"
98
+ },
99
+ {
100
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/117",
101
+ "name": "Punisher (2004) #2"
102
+ },
103
+ {
104
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/115",
105
+ "name": "Punisher (2004) #3"
106
+ },
107
+ {
108
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/15005",
109
+ "name": "Punisher (2004) #4"
110
+ }
111
+ ],
112
+ "returned": 20
113
+ },
114
+ "series": {
115
+ "available": 26,
116
+ "collectionURI": "http://gateway.marvel.com/v1/public/creators/2/series",
117
+ "items": [
118
+ {
119
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/14248",
120
+ "name": "Fury Max (2011 - 2013)"
121
+ },
122
+ {
123
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/18788",
124
+ "name": "Fury Max: My War Gone by (2014)"
125
+ },
126
+ {
127
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/14251",
128
+ "name": "FURY MAX: MY WAR GONE BY VOL. 1 TPB (2011 - Present)"
129
+ },
130
+ {
131
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/15191",
132
+ "name": "FURY MAX: MY WAR GONE BY VOL. 2 TPB (2011 - Present)"
133
+ },
134
+ {
135
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/698",
136
+ "name": "Punisher (2004 - 2008)"
137
+ },
138
+ {
139
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/1210",
140
+ "name": "Punisher Max Vol. 1: In the Beginning (2004)"
141
+ },
142
+ {
143
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/1306",
144
+ "name": "Punisher Max Vol. 2: Kitchen Irish (2005)"
145
+ },
146
+ {
147
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/1361",
148
+ "name": "Punisher Max Vol. 3: Mother Russia (2005)"
149
+ },
150
+ {
151
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/1463",
152
+ "name": "Punisher Max Vol. 4: Up Is Down and Black Is White (2005)"
153
+ },
154
+ {
155
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/1602",
156
+ "name": "Punisher Max Vol. 5: The Slavers (2006)"
157
+ },
158
+ {
159
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/13838",
160
+ "name": "Punisher Max Vol. 5: The Slavers (Reprint) (2011 - Present)"
161
+ },
162
+ {
163
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/15267",
164
+ "name": "Punisher Max Vol. 6: Barracuda (Reprint) (2011 - Present)"
165
+ },
166
+ {
167
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/1957",
168
+ "name": "Punisher Max Vol. 7: Man of Stone (2007)"
169
+ },
170
+ {
171
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/20848",
172
+ "name": "Punisher Max: The Complete Collection Vol. 1 (2016)"
173
+ },
174
+ {
175
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/21518",
176
+ "name": "Punisher MAX: The Complete Collection Vol. 2 (2016)"
177
+ },
178
+ {
179
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/21533",
180
+ "name": "Punisher Max: The Complete Collection Vol. 3 (2016)"
181
+ },
182
+ {
183
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/21810",
184
+ "name": "Punisher Max: The Complete Collection Vol. 4 (2016)"
185
+ },
186
+ {
187
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/213",
188
+ "name": "Punisher Vol. 4: Full Auto (2003)"
189
+ },
190
+ {
191
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/21346",
192
+ "name": "Punisher Vs. the Marvel Universe (2016)"
193
+ },
194
+ {
195
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/21486",
196
+ "name": "Punisher: Born (2016)"
197
+ }
198
+ ],
199
+ "returned": 20
200
+ },
201
+ "stories": {
202
+ "available": 119,
203
+ "collectionURI": "http://gateway.marvel.com/v1/public/creators/2/stories",
204
+ "items": [
205
+ {
206
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/1411",
207
+ "name": "Interior #1411",
208
+ "type": "interiorStory"
209
+ },
210
+ {
211
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/1841",
212
+ "name": "Interior #1841",
213
+ "type": "interiorStory"
214
+ },
215
+ {
216
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/2252",
217
+ "name": "Interior #2252",
218
+ "type": "interiorStory"
219
+ },
220
+ {
221
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/2545",
222
+ "name": "1 of 6 - Mother Russia",
223
+ "type": "interiorStory"
224
+ },
225
+ {
226
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/2547",
227
+ "name": "2 of 6 - Mother Russia",
228
+ "type": "interiorStory"
229
+ },
230
+ {
231
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/2554",
232
+ "name": "Interior #2554",
233
+ "type": "interiorStory"
234
+ },
235
+ {
236
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/2556",
237
+ "name": "Interior #2556",
238
+ "type": "interiorStory"
239
+ },
240
+ {
241
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/2558",
242
+ "name": "Interior #2558",
243
+ "type": "interiorStory"
244
+ },
245
+ {
246
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/2560",
247
+ "name": "Interior #2560",
248
+ "type": "interiorStory"
249
+ },
250
+ {
251
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/2562",
252
+ "name": "Interior #2562",
253
+ "type": "interiorStory"
254
+ },
255
+ {
256
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/2564",
257
+ "name": "Interior #2564",
258
+ "type": "interiorStory"
259
+ },
260
+ {
261
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/2566",
262
+ "name": "Interior #2566",
263
+ "type": "interiorStory"
264
+ },
265
+ {
266
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/2568",
267
+ "name": "\"KITCHEN IRISH\" PART 6 (OF 6) Everyone gets just what they deserve. The bloodcurdling, bloodthirsty, bloody ending to Kitchen Ir",
268
+ "type": "interiorStory"
269
+ },
270
+ {
271
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/2570",
272
+ "name": "3 of 6 - Mother Russia",
273
+ "type": "interiorStory"
274
+ },
275
+ {
276
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/2572",
277
+ "name": "4 of 6 - Mother Russia",
278
+ "type": "interiorStory"
279
+ },
280
+ {
281
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/2574",
282
+ "name": "5 of 6 - Mother Russia",
283
+ "type": "interiorStory"
284
+ },
285
+ {
286
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/2576",
287
+ "name": "6 of 6 - Mother Russia",
288
+ "type": "interiorStory"
289
+ },
290
+ {
291
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/2578",
292
+ "name": "1 of 6 - Up Is Down and Black Is White",
293
+ "type": "interiorStory"
294
+ },
295
+ {
296
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/2580",
297
+ "name": "2 of 6 - Up Is Down and Black Is White",
298
+ "type": "interiorStory"
299
+ },
300
+ {
301
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/2582",
302
+ "name": "3 of 6 - Up Is Down and Black Is White",
303
+ "type": "interiorStory"
304
+ }
305
+ ],
306
+ "returned": 20
307
+ },
308
+ "events": {
309
+ "available": 0,
310
+ "collectionURI": "http://gateway.marvel.com/v1/public/creators/2/events",
311
+ "items": [],
312
+ "returned": 0
313
+ },
314
+ "urls": [
315
+ {
316
+ "type": "detail",
317
+ "url": "http://marvel.com/comics/creators/2/garth_ennis?utm_campaign=apiRef&utm_source=dcc0afa448458533d901bf0ff81da74c"
318
+ }
319
+ ]
320
+ }
321
+ ]
322
+ }
323
+ }