diff --git a/src/main/java/org/mamute/controllers/IndexController.java b/src/main/java/org/mamute/controllers/IndexController.java new file mode 100644 index 000000000..215eb070a --- /dev/null +++ b/src/main/java/org/mamute/controllers/IndexController.java @@ -0,0 +1,43 @@ +package org.mamute.controllers; + +import br.com.caelum.brutauth.auth.annotations.CustomBrutauthRules; +import br.com.caelum.vraptor.Controller; +import br.com.caelum.vraptor.Post; +import br.com.caelum.vraptor.Result; +import org.mamute.brutauth.auth.rules.ModeratorOnlyRule; +import org.mamute.dao.QuestionDAO; +import org.mamute.model.Question; +import org.mamute.search.QuestionIndex; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.inject.Inject; +import java.util.List; + +@Controller +public class IndexController { + private static final Logger LOGGER = LoggerFactory.getLogger(IndexController.class); + + @Inject + private Result result; + @Inject + private QuestionIndex index; + @Inject + private QuestionDAO dao; + + @CustomBrutauthRules(ModeratorOnlyRule.class) + @Post("/msdf0fhq924pqpsdl") + public void indexSync() { + long pages = dao.numberOfPages(); + long total = 0; + for (int i = 0; i < pages; i++) { + List q = dao.allVisible(i); + index.indexQuestionBatch(q); + total += q.size(); + } + + LOGGER.info("Synced " + total + " questions"); + result.nothing(); + } + +} diff --git a/src/main/java/org/mamute/controllers/SearchController.java b/src/main/java/org/mamute/controllers/SearchController.java index 9489bdd68..11cce0d10 100644 --- a/src/main/java/org/mamute/controllers/SearchController.java +++ b/src/main/java/org/mamute/controllers/SearchController.java @@ -2,13 +2,13 @@ import javax.inject.Inject; +import br.com.caelum.vraptor.Controller; +import br.com.caelum.vraptor.Get; +import br.com.caelum.vraptor.Result; import org.mamute.dao.QuestionDAO; import org.mamute.model.Question; import org.mamute.sanitizer.HtmlSanitizer; -import br.com.caelum.vraptor.Controller; -import br.com.caelum.vraptor.Get; -import br.com.caelum.vraptor.Result; import br.com.caelum.vraptor.environment.Environment; import br.com.caelum.vraptor.routes.annotation.Routed; import org.mamute.search.QuestionIndex; @@ -48,17 +48,4 @@ public void indexSearch(String query) { result.include("results", questions); result.include("query", sanitized); } - - @Get - public void indexSync() { - long pages = dao.numberOfPages(); - long total = 0; - for (int i = 0; i < pages; i++) { - List q = dao.allVisible(i); - index.indexQuestionBatch(q); - total += q.size(); - } - - result.include("total", total); - } } diff --git a/src/main/resources/routes.properties b/src/main/resources/routes.properties index 45a6f15f6..6e265fc1a 100644 --- a/src/main/resources/routes.properties +++ b/src/main/resources/routes.properties @@ -67,7 +67,6 @@ RssController.newsRss = /news/rss SearchController.search = /search SearchController.indexSearch = /indexSearch -SearchController.indexSync = /indexSync SignupController.signupForm = /sign-up SignupController.signup = /sign-up