github.com/rudderlabs/rudder-go-kit@v0.30.0/testhelper/docker/resource/transformer/transformer_backend_config.go (about)

     1  package transformer
     2  
     3  import (
     4  	"fmt"
     5  	"net/http"
     6  
     7  	kithttptest "github.com/rudderlabs/rudder-go-kit/testhelper/httptest"
     8  
     9  	"github.com/google/uuid"
    10  )
    11  
    12  const (
    13  	getByVersionIdEndPoint = "/transformation/getByVersionId"
    14  	versionIDKey           = "versionId"
    15  )
    16  
    17  func newTestBackendConfigServer(transformations map[string]string) *kithttptest.Server {
    18  	return kithttptest.NewServer(NewTransformerBackendConfigHandler(transformations))
    19  }
    20  
    21  // NewTransformerBackendConfigHandler returns http request handler to handle all backend config requests by transformer
    22  func NewTransformerBackendConfigHandler(transformations map[string]string) http.Handler {
    23  	mux := http.NewServeMux()
    24  	mux.HandleFunc(getByVersionIdEndPoint, getByVersionIdHandler(transformations))
    25  	return mux
    26  }
    27  
    28  func getByVersionIdHandler(transformations map[string]string) func(http.ResponseWriter, *http.Request) {
    29  	return func(w http.ResponseWriter, r *http.Request) {
    30  		transformationVersionId := r.URL.Query().Get(versionIDKey)
    31  		transformationCode, ok := transformations[transformationVersionId]
    32  		if !ok {
    33  			w.WriteHeader(http.StatusNotFound)
    34  			return
    35  		}
    36  		_, err := w.Write([]byte(fmt.Sprintf(`{
    37  		"id": %q,
    38  		"createdAt": "2023-03-27T11:40:00.894Z",
    39  		"updatedAt": "2023-03-27T11:40:00.894Z",
    40  		"versionId": %q,
    41  		"name": "Add Transformed field",
    42  		"description": "",
    43  		"code": %q,
    44  		"secretsVersion": null,
    45  		"codeVersion": "1",
    46  		"language": "javascript",
    47  		"imports": [],
    48  		"secrets": {}
    49  	}`, uuid.NewString(), transformationVersionId, transformationCode)))
    50  		if err != nil {
    51  			w.WriteHeader(http.StatusInternalServerError)
    52  			_ = fmt.Errorf("error writing response: %v", err)
    53  			return
    54  		}
    55  	}
    56  }