I've been asked to build a custom dashboard in the backoffice of a v7.15 site, which is intended to help content editors find stale content to prioritise for review. For my first basic attempt I've been trying to use the various API services in javascript to simply query content that hasn't been published since X days ago. It's is turning out to be more difficult than I thought! I've tried the following:
entityResource.searchAll - only finds nodes matching a search term, lucene query syntax doesn't seem to work
entityResource.getAll - gets all documents and then have to iterate through them, there's a filter param but it just seems to be a keyword match
contentResource.getById - used while iterating through individual documents, gets every property for every document which performs very poorly
contentResource.getByIds - as above but in batches, slightly less horrible but still completely unsuited for this purpose
Are there any API methods where I can specify even basic query parameters to accomplish something like "get content where published date < whatever"? I'd even settle for xpath. My other idea was to use C# to query Examine directly and provide that to the dashboard, but I'm not quite sure how to do that...
Currently I only have two working solutions
Iterate over every single node using contentResource.getById[s]. Creates loads of GET requests, has awful performance, I don't even want to think about the perf impact later on when we have thousands of items
An SQL query in PowerBI, which sucks because I really wanted this to be easily accessible from within Umbraco. Currently it's just querying on cmsContentVersion.VersionDate and joining that back to umbracoNode etc. Works fine, but it's not a long-term solution.
Would really appreciate any suggestions or ideas that anyone might have.
Yes there isn't as far as I'm aware a resource that would 'do the job' for the query you need.
But you could create an API controller inheriting from UmbracoAuthorizedApiController that creates an API endpoint that queries data via examine and exposes the results to be consumed from AngularJS...
In the dim and distant past I created a similar dashboard for a client so you might find some inspiration here:
Querying for content using the backoffice APIs
I've been asked to build a custom dashboard in the backoffice of a v7.15 site, which is intended to help content editors find stale content to prioritise for review. For my first basic attempt I've been trying to use the various API services in javascript to simply query content that hasn't been published since X days ago. It's is turning out to be more difficult than I thought! I've tried the following:
Are there any API methods where I can specify even basic query parameters to accomplish something like "get content where published date < whatever"? I'd even settle for xpath. My other idea was to use C# to query Examine directly and provide that to the dashboard, but I'm not quite sure how to do that...
Currently I only have two working solutions
Would really appreciate any suggestions or ideas that anyone might have.
Hi Matt
Yes there isn't as far as I'm aware a resource that would 'do the job' for the query you need.
But you could create an API controller inheriting from UmbracoAuthorizedApiController that creates an API endpoint that queries data via examine and exposes the results to be consumed from AngularJS...
In the dim and distant past I created a similar dashboard for a client so you might find some inspiration here:
https://github.com/marcemarc/tooorangey.ContentReview
Regards
Marc
Yeah, that's pretty much what we ended up doing. Thanks!
is working on a reply...