Skip to content

Commit 0394877

Browse files
authored
Merge pull request #48 from hannah-gaudet/RCB-444
RCB 444
2 parents c563dd8 + 5dfbc3a commit 0394877

File tree

4 files changed

+50
-70
lines changed

4 files changed

+50
-70
lines changed

examples/entities.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
$params->set('genre', 'social-media');
2222

2323
try {
24-
$result = $api->entities($params);
24+
$result = $api->entities($params, false);
2525
var_dump($result);
2626
} catch (RosetteException $e) {
2727
error_log($e);

examples/entities_linked.php

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
3+
/**
4+
* Example code to call Rosette API to get linked (against Wikipedia) entities from a piece of text.
5+
**/
6+
require_once dirname(__FILE__) . '/vendor/autoload.php';
7+
use rosette\api\Api;
8+
use rosette\api\DocumentParameters;
9+
use rosette\api\RosetteException;
10+
11+
$options = getopt(null, array('key:', 'url::'));
12+
if (!isset($options['key'])) {
13+
echo 'Usage: php ' . __FILE__ . " --key <api_key> --url=<alternate_url>\n";
14+
exit();
15+
}
16+
$entities_linked_text_data = "Last month director Paul Feig announced the movie will have an all-star female cast including Kristen Wiig, Melissa McCarthy, Leslie Jones and Kate McKinnon.";
17+
$api = isset($options['url']) ? new Api($options['key'], $options['url']) : new Api($options['key']);
18+
$params = new DocumentParameters();
19+
$content = $entities_linked_text_data;
20+
$params->set('content', $content);
21+
$params->set('genre', 'social-media');
22+
23+
try {
24+
$result = $api->entities($params, true);
25+
var_dump($result);
26+
} catch (RosetteException $e) {
27+
error_log($e);
28+
}

source/rosette/api/Api.php

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__DIR__));
2222
spl_autoload_register(function ($class) {
2323
$class = preg_replace('/.+\\\\/', '', $class);
24-
require_once $class . '.php';
24+
require_once ucfirst($class) . '.php';
2525
});
2626

2727
/**
@@ -607,19 +607,25 @@ public function morphology($params, $facet = null)
607607
return $this->callEndpoint($params, 'morphology/' . $facet);
608608
}
609609

610-
/**
611-
* Calls the entities endpoint.
612-
*
613-
* @param $params
614-
*
615-
* @return mixed
616-
*
617-
* @throws RosetteException
618-
*/
619-
public function entities($params)
620-
{
621-
return $this->callEndpoint($params, 'entities');
622-
}
610+
/* Calls the entities endpoint.
611+
*
612+
* @param $params
613+
* @param $resolve_entities
614+
*
615+
* @return mixed
616+
*
617+
* @throws RosetteException
618+
*/
619+
public function entities($params, $resolve_entities = false)
620+
{
621+
if ($resolve_entities == true) {
622+
error_reporting(E_DEPRECATED);
623+
return $this->callEndpoint($params, 'entities/linked');
624+
} else {
625+
return $this->callEndpoint($params, 'entities');
626+
}
627+
}
628+
623629

624630
/**
625631
* Calls the categories endpoint.

spec/rosette/api/ApiSpec.php

Lines changed: 1 addition & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,47 @@
11
<?php
2-
32
namespace spec\rosette\api;
4-
53
use PhpSpec\ObjectBehavior;
64
use Prophecy\Argument;
7-
85
class ApiSpec extends ObjectBehavior
96
{
107
public function let()
118
{
129
$this->beConstructedWith('randomkey');
1310
}
14-
1511
public function it_is_initializable()
1612
{
1713
$this->shouldHaveType('rosette\api\Api');
1814
}
19-
2015
public function it_instantiates_correctly()
2116
{
2217
$this->getServiceUrl()->shouldEndWith('/rest/v1/');
2318
}
24-
2519
public function it_sets_gets_response_code()
2620
{
2721
$responseCode = 404;
2822
$this->setResponseCode($responseCode);
2923
$this->getResponseCode()->shouldBe($responseCode);
3024
}
31-
3225
public function it_sets_gets_timeout()
3326
{
3427
$timeout = 120;
3528
$this->setTimeout($timeout);
3629
$this->getTimeout()->shouldBe($timeout);
3730
}
38-
3931
public function it_sets_gets_clears_options()
4032
{
4133
$this->setOption("test", "foo");
4234
$this->getOption("test")->shouldBe("foo");
4335
$this->clearOptions();
4436
$this->getOption("test")->shouldBeNull();
4537
}
46-
4738
public function it_sets_gets_clears_single_option()
4839
{
4940
$this->setOption("test", "foo");
5041
$this->getOption("test")->shouldBe("foo");
5142
$this->setOption("test", null);
5243
$this->getOption("test")->shouldBeNull();
5344
}
54-
5545
public function it_sets_gets_debug()
5646
{
5747
$debug = true;
@@ -61,81 +51,65 @@ public function it_sets_gets_debug()
6151
$this->setDebug($debug);
6252
$this->getDebug()->shouldBe($debug);
6353
}
64-
6554
public function it_can_ping($request)
6655
{
6756
$request->beADoubleOf('rosette\api\RosetteRequest');
6857
$request->makeRequest(Argument::any(), Argument::any(), Argument::any(), Argument::any())->willReturn(true);
6958
$request->getResponseCode()->willReturn(200);
7059
$request->getResponse()->willReturn([ 'name' => 'Rosette API' ]);
71-
7260
$this->setMockRequest($request);
7361
$this->ping()->shouldHaveKeyWithValue('name', 'Rosette API');
7462
}
75-
7663
public function it_gets_info($request)
7764
{
7865
$request->beADoubleOf('rosette\api\RosetteRequest');
7966
$request->makeRequest(Argument::any(), Argument::any(), Argument::any(), Argument::any())->willReturn(true);
8067
$request->getResponseCode()->willReturn(200);
8168
$request->getResponse()->willReturn([ 'name' => 'Rosette API' ]);
82-
8369
$this->setMockRequest($request);
8470
$this->info()->shouldHaveKeyWithValue('name', 'Rosette API');
8571
}
86-
8772
public function it_calls_the_language_endpoint($params, $request)
8873
{
8974
$params->beADoubleOf('\rosette\api\DocumentParameters');
9075
$params->content = 'Sample Data';
91-
9276
$request->beADoubleOf('rosette\api\RosetteRequest');
9377
$request->makeRequest(Argument::any(), Argument::any(), Argument::any(), Argument::any())->willReturn(true);
9478
$request->getResponseCode()->willReturn(200);
9579
$request->getResponse()->willReturn([ 'name' => 'Rosette API']);
96-
9780
$this->setMockRequest($request);
9881
$this->language($params)->shouldHaveKeyWithValue('name', 'Rosette API');
9982
}
100-
10183
public function it_calls_the_sentences_endpoint($params, $request)
10284
{
10385
$params->beADoubleOf('\rosette\api\DocumentParameters');
10486
$params->content = 'Sample Data';
105-
10687
$request->beADoubleOf('rosette\api\RosetteRequest');
10788
$request->makeRequest(Argument::any(), Argument::any(), Argument::any(), Argument::any())->willReturn(true);
10889
$request->getResponseCode()->willReturn(200);
10990
$request->getResponse()->willReturn([ 'name' => 'Rosette API']);
110-
11191
$this->setMockRequest($request);
11292
$this->sentences($params)->shouldHaveKeyWithValue('name', 'Rosette API');
11393
}
114-
11594
public function it_calls_the_tokens_endpoint($params, $request)
11695
{
11796
$params->beADoubleOf('\rosette\api\DocumentParameters');
11897
$params->content = 'Sample Data';
119-
12098
$request->beADoubleOf('rosette\api\RosetteRequest');
12199
$request->makeRequest(Argument::any(), Argument::any(), Argument::any(), Argument::any())->willReturn(true);
122100
$request->getResponseCode()->willReturn(200);
123101
$request->getResponse()->willReturn([ 'name' => 'Rosette API']);
124-
125102
$this->setMockRequest($request);
126103
$this->tokens($params)->shouldHaveKeyWithValue('name', 'Rosette API');
127104
}
128-
129105
public function it_calls_the_morphology_endpoint($params, $request)
130106
{
131107
$params->beADoubleOf('\rosette\api\DocumentParameters');
132108
$params->content = 'Sample Data';
133-
134109
$request->beADoubleOf('rosette\api\RosetteRequest');
135110
$request->makeRequest(Argument::any(), Argument::any(), Argument::any(), Argument::any())->willReturn(true);
136111
$request->getResponseCode()->willReturn(200);
137112
$request->getResponse()->willReturn([ 'name' => 'Rosette API']);
138-
139113
$this->setMockRequest($request);
140114
$this->morphology($params)->shouldHaveKeyWithValue('name', 'Rosette API');
141115
$facet = 'lemmas';
@@ -147,45 +121,36 @@ public function it_calls_the_morphology_endpoint($params, $request)
147121
$facet = 'han-readings';
148122
$this->morphology($params, $facet)->shouldHaveKeyWithValue('name', 'Rosette API');
149123
}
150-
151124
public function it_calls_the_entities_endpoint($params, $request)
152125
{
153126
$params->beADoubleOf('\rosette\api\DocumentParameters');
154127
$params->content = 'Sample Data';
155-
156128
$request->beADoubleOf('rosette\api\RosetteRequest');
157129
$request->makeRequest(Argument::any(), Argument::any(), Argument::any(), Argument::any())->willReturn(true);
158130
$request->getResponseCode()->willReturn(200);
159131
$request->getResponse()->willReturn([ 'name' => 'Rosette API']);
160-
161132
$this->setMockRequest($request);
162133
$this->entities($params)->shouldHaveKeyWithValue('name', 'Rosette API');
163134
}
164-
165135
public function it_calls_the_categories_endpoint($params, $request)
166136
{
167137
$params->beADoubleOf('\rosette\api\DocumentParameters');
168138
$params->content = 'Sample Data';
169-
170139
$request->beADoubleOf('rosette\api\RosetteRequest');
171140
$request->makeRequest(Argument::any(), Argument::any(), Argument::any(), Argument::any())->willReturn(true);
172141
$request->getResponseCode()->willReturn(200);
173142
$request->getResponse()->willReturn([ 'name' => 'Rosette API']);
174-
175143
$this->setMockRequest($request);
176144
$this->categories($params)->shouldHaveKeyWithValue('name', 'Rosette API');
177145
}
178-
179146
public function it_calls_the_sentiment_endpoint($params, $request)
180147
{
181148
$params->beADoubleOf('\rosette\api\DocumentParameters');
182149
$params->content = 'Sample Data';
183-
184150
$request->beADoubleOf('rosette\api\RosetteRequest');
185151
$request->makeRequest(Argument::any(), Argument::any(), Argument::any(), Argument::any())->willReturn(true);
186152
$request->getResponseCode()->willReturn(200);
187153
$request->getResponse()->willReturn([ 'name' => 'Rosette API']);
188-
189154
$this->setMockRequest($request);
190155
$this->sentiment($params)->shouldHaveKeyWithValue('name', 'Rosette API');
191156
}
@@ -194,94 +159,75 @@ public function it_calls_using_multipart($params, $request)
194159
{
195160
$params->beADoubleOf('\rosette\api\DocumentParameters');
196161
$params->loadDocumentFile('fakefile');
197-
198162
$request->beADoubleOf('rosette\api\RosetteRequest');
199163
$request->makeRequest(Argument::any(), Argument::any(), Argument::any(), Argument::any())->willReturn(true);
200164
$request->getResponseCode()->willReturn(200);
201165
$request->getResponse()->willReturn([ 'name' => 'Rosette API']);
202-
203166
$this->setMockRequest($request);
204167
$this->sentiment($params)->shouldHaveKeyWithValue('name', 'Rosette API');
205168
}
206-
207169
public function it_calls_the_name_translation_endpoint($params, $request)
208170
{
209171
$params->beADoubleOf('\rosette\api\NameTranslationParameters');
210-
211172
$request->beADoubleOf('rosette\api\RosetteRequest');
212173
$request->makeRequest(Argument::any(), Argument::any(), Argument::any(), Argument::any())->willReturn(true);
213174
$request->getResponseCode()->willReturn(200);
214175
$request->getResponse()->willReturn([ 'name' => 'Rosette API']);
215-
216176
$this->setMockRequest($request);
217177
$this->nameTranslation($params)->shouldHaveKeyWithValue('name', 'Rosette API');
218178
}
219-
220179
public function it_calls_the_name_similarity_endpoint($params, $request)
221180
{
222181
$params->beADoubleOf('\rosette\api\NameSimilarityParameters');
223-
224182
$request->beADoubleOf('rosette\api\RosetteRequest');
225183
$request->makeRequest(Argument::any(), Argument::any(), Argument::any(), Argument::any())->willReturn(true);
226184
$request->getResponseCode()->willReturn(200);
227185
$request->getResponse()->willReturn([ 'name' => 'Rosette API']);
228-
229186
$this->setMockRequest($request);
230187
$this->nameSimilarity($params)->shouldHaveKeyWithValue('name', 'Rosette API');
231188
}
232-
233189
public function it_calls_the_relationships_endpoint($params, $request)
234190
{
235191
$params->beADoubleOf('\rosette\api\DocumentParameters');
236192
$params->contentUri = 'http://some.dummysite.com';
237-
238193
$request->beADoubleOf('rosette\api\RosetteRequest');
239194
$request->makeRequest(Argument::any(), Argument::any(), Argument::any(), Argument::any())->willReturn(true);
240195
$request->getResponseCode()->willReturn(200);
241196
$request->getResponse()->willReturn([ 'name' => 'Rosette API']);
242-
243197
$this->setMockRequest($request);
244198
$this->relationships($params)->shouldHaveKeyWithValue('name', 'Rosette API');
245199
}
246-
247200
public function it_fails_with_non_200_response($params, $request)
248201
{
249202
$params->beADoubleOf('\rosette\api\DocumentParameters');
250203
$params->contentUri = 'http://some.dummysite.com';
251-
252204
$request->beADoubleOf('rosette\api\RosetteRequest');
253205
$request->makeRequest(Argument::any(), Argument::any(), Argument::any(), Argument::any())->willReturn(true);
254206
$request->getResponseCode()->willReturn(403);
255207
$request->getResponse()->willReturn([ 'message' => 'access to this resource denied', 'code' => 'forbidden' ]);
256-
257208
$this->setMockRequest($request);
258209
$this->shouldThrow('rosette\api\RosetteException')->duringRelationships($params);
259210
}
260-
261211
public function it_fails_with_incorrectly_formatted_custom_header($params, $request)
262212
{
263213
$this->shouldThrow('rosette\api\RosetteException')->duringSetCustomHeaders("test");
264214
}
265-
266215
public function it_sets_gets_clears_customHeaders()
267216
{
268217
$this->setCustomHeaders('X-RosetteAPI-test');
269218
$this->getCustomHeaders()->shouldBe(array('X-RosetteAPI-test'));
270219
$this->clearCustomHeaders();
271220
$this->getCustomHeaders()->shouldBe(array());
272221
}
273-
274222
public function it_fails_with_409_response($params, $request)
275223
{
276224
$params->beADoubleOf('\rosette\api\DocumentParameters');
277225
$params->contentUri = 'http://some.dummysite.com';
278-
279226
$request->beADoubleOf('rosette\api\RosetteRequest');
280227
$request->makeRequest(Argument::any(), Argument::any(), Argument::any(), Argument::any())->willReturn(true);
281228
$request->getResponseCode()->willReturn(409);
282229
$request->getResponse()->willReturn([ 'code' => 'incompatible version', 'message' => 'the version of client library used is not compatible with this server' ]);
283-
284230
$this->setMockRequest($request);
285231
$this->shouldThrow('rosette\api\RosetteException')->duringRelationships($params);
286232
}
287-
}
233+
}

0 commit comments

Comments
 (0)