Sha256: f2ec524bca191705a1b84299ab291905aeaaf342c336f230e12a1f5566bfd323

Contents?: true

Size: 1.16 KB

Versions: 54

Compression:

Stored size: 1.16 KB

Contents

module Template
  module Go
    def self.function(file_name)
      <<~APP
        // Package p contains an HTTP Cloud Function.
        package p

        import (
          "encoding/json"
          "fmt"
          "html"
          "io"
          "log"
          "net/http"
        )

        // HelloWorld prints the JSON encoded "message" field in the body
        // of the request or "Hello, World!" if there isn't one.
        func #{file_name.underscore.camelize}(w http.ResponseWriter, r *http.Request) {
          var d struct {
            Message string `json:"message"`
          }

          if err := json.NewDecoder(r.Body).Decode(&d); err != nil {
            switch err {
            case io.EOF:
              fmt.Fprint(w, "Hello World!")
              return
            default:
              log.Printf("json.NewDecoder: %v", err)
              http.Error(w, http.StatusText(http.StatusBadRequest), http.StatusBadRequest)
              return
            }
          }

          if d.Message == "" {
            fmt.Fprint(w, "Hello World!")
            return
          }
          fmt.Fprint(w, html.EscapeString(d.Message))
        }

      APP
    end
  end
end

Version data entries

54 entries across 54 versions & 1 rubygems

Version Path
souls-4.1.2 lib/souls/cli/create/templates/functions/go/function.rb
souls-4.1.1 lib/souls/cli/create/templates/functions/go/function.rb
souls-4.1.0 lib/souls/cli/create/templates/functions/go/function.rb
souls-4.0.3 lib/souls/cli/create/templates/functions/go/function.rb
souls-4.0.2 lib/souls/cli/create/templates/functions/go/function.rb
souls-4.0.1 lib/souls/cli/create/templates/functions/go/function.rb
souls-4.0.0 lib/souls/cli/create/templates/functions/go/function.rb
souls-3.0.8 lib/souls/cli/create/templates/functions/go/function.rb
souls-3.0.7 lib/souls/cli/create/templates/functions/go/function.rb
souls-3.0.6 lib/souls/cli/create/templates/functions/go/function.rb
souls-3.0.5 lib/souls/cli/create/templates/functions/go/function.rb
souls-3.0.4 lib/souls/cli/create/templates/functions/go/function.rb
souls-3.0.3 lib/souls/cli/create/templates/functions/go/function.rb
souls-3.0.2 lib/souls/cli/create/templates/functions/go/function.rb
souls-3.0.1 lib/souls/cli/create/templates/functions/go/function.rb
souls-3.0.0 lib/souls/cli/create/templates/functions/go/function.rb
souls-2.0.4 lib/souls/cli/create/templates/functions/go/function.rb
souls-2.0.3 lib/souls/cli/create/templates/functions/go/function.rb
souls-2.0.2 lib/souls/cli/create/templates/functions/go/function.rb
souls-2.0.1 lib/souls/cli/create/templates/functions/go/function.rb