github.com/bitcubate/cryptojournal@v1.2.5-0.20171102134152-f578b3d788ab/src/lib/templates/fragmenta_resources/actions/show.go.tmpl (about)

     1  package [[ .fragmenta_resource ]]actions
     2  
     3  import (
     4  	"net/http"
     5  
     6  	"github.com/fragmenta/auth/can"
     7  	"github.com/fragmenta/mux"
     8  	"github.com/fragmenta/server"
     9  	"github.com/fragmenta/view"
    10  
    11  	"github.com/bitcubate/cryptojournal/src/lib/session"
    12  	"github.com/bitcubate/cryptojournal/src/[[ .fragmenta_resources ]]"
    13  )
    14  
    15  // HandleShow displays a single [[ .fragmenta_resource ]].
    16  func HandleShow(w http.ResponseWriter, r *http.Request) error {
    17  
    18  	// Fetch the  params
    19  	params, err := mux.Params(r)
    20  	if err != nil {
    21  		return server.InternalError(err)
    22  	}
    23  	
    24  	// Find the [[ .fragmenta_resource ]]
    25  	[[ .fragmenta_resource ]], err := [[ .fragmenta_resources ]].Find(params.GetInt([[ .fragmenta_resources ]].KeyName))
    26  	if err != nil {
    27  		return server.NotFoundError(err)
    28  	}
    29  
    30  	// Authorise access
    31  	err = can.Show([[ .fragmenta_resource ]], session.CurrentUser(w, r))
    32  	if err != nil {
    33  		return server.NotAuthorizedError(err)
    34  	}
    35  
    36  	// Render the template
    37  	view := view.NewRenderer(w, r)
    38  	view.CacheKey([[ .fragmenta_resource ]].CacheKey())
    39  	view.AddKey("[[ .fragmenta_resource ]]", [[ .fragmenta_resource ]])
    40  	return view.Render()
    41  }