Package controllers

Source Code of controllers.TrackRestController

package controllers;

import models.Proposal;
import models.Track;
import models.User;
import models.utils.TransformValidationErrors;
import play.data.Form;
import play.i18n.Messages;
import play.mvc.Result;
import securesocial.core.java.SecureSocial;

import java.util.List;

import static play.data.Form.form;
import static play.libs.Json.toJson;


@SecureSocial.SecuredAction(ajaxCall = true)
public class TrackRestController extends BaseController {

    public static Result get(Long id) {
        Track track = Track.find.byId(id);
        if (track == null || !track.getEvent().equals(getEvent())) {
            return noContent();
        }
        return ok(toJson(track));
    }



    public static Result getProposals(Long id) {
        Track track = Track.find.byId(id);
        if (track == null || !track.getEvent().equals(getEvent())) {
            return noContent();
        }

        Proposal.Status status = Proposal.Status.ACCEPTED;

        List<Proposal> proposals = Proposal.findByTrackAndStatus(track, status);
        for (Proposal proposal : proposals) {
            proposal.fiteredCoSpeakers();
        }
        return ok(toJson(proposals));
    }

    public static Result all() {
        return ok(toJson(Track.findByEvent(getEvent())));
    }

    public static Result delete(Long id) {

        // Vérification du rôle d'admin
        User user = getLoggedUser();
        if (!user.admin && !user.hasEvent(getEvent())) {
            return forbidden();
        }

        Track track = Track.find.byId(id);
        if (track != null && track.getEvent().equals(getEvent())) {
            track.delete();
        }
        // HTTP 204 en cas de succès (NO CONTENT)
        return noContent();
    }

    public static Result save() {

        // Vérification du rôle d'admin
        User user = getLoggedUser();
        if (!user.admin && !user.hasEvent(getEvent())) {
            return forbidden();
        }

        Form<Track> trackForm = form(Track.class).bindFromRequest();

        if (trackForm.hasErrors()) {
            return badRequest(toJson(TransformValidationErrors.transform(trackForm.errors())));
        }

        Track formTrack = trackForm.get();

        if (formTrack.getId() == null) {
            // Nouveau Track
            if (Track.findByTitleAndEvent(formTrack.getTitle(),getEvent()) != null) {
                return badRequest(toJson(TransformValidationErrors.transform(Messages.get("error.track.already.exist"))));
            }
            if (Track.findByShortTitleAndEvent(formTrack.getShortTitle(),getEvent()) != null) {
                return badRequest(toJson(TransformValidationErrors.transform(Messages.get("error.track.shortTitle.already.exist"))));
            }
            formTrack.setEvent(getEvent());
            formTrack.save();
        } else {
            // Mise à jour d'un track
            Track dbTrack = Track.find.byId(formTrack.getId());
            if (!formTrack.getTitle().equals(dbTrack.getTitle())
                    && Track.findByTitleAndEvent(formTrack.getTitle(),getEvent()) != null) {
                return badRequest(toJson(TransformValidationErrors.transform(Messages.get("error.track.already.exist"))));
            }

            if (!formTrack.getShortTitle().equals(dbTrack.getShortTitle())
                    && Track.findByShortTitleAndEvent(formTrack.getShortTitle(),getEvent()) != null) {
                return badRequest(toJson(TransformValidationErrors.transform(Messages.get("error.track.shortTitle.already.exist"))));
            }

            dbTrack.setTitle(formTrack.getTitle());
            dbTrack.setShortTitle(formTrack.getShortTitle());
            dbTrack.setDescription(formTrack.getDescription());
            dbTrack.update();
        }

        // HTTP 204 en cas de succès (NO CONTENT)
        return noContent();
    }
}
TOP

Related Classes of controllers.TrackRestController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.