Hi Mark,

> On 20 May 2016, at 16:45, Mark Sack <mark.s...@secti.al.gov.br> wrote:
> 
> In our Xwiki, I've added some fields such as birthday (of type Date) to the
> user profile. I'd like to implement a REST call that retrieves all of the
> non-hidden users with birthdays in a specific month (typically the current
> month) and some specific attribute values. Right now the values I want are
> the first name, last name, birthday and the link to the avatar image file. I
> have bits and pieces of the solution but am having trouble with some parts -
> specifically how to put it together into a single REST call.
> 
> PROBLEM 1: I can create a page with a script like the following to filter
> some users and display their names.
> {{velocity}}
> #set ($tags=$services.query.xwql("select obj.first_name from Document doc,
> doc.object(XWiki.XWikiUsers) as obj where (obj.first_name LIKE '%a%' and
> (doc.hidden <> true OR doc.hidden is null))").execute())
> $tags
> {{/velocity}}
> 
> But if I try to execute that query in a REST call like the following, the
> result is different
> .../rest/wikis/query?q=select+obj.first_name+from+Document+doc%2C+doc.object%28XWiki.XWikiUsers%29+as+obj+where+%28obj.first_name+LIKE+%27%25a%25%27+and+%28doc.hidden+%3C%3E+true+OR+doc.hidden+is+null%29%29&type=xwql
> 
> The REST call returns some data completely unrelated to the users:
> <searchResults
> template="http://...rest?q={solrquery}(&number={number})(&start={start})(&orderField={fieldname}(&order={asc|desc}))(&distinct=1)(&prettyNames={false|true})(&wikis={wikis})(&className={classname})"><searchResult><link
> href="http://...rest/wikis/xwiki/spaces/XWiki/pages/DocumentTreeMacros";
> rel="http://www.xwiki.org/rel/page"/><type>page</type><id>xwiki:XWiki.DocumentTreeMacros</id><pageFullName>XWiki.DocumentTreeMacros</pageFullName><wiki>xwiki</wiki><space>XWiki</space><pageName>DocumentTreeMacros</pageName><modified>2016-02-15T12:14:34-03:00</modified><author>xwiki:XWiki.Admin</author><version>4.1</version><score>0.62450576</score></searchResult><searchResult><link
> href="http://...rest/wikis/xwiki/spaces/XWiki/pages/DocumentTree";
> rel="http://www.xwiki.org/rel/page"/><type>page</type><id>xwiki:XWiki.DocumentTree</id><pageFullName>XWiki.DocumentTree</pageFullName><wiki>xwiki</wiki><space>XWiki</space><pageName>DocumentTree</pageName><modified>2016-01-27T10:23:05-03:00</modified><author>xwiki:XWiki.Admin</author><version>2.1</version><score>0.5804536</score></searchResult><searchResult><link
> href="http://...rest/wikis/xwiki/spaces/Panels/pages/DocumentInformation";
> rel="http://www.xwiki.org/rel/page"/><type>page</type><id>xwiki:Panels.DocumentInformation</id><pageFullName>Panels.DocumentInformation</pageFullName><wiki>xwiki</wiki><space>Panels</space><pageName>DocumentInformation</pageName><modified>2016-01-12T09:56:52-03:00</modified><author>xwiki:XWiki.superadmin</author><version>1.1</version><score>0.4841085</score></searchResult>
> 
> PROBLEM 2: If I try to implement a query that retrieves multiple fields from
> the user profile like the following:
> {{velocity}}
> #set ($tags=$services.query.xwql("select obj.first_name, obj.last_name,
> obj.birthday from Document doc, doc.object(XWiki.XWikiUsers) as obj where
> (obj.first_name LIKE '%a%' and (doc.hidden <> true OR doc.hidden is
> null))").execute())
> $tags
> {{/velocity}}
> 
> the data displayed in the xwiki page looks like the following instead the
> actual attribute values:
> 
> [[Ljava.lang.Object;@723f4d95, [Ljava.lang.Object;@4054e1bb,
> [Ljava.lang.Object;@436c8d04, [Ljava.lang.Object;@5c93ddc1,
> [Ljava.lang.Object;@54c86023, [Ljava.lang.Object;@33760a38,
> [Ljava.lang.Object;@14d5b5ff, [Ljava.lang.Object;@566a1f71,
> [Ljava.lang.Object;@41b4b4e7, [Ljava.lang.Object;@42904123,
> [Ljava.lang.Object;@7b536ec3, [Ljava.lang.Object;@7d44674f,
> [Ljava.lang.Object;@1933e78c, [Ljava.lang.Object;@59ea34d0,
> [Ljava.lang.Object;@392f7c58, [Ljava.lang.Object;@678f1a2d,
> [Ljava.lang.Object;@61868ed7, [Ljava.lang.Object;@69426a83,
> [Ljava.lang.Object;@2bcd164f, [Ljava.lang.Object;@340c3f69,
> [Ljava.lang.Object;@6129ef09, [Ljava.lang.Object;@1b4587dd,
> [Ljava.lang.Object;@58799594, [Ljava.lang.Object;@d5b1e85,
> [Ljava.lang.Object;@2324f980, [Ljava.lang.Object;@1468f956,
> [Ljava.lang.Object;@290b7a]


You get a list Object[] each Object corresponding to a column of your select.
For ex Object[0] is the “obj.first_name”, etc.

Thanks
-Vincent

> 
> Regards
> Mark Sack
> 
> View this message in context: 
> http://xwiki.475771.n2.nabble.com/REST-query-to-fetch-filtered-list-of-users-and-some-of-their-attributes-tp7599550.html
> Sent from the XWiki- Users mailing list archive at Nabble.com.

_______________________________________________
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users

Reply via email to