I am trying to GET from Wattpad.com's API level 3, http://www.wattpad.com/api/v3/stories/, using
Service
angular.module('myApp')
.service('WattpadService', function WattpadService($resource) {
var resource = $resource('http://www.wattpad.com/api/v3/stories', {}, {
query: {method:'GET',
params:{query:'margaretatwood'},
isArray:false
}
});
return {
loadStories: function() {
return resource.query();
}
};
});
Controller
angular.module('myApp')
.controller('MainCtrl', function ($scope, WattpadService, $resource) {
WattpadService.loadStories()
.$promise.then(
function(data) {
console.log("success");
console.log(data);
},
function(response) {
console.log(response);
}
);
});
The data I get back is from console.log is super strange:
Resource
0: "a"
1: "r"
2: "r"
3: "a"
4: "y"
5: " "
6: "("
7: "↵"
(etc)
As far as I can tell, I'm experiencing the problem described at http://mariuszprzydatek.com/2013/12/13/tricky-behavior-of-angularjs-resource-service/. Using transformResponse like:
query: {method:'GET',
params:{query:'margaretatwood'},
isArray:false,
transformResponse: function(data, headers){
return JSON.parse(data);
}
}
Gets me
SyntaxError: Unexpected token a
at Object.parse (native)
Any advice?
EDIT console.log of data before it's parsed (using a random user with only 1 story instead of Atwood who has a lot.)
array (
'stories' =>
array (
0 =>
array (
'id' => '18265912',
'title' => 'A Little Something Different',
'length' => 9370,
'createDate' => '2014-06-23T21:48:55Z',
'modifyDate' => '2014-07-15T18:24:45Z',
'voteCount' => 20,
'readCount' => 153,
'commentCount' => 4,
'language' =>
array (
'id' => 1,
'name' => 'English',
),
'user' =>
array (
'name' => 'iamsandyhall',
'avatar' => 'http://a.wattpad.com/useravatar/iamsandyhall.128.340656.jpg',
),
'description' => 'Lea and Gabe are in the same creative writing class. They get the same pop culture references, order the same Chinese food, and hang out in the same places. Unfortunately, Lea is reserved, Gabe has issues, and despite their initial mutual crush, it looks like they are never going to work things out.
But somehow even when nothing is going on, something is happening between them, and everyone can see it. Their creative writing teacher pushes them together. The baristas at the local Starbucks watch their relationship like a TV show. Their bus driver tells his wife about them. The waitress at the diner automatically seats them together. Even the squirrel who lives on the college green believes in their relationship.',
'cover' => 'http://a.wattpad.com/cover/18265912-256-k534988.jpg',
'completed' => false,
'categories' =>
array (
0 => 1,
1 => 4,
),
'tags' =>
array (
0 => 'adult',
1 => 'contemporary',
2 => 'reads',
3 => 'swoon',
4 => 'swoonworthy',
5 => 'young',
),
'rating' => 3,
'copyright' => 1,
'url' => 'http://www.wattpad.com/story/18265912-a-little-something-different',
'firstPartId' => 56140494,
'numParts' => 3,
'parts' =>
array (
0 =>
array (
'id' => 56140494,
'title' => 'A Little Something Different (September and October)',
'draft' => false,
'modifyDate' => '2014-07-14T19:45:12Z',
'length' => 723,
'videoId' => '',
'photoUrl' => '',
'commentCount' => 1,
'voteCount' => 6,
'readCount' => '91',
),
1 =>
array (
'id' => 56140699,
'title' => 'September (Maribel - Lea\'s roommate)',
'draft' => false,
'modifyDate' => '2014-07-14T19:48:02Z',
'length' => 2611,
'videoId' => '',
'photoUrl' => '',
'commentCount' => 0,
'voteCount' => 6,
'readCount' => '37',
),
2 =>
array (
'id' => 56140763,
'title' => 'September (Inga - creative writing professor)',
'draft' => false,
'modifyDate' => '2014-07-15T18:21:20Z',
'length' => 6036,
'videoId' => '',
'photoUrl' => '',
'commentCount' => 3,
'voteCount' => 8,
'readCount' => '27',
),
),
'deleted' => false,
),
),
'total' => 1,
'categories' =>
array (
0 =>
array (
'id' => 4,
'name' => 'Romance',
'count' => 1,
),
1 =>
array (
'id' => 1,
'name' => 'Teen Fiction',
'count' => 1,
),
),
'tags' =>
array (
),
)
typeof(data) returns string
oh - seems to be a php array