arnantoakbar
10 years agoContributor
How to get latest Idea based on Status using LIQL?
Hi Guys,
I want to create some widget that retrieve list of latest Ideas based on their statuses using LIQL.
So I start with this query to begin:
SELECT subject, view_href, status.name FROM messages WHERE board.id='Idea-Center' and depth=0 ORDER BY post_time DESC LIMIT 2
and here's what I get:
{ "status" : "success", "message" : "", "http_code" : 200, "data" : { "type" : "messages", "list_item_type" : "message", "size" : 2, "items" : [ { "type" : "message", "view_href" : "/t5/Idea-Center/uat-test/idi-p/2077", "subject" : "[uat] test", "status" : { "type" : "message_status", "name" : "Untuk Masa Depan" } }, { "type" : "message", "view_href" : "/t5/Idea-Center/uat-test/idi-p/2073", "subject" : "[uat] test", "status" : { "type" : "message_status", "name" : "Baru" } } ] }, "metadata" : { } }
Then, I want to shortlist the result based on the status.name = 'Baru'. So, here's my updated LIQL:
SELECT subject, view_href, status.name FROM messages WHERE board.id='Idea-Center' and depth=0 and status.name='Baru' ORDER BY post_time DESC LIMIT 2
But, I get an error like this:
{ "status" : "error", "message" : "invalid query syntax for SELECT subject,view_href,status.name FROM messages WHERE board.id = 'Idea-Center' AND depth = 0 AND status.name = 'Baru' ORDER BY post_time DESC", "data" : { "type" : "error_data", "code" : 604, "developer_message" : "'status.name' is not a valid constraint for the object 'messages'. in: SELECT subject,view_href,status.name FROM messages WHERE board.id = 'Idea-Center' AND depth = 0 AND status.name = 'Baru' ORDER BY post_time DESC", "more_info" : "" }, "metadata" : { } }
As you can see in http://community.lithium.com/t5/Community-API-v2/Message-resource/ta-p/113091 article, the status.name is part of messages. So, why can't I use it like board.id?
Thanks Guys,
arnantoakbar yes, status.name is part of messages, but you can't use it as a constraint (e.g. in a WHERE clause). The only workaround I can think is to loop through your result and do what you have to do when status.name = 'Baru'