Yes I tried. They are expecting it in the post body. Thank you Dinithi De Silva Associate Software Engineer
Mob: +94 716 667 655 On Thu, Sep 11, 2014 at 9:28 AM, Malaka Silva <mal...@wso2.com> wrote: > Hi Dinithi, > > Did you try to invoke this directly using a client. > > Are they expecting the values to be in url or in post body? > > http://api.toodledo.com/3/tasks/index.php#adding > > Best Regards, > Malaka > > On Wed, Sep 10, 2014 at 11:33 PM, Dinithi De Silva <dinit...@wso2.com> > wrote: > >> I am trying to develop an ESB connector for ToodleDo API v3. In that API, >> I need to add an array of tasks with various parameters. The number of >> parameters in one element of the array, can be different from other >> elements. >> The API call looks as below. >> >> http://api.toodledo.com/3/tasks/add.php >> access_token=yourtoken >> tasks=[{"title"%3A"My >> Task"}%2C{"title"%3A"Another"%2C"star"%3A"1"%2C"ref"%3A"98765"}%2C{"title"%3A""%2C"ref"%3A"1234"}] >> fields=folder,star >> >> >> Tasks are added by creating a JSON object and submitting a POST to the >> API. >> Also I need to encode the data before transferring via the URL. >> >> I tried this operation by using javascript. I just tried with two >> parameters in the array (Mandatory -title and optional - star). My code is >> as below. >> >> <![CDATA[ >> >> var added = 0; >> var query = ""; >> >> var taskString = '{"tasks":' + >> mc.getProperty('uri.var.tasks') + '}'; >> >> if (mc.getProperty('uri.var.tasks') != null && >> mc.getProperty('uri.var.tasks') != "") { >> >> var taskObj = eval ("(" + taskString + ")"); >> >> if(Boolean(added)) { >> query = query + ',"tasks":['; >> }else { >> query = query + '"tasks":['; >> added = 1; >> } >> >> var count = 0; >> for (var i in taskObj.tasks) { >> if (taskObj.tasks.hasOwnProperty(i)) { >> if(count == 0 ) { >> query=query + >> '{\"title\":\"'+mc.getProperty('uri.var.title')+'\",'; >> query=query + >> '{\"star\":\"'+mc.getProperty('uri.var.star')+'\"}'; >> count =1; >> }else { >> query=query + >> ',{\"title\":\"'+mc.getProperty('uri.var.title')+'\",'; >> query=query + >> '{\"star\":\"'+mc.getProperty('uri.var.star')+'\"}'; >> } >> >> } >> } >> >> query = query + ']'; >> >> var encoded_query= encodeURIComponent(query); >> } >> mc.setProperty('uri.var.encoded_query', encoded_query); >> >> ]]> >> </script> >> >> >> And I have wrritten the payload factory as below. >> >> <payloadFactory media-type="xml"> >> <format> >> <xform> >> <access_token>$1</access_token> >> <tasks>$2</tasks> >> <fields>$3</fields> >> </xform> >> <!--{ "access_token" : "$1", >> "tasks" : "$2" "fields" : "$3" }--> >> </format> >> <args> >> <arg expression="$func:access_token" /> >> <arg expression="get-property('uri.var.encoded_query')" /> >> <arg expression="$func:fields" /> >> </args></payloadFactory> >> >> >> >> But it gives me an error as below. >> >> [2014-09-10 22:39:22,129] ERROR - SynapseJsonPath #stringValueOf. Error >> evaluating JSON Path <$.access_token>. Returning empty result. Error>>> >> Unexpected character ({) at position 96. >> [2014-09-10 22:39:22,130] ERROR - SynapseJsonPath #stringValueOf. Error >> evaluating JSON Path <$.tasks>. Returning empty result. Error>>> Unexpected >> character ({) at position 96. >> [2014-09-10 22:39:22,130] ERROR - SynapseJsonPath #stringValueOf. Error >> evaluating JSON Path <$.fields>. Returning empty result. Error>>> >> Unexpected character ({) at position 96. >> [2014-09-10 22:39:22,132] ERROR - ScriptMediator Failed to get the JSON >> payload from the input stream. Error>>> >> com.google.gson.stream.MalformedJsonException: Expected name at line 1 >> column 101 >> >> >> What am I missing? >> How can I modify this to work with all the optional parameters? >> >> Thank you >> Dinithi De Silva >> Associate Software Engineer >> >> Mob: +94 716 667 655 >> >> _______________________________________________ >> Dev mailing list >> Dev@wso2.org >> http://wso2.org/cgi-bin/mailman/listinfo/dev >> >> > > > -- > > Best Regards, > > Malaka Silva > Senior Tech Lead > M: +94 777 219 791 > Tel : 94 11 214 5345 > Fax :94 11 2145300 > Skype : malaka.sampath.silva > LinkedIn : http://www.linkedin.com/pub/malaka-silva/6/33/77 > Blog : http://mrmalakasilva.blogspot.com/ > > WSO2, Inc. > lean . enterprise . middleware > http://www.wso2.com/ > http://www.wso2.com/about/team/malaka-silva/ > <http://wso2.com/about/team/malaka-silva/> > > Save a tree -Conserve nature & Save the world for your future. Print this > email only if it is absolutely necessary. >
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev