{-# LANGUAGE NoMonomorphismRestriction #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE NamedFieldPuns #-}

module Bamboo.Controller.Static where

import Bamboo.Controller.Env
import qualified Bamboo.Model.Static as Static
import qualified Bamboo.Type as T
import qualified Bamboo.Type.State as S

static :: Controller
static = do
  init_state
  s <- get
  let uid = s.env.uri
  static_model <- T.get uid .io

  let nav_id = static_model.Static.uid.id_to_resource
      nav_location = 
        if nav_id.belongs_to (s.config.T.navigation)
          then nav_id
          else no_navigation
      
  put s 
    { uid
    , S.resource_title = static_model.resource_title
    , nav_location
    , S.static = static_model
    }