error.go 672 B

1234567891011121314151617181920212223242526272829
  1. package libamuse
  2. import (
  3. "notabug.org/apiote/gott"
  4. )
  5. func renderErrorPage(args ...interface{}) interface{} {
  6. data := args[0].(*RequestData)
  7. result := args[1].(*Result)
  8. code := data.code
  9. result.page = result.renderer.RenderErrorPage(code, result.languages)
  10. return gott.Tuple(args)
  11. }
  12. func ShowErrorPage(code int, language, mimetype string) (string, error) {
  13. r, err := gott.
  14. NewResult(gott.Tuple{&RequestData{id: "", language: language, mimetype: mimetype, code: code}, &Result{}}).
  15. Bind(parseLanguage).
  16. Bind(createRenderer).
  17. Map(renderErrorPage).
  18. Finish()
  19. if err != nil {
  20. return "", err
  21. } else {
  22. return r.(gott.Tuple)[1].(*Result).page, nil
  23. }
  24. }