github.com/bitcubate/cryptojournal@v1.2.5-0.20171102134152-f578b3d788ab/src/lib/templates/fragmenta_resources/actions/update.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 // HandleUpdateShow renders the form to update a [[ .fragmenta_resource ]]. 16 func HandleUpdateShow(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 update [[ .fragmenta_resource ]] 31 err = can.Update([[ .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.AddKey("[[ .fragmenta_resource ]]", [[ .fragmenta_resource ]]) 39 return view.Render() 40 } 41 42 // HandleUpdate handles the POST of the form to update a [[ .fragmenta_resource ]] 43 func HandleUpdate(w http.ResponseWriter, r *http.Request) error { 44 45 // Fetch the params 46 params, err := mux.Params(r) 47 if err != nil { 48 return server.InternalError(err) 49 } 50 51 // Find the [[ .fragmenta_resource ]] 52 [[ .fragmenta_resource ]], err := [[ .fragmenta_resources ]].Find(params.GetInt([[ .fragmenta_resources ]].KeyName)) 53 if err != nil { 54 return server.NotFoundError(err) 55 } 56 57 // Check the authenticity token 58 err = session.CheckAuthenticity(w, r) 59 if err != nil { 60 return err 61 } 62 63 // Authorise update [[ .fragmenta_resource ]] 64 err = can.Update([[ .fragmenta_resource ]], session.CurrentUser(w, r)) 65 if err != nil { 66 return server.NotAuthorizedError(err) 67 } 68 69 // Validate the params, removing any we don't accept 70 [[ .fragmenta_resource ]]Params := [[ .fragmenta_resource ]].ValidateParams(params.Map(), [[ .fragmenta_resources ]].AllowedParams()) 71 72 err = [[ .fragmenta_resource ]].Update([[ .fragmenta_resource ]]Params) 73 if err != nil { 74 return server.InternalError(err) 75 } 76 77 // Redirect to [[ .fragmenta_resource ]] 78 return server.Redirect(w, r, [[ .fragmenta_resource ]].ShowURL()) 79 }