/src/yolk-not_found.adb

http://github.com/ThomasLocke/yolk · Ada · 60 lines · 28 code · 8 blank · 24 comment · 0 complexity · 5f9cfe1e830604dd863eebd23ae4865f MD5 · raw file

  1. -------------------------------------------------------------------------------
  2. -- --
  3. -- Copyright (C) 2010-, Thomas ¸cke --
  4. -- --
  5. -- This library is free software; you can redistribute it and/or modify --
  6. -- it under terms of the GNU General Public License as published by the --
  7. -- Free Software Foundation; either version 3, or (at your option) any --
  8. -- later version. This library is distributed in the hope that it will be --
  9. -- useful, but WITHOUT ANY WARRANTY; without even the implied warranty of --
  10. -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. --
  11. -- --
  12. -- As a special exception under Section 7 of GPL version 3, you are --
  13. -- granted additional permissions described in the GCC Runtime Library --
  14. -- Exception, version 3.1, as published by the Free Software Foundation. --
  15. -- --
  16. -- You should have received a copy of the GNU General Public License and --
  17. -- a copy of the GCC Runtime Library Exception along with this program; --
  18. -- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
  19. -- <http://www.gnu.org/licenses/>. --
  20. -- --
  21. -------------------------------------------------------------------------------
  22. with AWS;
  23. with AWS.Messages;
  24. with AWS.MIME;
  25. with AWS.Templates;
  26. with Yolk.Configuration;
  27. package body Yolk.Not_Found is
  28. --------------
  29. -- Output --
  30. --------------
  31. function Generate
  32. (Request : in AWS.Status.Data)
  33. return AWS.Response.Data
  34. is
  35. use AWS.Templates;
  36. use Yolk.Configuration;
  37. Content : AWS.Response.Data;
  38. T : Translate_Set;
  39. begin
  40. Insert (T, Assoc ("RESOURCE", AWS.Status.URI (Request)));
  41. Insert (T, Assoc ("VERSION", AWS.Version));
  42. Insert (T, Assoc ("DOMAIN", String'(Config.Get (Server_Name))));
  43. Content := AWS.Response.Build
  44. (Content_Type => AWS.MIME.Text_HTML,
  45. Message_Body => Parse
  46. (Filename => Config.Get (System_Templates_Path) & "/404.tmpl",
  47. Translations => T,
  48. Cached => True),
  49. Status_Code => AWS.Messages.S404);
  50. return Content;
  51. end Generate;
  52. end Yolk.Not_Found;