Commit Graph

149 Commits

Author SHA1 Message Date
Michael McCaskill 23ef6bf865 Fix nasty delete bug 2016-07-28 16:32:23 -04:00
Michael McCaskill 7e8a70d756 Generate new data with lifetime 2016-07-28 16:19:58 -04:00
Michael McCaskill 1c35aca741 Add lifetime installs
Makes it easier to sort
2016-07-28 16:19:47 -04:00
Michael McCaskill 5499859b22 Forgot to add from add SortBy 2016-07-28 16:18:13 -04:00
Michael McCaskill 5abd455ab7 Upgrade to Elasticsearch 2.3.4
Supports date format "epoch_millis" which is what Stats should be
2016-07-28 16:15:57 -04:00
Michael McCaskill 6e7be6edfd Add SortBy 2016-07-28 16:14:36 -04:00
Michael McCaskill 528cb21fb9 Add integration test 2016-07-27 22:19:34 -04:00
Michael McCaskill 5598ac99a9 First attempt at Jenkinsfile with tests 2016-07-27 11:44:15 -04:00
Michael McCaskill c96ff2b313 Add DatastoreServiceTest 2016-07-27 11:44:03 -04:00
Michael McCaskill 51fddda273 Add Docker instructions 2016-07-26 19:11:54 -04:00
Michael McCaskill f08a14fa09 Add Dockerfile
It works locally but it needs to be deployed to a real environment
2016-07-26 18:14:26 -04:00
Michael McCaskill 1356fe4ae6 Change artifactId 2016-07-26 17:48:41 -04:00
Michael McCaskill 514343937f Add API reference and app documentation 2016-07-26 00:24:53 -04:00
Michael McCaskill 5422fd6c9a Import clean up 2016-07-25 23:46:54 -04:00
Michael McCaskill de8842c55d Add Categories model 2016-07-25 23:45:47 -04:00
Michael McCaskill 02f2dd1b29 Add Labels model 2016-07-25 23:41:39 -04:00
Michael McCaskill 060d865277 Add Plugins model 2016-07-25 23:38:39 -04:00
Michael McCaskill 4e16d6ac4c Add Category model 2016-07-25 22:58:11 -04:00
Michael McCaskill a125dbbbc2 Add Label model 2016-07-25 22:42:30 -04:00
Michael McCaskill d8c79bffe0 Refactor labels to include title if found
Now labels' titles are in the GET /labels call. Get /categories only
returns label ids. So to do a lookup you need both calls, and the
front-end is already making two calls anyway. Also to add a title to
label one simply adds it to labels.json
2016-07-25 22:33:34 -04:00
Michael McCaskill ca3a5f2193 Fix generating labelToCategoryMap 2016-07-25 22:32:03 -04:00
Michael McCaskill b074bcf4dc Update with categories fixed 2016-07-25 22:12:18 -04:00
Michael McCaskill 693dffff77 Flatten categories
Will adjust GET /labels to put titles in
2016-07-25 22:11:25 -04:00
Michael McCaskill a6b9f2a1ca Move stats to separate object 2016-07-25 22:09:55 -04:00
Michael McCaskill 094d7bbdf8 Update file using process 2016-07-25 21:32:32 -04:00
Michael McCaskill a09ddb3204 Separate process to generate plugin data
This could be run in a Jenkins job and eventually output the JSON file
to the cloud so that app could reindex in real-time without requiring
another app build or deployment.
2016-07-25 21:30:56 -04:00
Michael McCaskill a96c8b961e Remove JobScheduler
No longer needed
2016-07-22 18:18:39 -04:00
Michael McCaskill 9cc92ed332 Simplify indexing process
It's unscable to index at startup along with making ~1.2k HTTP calls to
get stats plus possibly another ~1.2k HTTP calls to scrape HTML content.
The plan moving forward is to rely on the build process to generate JSON
file(s) that include all pertinent information so that all that has to
happen at startup is the app reads these files and performs simple
indexing.

In the future these files shouldn't be bundled with the WAR but hosted
on S3 thereby making it possible to freshen the data without having to
rebuild the app. Ideally we'll have a REST endpoint that tells the app
to reindex using the file from S3.
2016-07-22 18:00:25 -04:00
Michael McCaskill 085bdc9eef Split out ObjectMapper 2016-07-22 13:00:17 -04:00
Michael McCaskill c74487297a Introduce Plugin POJO
It seems beneficial to have a solid data model to represent plugins that
this API will be returning. It's much easier to identify the data model
from a POJO than it is from reading random JSON. Also should the
datastore shift from Elasticsearch to something else ideally very little
code will have to change.
2016-07-21 16:09:58 -04:00
Michael McCaskill a054fac700 Change array key to 'docs'
Change to what Gus expects in the frontend
2016-07-19 14:18:14 -04:00
Michael McCaskill 65cd577295 Tweak thread pool, add logging 2016-07-18 15:06:58 -04:00
Michael McCaskill 8857a29da9 Fix possible NPE 2016-07-18 14:54:37 -04:00
Michael McCaskill 9e23d20507 Add /labels, additional logging 2016-07-18 14:54:16 -04:00
Michael McCaskill 96b033c2e1 Add get to DatastoreService 2016-07-17 22:02:31 -04:00
Michael McCaskill af9f9fbf8a Fix mapping typo 2016-07-17 21:42:35 -04:00
Michael McCaskill ac45b5e82e Rename endpoints 2016-07-17 16:18:06 -04:00
Michael McCaskill b7520447b6 Move things around 2016-07-17 16:09:30 -04:00
Michael McCaskill 7d60923044 Tone down logging 2016-07-17 16:01:52 -04:00
Michael McCaskill 87babcb775 Properly load JobScheduler 2016-07-17 16:01:04 -04:00
Michael McCaskill e151ed71c2 Switch params to List 2016-07-17 13:14:19 -04:00
Michael McCaskill f6327d1fea Force logging over SLF4j 2016-07-17 13:10:58 -04:00
Michael McCaskill 3e4fc81bfc Separate binders 2016-07-17 13:10:04 -04:00
Michael McCaskill da510f88a1 Remove annotations
They're not being recognized by Jersey. Apparently in Jersey you have to
explicitly declare DI components.
2016-07-17 08:30:32 -04:00
Michael McCaskill 9fe32f1f34 Add SearchService 2016-07-17 08:24:33 -04:00
Michael McCaskill 1e578248a2 Rename db to datastore 2016-07-17 07:46:35 -04:00
Michael McCaskill cc293a15dd Add categories 2016-07-16 00:11:26 -04:00
Michael McCaskill 26457f1277 Transform ES objects to JSON 2016-07-15 23:38:00 -04:00
Michael McCaskill 6b4ba28078 Initial commit 2016-07-15 11:38:52 -04:00