func registerGenerator(generator generators.BaseGenerator) { goji.Get(generator.Url(), func(c web.C, writer http.ResponseWriter, request *http.Request) { parsedReq, err := generator.ParseSignatureRequest(c, request) if err != nil { writeTextResponse(writer, "Failed to parse the request: "+err.Error()) return } hash := finalizeHash(generator.Name(), generator.CreateHash(parsedReq)) req := util.SignatureRequest{parsedReq, hash} serveSignature(c, writer, request, req, generator) }) formUrl := generator.FormUrl() if formUrl != "" { goji.Post(formUrl, func(c web.C, writer http.ResponseWriter, request *http.Request) { generator.HandleForm(c, writer, request) }) } }