Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

adding and querying pointers isn't working with the REST API for Parse.com

I"m using the following commands which i've copied over from the documentation. Assume that I'm passing in the application id and keys in each curl statement for brevity.

  1. create player

    curl -X POST \ -d '{"name":"abhinav", "rank" :"amazing"}' \ https://api.parse.com/1/classes/Player

Player objectId: HgMZF6H90L

  1. Create game and add pointer relation

    curl -X POST \ -d '{"Level" : "TWO"}' \ https://api.parse.com/1/classes/GameScore

GameScore objectId: cwYIEwFaq9

curl -X PUT \
  -d '{"opponents":{"__op":"AddRelation","objects":[{"__type":"Pointer","className":"Player","objectId":"HgMZF6H90L"}]}}' \
  https://api.parse.com/1/classes/GameScore/tDiFZSE0lQ

Now I check from the Data browser and the GameScore object has a field with Relation. clicking on the "View Relations" navigates me to the correct list underneath. Working fine except that it says "Relation" and not pointer. Not sure if that is relevant

alt text

alt text

HOWEVER, I'm not able to query this information from the REST API. A GET results in the relation data but no objectId for the player available.

curl -X GET \
  https://api.parse.com/1/classes/GameScore/cwYIEwFaq9

result:

{"Level":"TWO","createdAt":"2014-06-11T08:49:43.325Z","objectId":"cwYIEwFaq9","opponents":{"__type":"Relation","className":"Player"},"updatedAt":"2014-06-11T08:51:01.093Z"}

tried with include option but that results in some error

curl -X GET \
  --data-urlencode "include=opponents" \
  https://api.parse.com/1/classes/GameScore/cwYIEwFaq9

result:

code 107, invalid JSON

What am I doing wrong?

like image 894
Abhinav Gujjar Avatar asked Dec 15 '25 13:12

Abhinav Gujjar


1 Answers

why are you using "Remove" to add a relation? Look at the docs again.

go to Docs section "Creating Roles" again....

 "__op": "AddRelation",
          "objects": [
            {
              "__type": "Pointer",
              "className": "_Role",
              "objectId": "Ed1nuqPvc"
            }
          ]

-- EDIT to get using "include=opponents" you could create with this:

{"opponents":{"__op":"Add","objects":[{"__type":"Pointer","className":"_Role","objectId":"Ed1..."}]}}
like image 165
Robert Rowntree Avatar answered Dec 19 '25 06:12

Robert Rowntree



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!