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