Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package rest;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.List;
- import javax.ws.rs.Consumes;
- import javax.ws.rs.DELETE;
- import javax.ws.rs.GET;
- import javax.ws.rs.POST;
- import javax.ws.rs.PUT;
- import javax.ws.rs.Path;
- import javax.ws.rs.PathParam;
- import javax.ws.rs.Produces;
- import javax.ws.rs.QueryParam;
- import javax.ws.rs.FormParam;
- import javax.ws.rs.core.MediaType;
- import javax.ws.rs.core.Response;
- import javax.ws.rs.core.Response.ResponseBuilder;
- import com.google.appengine.api.quota.QuotaService;
- import com.google.appengine.api.quota.QuotaServiceFactory;
- import Entity.Kurt;
- import Entity.Rezervace;
- import Entity.Osoba;
- import Extra.JQueryDate;
- import SystemFacade.SystemFacade;
- import converter.ReservationConverter;
- import converter.ReservationsConverter;
- import java.util.regex.*;
- @Path("/reservation")
- public class ReservationResource {
- SystemFacade facade = new SystemFacade();
- @GET
- @Produces(MediaType.APPLICATION_XML)
- public Response getReservations(@QueryParam("all") boolean all) {
- if(all == true){
- ResponseBuilder builder = Response.status(Response.Status.OK);
- List<Rezervace> res = facade.getAllReservations();
- ReservationsConverter resOutput = new ReservationsConverter(res, true);
- builder.entity(resOutput);
- return builder.build();
- }else{
- ResponseBuilder builder = Response.status(Response.Status.OK);
- List<Rezervace> res = facade.getAllReservations();
- ReservationsConverter resOutput = new ReservationsConverter(res, false);
- builder.entity(resOutput);
- return builder.build();
- }
- }
- @GET
- @Produces(MediaType.APPLICATION_XML)
- @Path("/{id}")
- public Response getReservation(@PathParam("id") String id) {
- ResponseBuilder builder = Response.status(Response.Status.OK);
- Rezervace reservation = null;
- try {
- Long idvalue = new Long(id).longValue();
- reservation = facade.getRezervaceByID(idvalue);
- } catch (Exception e) {}
- if (reservation == null) {
- return Response.status(Response.Status.NOT_FOUND).entity("Dana rezervace neexistuje!").type(MediaType.TEXT_PLAIN).build();
- }
- ReservationConverter reservationOutput = new ReservationConverter(reservation);
- builder.entity(reservationOutput);
- return builder.build();
- }
- @POST
- @Produces(MediaType.TEXT_PLAIN)
- @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
- @Path("/")
- public Response createReservation(@FormParam("username") String username, @FormParam("password") String password, @FormParam("from") String fromDate, @FormParam("to") String toDate) {
- if(username == null || password == null){
- return Response.status(Response.Status.BAD_REQUEST).entity("Nebyly zadane prihlasovaci udaje").type(MediaType.TEXT_PLAIN).build();
- }else if(fromDate == null || toDate == null){
- return Response.status(Response.Status.BAD_REQUEST).entity("Spatne zadane parametry").type(MediaType.TEXT_PLAIN).build();
- }else{
- Osoba user = facade.getUserDetailByName(username);
- if(user == null){
- return Response.status(Response.Status.FORBIDDEN).entity("Prihlaseni se nezdarilo").type(MediaType.TEXT_PLAIN).build();
- }
- if( (user.getPassword().equals(password))){
- String regDate = "(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/((19|20)\\d\\d)-([01]?[0-9]|2[0-3]):[0-5][0-9]";
- Pattern pattern = Pattern.compile(regDate);
- Pattern pattern2 = Pattern.compile(regDate);
- Matcher matcherFrom = pattern.matcher(fromDate);
- Matcher matcherTo = pattern2.matcher(toDate);
- if (matcherFrom.find() && matcherTo.find()){
- Date parsedFromDate = null;
- Date parsedToDate = null;
- Date todayDate = null;
- String stringParsedFromDate = null;
- String stringParsedToDate = null;
- String stringTodayDate = null;
- try {
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy-HH:mm");
- String stoday = simpleDateFormat.format(new Date());
- parsedFromDate = simpleDateFormat.parse(fromDate);
- parsedToDate = simpleDateFormat.parse(toDate);
- todayDate = simpleDateFormat.parse(stoday);
- stringParsedFromDate = simpleDateFormat.format(parsedFromDate);
- stringParsedToDate = simpleDateFormat.format(parsedToDate);
- stringTodayDate = simpleDateFormat.format(todayDate);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- if(parsedFromDate.before(todayDate) || parsedToDate.before(todayDate)){
- return Response.status(Response.Status.BAD_REQUEST).entity("Omlouvame se, ale rezervace nemuze byt vytvorena v minulosti").type(MediaType.TEXT_PLAIN).build();
- }else if(parsedToDate.before(parsedFromDate)){
- return Response.status(Response.Status.BAD_REQUEST).entity("Nespravne zadana data").type(MediaType.TEXT_PLAIN).build();
- }else {
- JQueryDate from = new JQueryDate();
- from.setJQUERY( stringParsedFromDate );
- JQueryDate to = new JQueryDate();
- to.setJQUERY( stringParsedToDate );
- Kurt free = facade.getFreeCourt(from, to);
- facade.createCourtReservation(user.getID(), from, to, free.id);
- return Response.status(Response.Status.CREATED).entity("Rezervace uspesne vytvorena").type(MediaType.TEXT_PLAIN).build();
- }
- }else{
- return Response.status(Response.Status.BAD_REQUEST).entity("Nespravne zadana data!").type(MediaType.TEXT_PLAIN).build();
- }
- }else{
- return Response.status(Response.Status.FORBIDDEN).entity("Zadane prihlasovaci udaje nesouhlasi").type(MediaType.TEXT_PLAIN).build();
- }
- }
- }
- @POST
- @Produces(MediaType.TEXT_PLAIN)
- @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
- @Path("/update/{id}")
- public Response updateReservation(@PathParam("id") String id, @FormParam("username") String username, @FormParam("password") String password, @FormParam("from") String fromDate, @FormParam("to") String toDate) {
- if(username == null || password == null){
- return Response.status(Response.Status.BAD_REQUEST).entity("Nebyly zadane prihlasovaci udaje").type(MediaType.TEXT_PLAIN).build();
- }else if(fromDate == null || toDate == null){
- return Response.status(Response.Status.BAD_REQUEST).entity("Spatne zadane parametry").type(MediaType.TEXT_PLAIN).build();
- }else{
- Osoba user = facade.getUserDetailByName(username);
- if(user == null){
- return Response.status(Response.Status.FORBIDDEN).entity("Prihlaseni se nezdarilo").type(MediaType.TEXT_PLAIN).build();
- }
- Rezervace reservation = null;
- try {
- Long idvalue = new Long(id).longValue();
- reservation = facade.getRezervaceByID(idvalue);
- } catch (Exception e) {}
- if(reservation == null){
- return Response.status(Response.Status.FORBIDDEN).entity("Rezervace nenalezena").type(MediaType.TEXT_PLAIN).build();
- }
- if( (user.getPassword().equals(password))){
- String regDate = "(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/((19|20)\\d\\d)-([01]?[0-9]|2[0-3]):[0-5][0-9]";
- Pattern pattern = Pattern.compile(regDate);
- Pattern pattern2 = Pattern.compile(regDate);
- Matcher matcherFrom = pattern.matcher(fromDate);
- Matcher matcherTo = pattern2.matcher(toDate);
- if (matcherFrom.find() && matcherTo.find()){
- Date parsedFromDate = null;
- Date parsedToDate = null;
- Date todayDate = null;
- String stringParsedFromDate = null;
- String stringParsedToDate = null;
- String stringTodayDate = null;
- try {
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy-HH:mm");
- String stoday = simpleDateFormat.format(new Date());
- parsedFromDate = simpleDateFormat.parse(fromDate);
- parsedToDate = simpleDateFormat.parse(toDate);
- todayDate = simpleDateFormat.parse(stoday);
- stringParsedFromDate = simpleDateFormat.format(parsedFromDate);
- stringParsedToDate = simpleDateFormat.format(parsedToDate);
- stringTodayDate = simpleDateFormat.format(todayDate);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- if(parsedFromDate.before(todayDate) || parsedToDate.before(todayDate)){
- return Response.status(Response.Status.BAD_REQUEST).entity("Omlouvame se, ale rezervace nemuze byt vytvorena v minulosti").type(MediaType.TEXT_PLAIN).build();
- }else if(parsedToDate.before(parsedFromDate)){
- return Response.status(Response.Status.BAD_REQUEST).entity("Nespravne zadana data").type(MediaType.TEXT_PLAIN).build();
- }else {
- JQueryDate from = new JQueryDate();
- from.setJQUERY( stringParsedFromDate );
- JQueryDate to = new JQueryDate();
- to.setJQUERY( stringParsedToDate );
- Long idvalue = new Long(id).longValue();
- facade.editCourtReservation(idvalue, from, to);
- return Response.status(Response.Status.CREATED).entity("Rezervace uspesne zmenena").type(MediaType.TEXT_PLAIN).build();
- }
- }else{
- return Response.status(Response.Status.BAD_REQUEST).entity("Nespravne zadana data!").type(MediaType.TEXT_PLAIN).build();
- }
- }else{
- return Response.status(Response.Status.FORBIDDEN).entity("Zadane prihlasovaci udaje nesouhlasi").type(MediaType.TEXT_PLAIN).build();
- }
- }
- }
- @DELETE
- @Produces(MediaType.TEXT_PLAIN)
- @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
- @Path("/{id}")
- public Response deleteReservation(@PathParam("id") String id, @FormParam("username") String username, @FormParam("password") String password) {
- if(username == null || password == null){
- return Response.status(Response.Status.BAD_REQUEST).entity("Nebyly zadane prihlasovaci udaje").type(MediaType.TEXT_PLAIN).build();
- }else{
- Rezervace resByID = null;
- Long idvalue = null;
- try {
- idvalue = new Long(id).longValue();
- resByID = facade.getRezervaceByID(idvalue);
- }catch (Exception e){}
- if(resByID == null){
- return Response.status(Response.Status.NOT_FOUND).entity("Dana rezervace neexistuje").type(MediaType.TEXT_PLAIN).build();
- }
- Osoba resUser = facade.getUserDetail(resByID.getObjednavatel());
- String recPass = "recepcni1";
- if( (resUser.getName().equals(username) && resUser.getPassword().equals(password)) || (username.equals(recPass) && password.equals(recPass)) ){
- ResponseBuilder builder;
- facade.deleteReservation(idvalue);
- builder = Response.status(Response.Status.OK).entity("Rezervace v poradku vymazana");
- return builder.build();
- }else{
- return Response.status(Response.Status.FORBIDDEN).entity("Zadane prihlasovaci udaje nesouhlasi").type(MediaType.TEXT_PLAIN).build();
- }
- }
- }
- @GET
- @Produces(MediaType.TEXT_PLAIN)
- @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
- @Path("/fakto")
- public Response faktorial() {
- System.out.println("aaa");
- QuotaService qs = QuotaServiceFactory.getQuotaService();
- if (qs.supports(QuotaService.DataType.CPU_TIME_IN_MEGACYCLES)) {
- long startAPI = qs.getApiTimeInMegaCycles();
- long startCPU = qs.getCpuTimeInMegaCycles();
- int ret = doSomethingExpensive( 3000 );
- long endCPU = qs.getCpuTimeInMegaCycles();
- long endAPI = qs.getApiTimeInMegaCycles();
- double cpuSeconds = qs.convertMegacyclesToCpuSeconds(endCPU - startCPU);
- double apiSeconds = qs.convertMegacyclesToCpuSeconds(endAPI - startAPI);
- System.out.println("Scalability: cpu = " + cpuSeconds + ", api = " + apiSeconds + ", sum = " + (cpuSeconds + apiSeconds));
- }else{
- long startCPU = System.currentTimeMillis();
- int ret = doSomethingExpensive( 3 );
- long endCPU = System.currentTimeMillis();
- double cpuSeconds = (endCPU - startCPU)/1000;
- System.out.println("Scalability: cpu = " + cpuSeconds + ", api = " + ", sum = " + (cpuSeconds ));
- }
- ResponseBuilder builder;
- builder = Response.status(Response.Status.OK).entity("Rezervace v poradku vymazana");
- return builder.build();
- }
- private int doSomethingExpensive( int a ) {
- int ret = 1;
- for ( int ii = 1; ii < a; ii++ )
- for ( int i = 1; i < a; i++ )
- for ( int j = 0; j < a; j++ ) ret = i + j - ret;
- return ret;
- }
- }
Add Comment
Please, Sign In to add comment