routes.erl 849 B

123456789101112131415161718192021222324
  1. -module(routes).
  2. -include_lib("n2o/include/n2o.hrl").
  3. -export([init/2, finish/2]).
  4. finish(State, Ctx) -> {ok, State, Ctx}.
  5. init(State, #cx{req=Req}=Cx) ->
  6. Path = case sample:ver() of
  7. cow1 -> n2o_cowboy:path(Req); % cowboy 1.0
  8. cow2 -> #{path:=P}=Req, P % cowboy 2.5
  9. end,
  10. Fix = route_prefix(Path),
  11. n2o:info(?MODULE,"Route: ~p~n",[{Fix,Path}]),
  12. {ok, State, Cx#cx{path=Path,module=Fix}}.
  13. route_prefix(<<"/ws/",P/binary>>) -> route(P);
  14. route_prefix(<<"/",P/binary>>) -> route(P);
  15. route_prefix(P) -> route(P).
  16. route(<<>>) -> login;
  17. route(<<"index",_/binary>>) -> index; % github static
  18. route(<<"login",_/binary>>) -> login; % github static
  19. route(<<"app/index",_/binary>>) -> index; % priv static
  20. route(<<"app/login",_/binary>>) -> login; % priv static
  21. route(_) -> login.