Search in sources :

Example 1 with Result

use of play.mvc.Result in project modules.playframework.org by playframework.

the class Categories method addNewCategory.

public static Result addNewCategory() {
    Result result;
    Form<Category> form = form(Category.class).bindFromRequest();
    if (form.hasErrors()) {
        result = badRequest(categories.render(currentUser(), Category.getAll(), form));
    } else {
        Category category = form.get();
        category.save();
        result = redirect(routes.Categories.showCategories());
    }
    return result;
}
Also used : Category(models.Category) Result(play.mvc.Result)

Example 2 with Result

use of play.mvc.Result in project modules.playframework.org by playframework.

the class FeaturedModules method delete.

public static Result delete() {
    Map<String, String[]> postParams = request().body().asFormUrlEncoded();
    String[] ids = postParams.get("id");
    Result result;
    if (ids.length != 1) {
        result = badRequest("A featured module must be defined");
    } else {
        FeaturedModule featuredModule = FeaturedModule.FIND.byId(Long.parseLong(ids[0]));
        featuredModule.delete();
        ObjectNode node = Json.newObject();
        node.put("id", featuredModule.id);
        result = ok(node);
    }
    return result;
}
Also used : ObjectNode(org.codehaus.jackson.node.ObjectNode) FeaturedModule(models.FeaturedModule) Result(play.mvc.Result)

Example 3 with Result

use of play.mvc.Result in project modules.playframework.org by playframework.

the class FeaturedModules method addNewFeaturedModule.

public static Result addNewFeaturedModule() {
    Result result;
    Form<FeaturedModule> form = form(FeaturedModule.class).bindFromRequest();
    if (form.hasErrors()) {
        result = badRequest(featuredModules.render(currentUser(), FeaturedModule.getAll(), form));
    } else {
        FeaturedModule featuredModule = form.get();
        Ebean.refresh(featuredModule.playModule);
        if (StringUtils.isEmpty(featuredModule.description)) {
            featuredModule.description = featuredModule.playModule.description;
        }
        featuredModule.creationDate = new Date();
        featuredModule.save();
        result = redirect(routes.FeaturedModules.showFeaturedModules());
    }
    return result;
}
Also used : FeaturedModule(models.FeaturedModule) Date(java.util.Date) Result(play.mvc.Result)

Example 4 with Result

use of play.mvc.Result in project modules.playframework.org by playframework.

the class Modules method details.

public static Result details(String moduleKey) {
    Result result;
    final Module module = Module.findByModuleKey(moduleKey);
    if (module == null) {
        result = notFound("Module not found: " + moduleKey);
    } else {
        List<ModuleVersion> moduleVersions = ModuleVersion.findByModule(module);
        User user = currentUser();
        Rate rate = null;
        Vote vote = null;
        if (user != null) {
            rate = CollectionUtils.filterFirst(user.rates, new Filter<Rate>() {

                public boolean isAcceptable(Rate rate) {
                    return rate.playModule.id.equals(module.id);
                }
            });
            vote = CollectionUtils.filterFirst(user.votes, new Filter<Vote>() {

                public boolean isAcceptable(Vote vote) {
                    return vote.playModule.id.equals(module.id);
                }
            });
        }
        Set<PlayVersion.MajorVersion> majorVersions = new HashSet<PlayVersion.MajorVersion>();
        for (ModuleVersion moduleVersion : moduleVersions) {
            majorVersions.addAll(moduleVersion.getMajorVersions());
        }
        Ebean.refresh(module.rating);
        result = ok(moduleDetails.render(user, module, moduleVersions, majorVersions, rate, vote));
    }
    return result;
}
Also used : Vote(models.Vote) CurrentUser.currentUser(actions.CurrentUser.currentUser) CurrentUser(actions.CurrentUser) User(models.User) ModuleVersion(models.ModuleVersion) Filter(utils.Filter) Rate(models.Rate) PlayVersion(models.PlayVersion) Module(models.Module) Result(play.mvc.Result) HashSet(java.util.HashSet)

Example 5 with Result

use of play.mvc.Result in project modules.playframework.org by playframework.

the class Modules method voteDown.

@RoleHolderPresent
public static Result voteDown(String moduleKey) {
    Result result;
    final Module module = Module.findByModuleKey(moduleKey);
    if (module == null) {
        result = notFound("Module not found: " + moduleKey);
    } else {
        User user = currentUser();
        Vote vote = CollectionUtils.filterFirst(user.votes, new Filter<Vote>() {

            @Override
            public boolean isAcceptable(Vote vote) {
                return vote.playModule.id.equals(module.id);
            }
        });
        if (vote != null) {
            if (vote.voteType == Vote.VoteType.UP) {
                --module.upVoteCount;
                ++module.downVoteCount;
                vote.voteType = Vote.VoteType.DOWN;
                vote.save();
                module.save();
            } else {
                Logger.info(String.format("User [%s] tried to downvote module [%s] but vote already existed", user.userName, module.key));
            }
        } else {
            vote = new Vote();
            vote.playModule = module;
            vote.voteType = Vote.VoteType.DOWN;
            // support for public voting comes later
            vote.publicVote = false;
            user.votes.add(vote);
            user.save();
            ++module.downVoteCount;
            module.save();
        }
        VoteResponseForm responseForm = new VoteResponseForm();
        responseForm.upVotes = module.upVoteCount;
        responseForm.downVotes = module.downVoteCount;
        result = ok(Json.toJson(responseForm));
    }
    return result;
}
Also used : Vote(models.Vote) CurrentUser.currentUser(actions.CurrentUser.currentUser) CurrentUser(actions.CurrentUser) User(models.User) Module(models.Module) VoteResponseForm(forms.modules.VoteResponseForm) Result(play.mvc.Result) RoleHolderPresent(be.objectify.deadbolt.actions.RoleHolderPresent)

Aggregations

Result (play.mvc.Result)17 CurrentUser (actions.CurrentUser)7 CurrentUser.currentUser (actions.CurrentUser.currentUser)7 User (models.User)7 Module (models.Module)6 RoleHolderPresent (be.objectify.deadbolt.actions.RoleHolderPresent)5 PlayVersion (models.PlayVersion)4 FeaturedModule (models.FeaturedModule)3 Vote (models.Vote)3 VoteResponseForm (forms.modules.VoteResponseForm)2 Date (java.util.Date)2 Category (models.Category)2 ModuleVersion (models.ModuleVersion)2 Rate (models.Rate)2 ObjectNode (org.codehaus.jackson.node.ObjectNode)2 Filter (utils.Filter)2 IndexResults (com.github.cleverage.elasticsearch.IndexResults)1 Login (forms.login.Login)1 Register (forms.login.Register)1 RatingForm (forms.modules.RatingForm)1