Пример #1
0
          public HandlerResult findHandlerResult(
              HttpServletRequest request, HttpServletResponse response) {
            String servletPath = request.getServletPath();
            String[] pathParts = servletPath.split("/");
            String schoolKey = pathParts.length > 2 ? pathParts[2] : null;
            String eventKey = pathParts.length > 3 ? pathParts[3] : null;
            String sportName = pathParts.length > 4 ? pathParts[4] : null;
            String levelName = pathParts.length > 5 ? pathParts[5] : null;
            String genderName = pathParts.length > 6 ? pathParts[6] : null;
            HandlerResult result = new HandlerResult();
            School school = null;
            if (!isBlank(schoolKey)) {
              school = School.findSchoolByKey(schoolKey.toLowerCase());
            }

            if (isBlank(school)) {
              result.content = null;
              result.page = null;
              result.stopHandlerChain = false;
              result.stopFilterChain = false;

              return result;
            } else if (isBlank(eventKey)) {
              result.content = school;
              result.page = AppPageKeys.SchoolScoresSchedules.getPage();
              result.stopHandlerChain = true;
              result.stopFilterChain = false;

              try {
                Sport sport = Sport.valueOf(sportName.toUpperCase());
                SportLevel level = SportLevel.valueOf(levelName.toUpperCase());
                SportGender gender = SportGender.valueOf(genderName.toUpperCase());

                Query<Team> teamQuery =
                    Query.from(Team.class)
                        .where(
                            "sport = ? && gender = ? && level = ? && school = ?",
                            sport,
                            gender,
                            level,
                            school);
                getDisplayQuery(teamQuery);

                Team team = teamQuery.first();

                if (null != team) {
                  result.content = team;
                  result.page = AppPageKeys.TeamScoresSchedules.getPage();
                }
              } catch (Exception e) {
                logger.debug("failed to get team from request: " + servletPath, e);
              }

              return result;

            } else {

              try {
                Event event = Event.findEventByKey(eventKey);

                if (null != event) {
                  setSchool(request, school);
                  result.content = event;
                  if (event instanceof Meet) {
                    result.page = AppPageKeys.Meet.getPage();
                  } else {
                    result.page = AppPageKeys.Game.getPage();
                  }
                  result.stopHandlerChain = true;
                  result.stopFilterChain = false;
                }

                return result;
              } catch (Exception e) {
                logger.debug("failed to get event from school request: " + servletPath, e);
              }
            }

            return result;
          }