| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package shared
- import (
- "github.com/porter-dev/porter/api/server/requestutils"
- "github.com/porter-dev/porter/api/types"
- )
- type APIEndpoint struct {
- Metadata *types.APIRequestMetadata
- DecoderValidator RequestDecoderValidator
- Writer ResultWriter
- }
- type APIEndpointFactory interface {
- NewAPIEndpoint(metadata *types.APIRequestMetadata) *APIEndpoint
- }
- type APIObjectEndpointFactory struct {
- decoderValidator RequestDecoderValidator
- resultWriter ResultWriter
- }
- func NewAPIObjectEndpointFactory(config *Config) APIEndpointFactory {
- validator := requestutils.NewDefaultValidator()
- decoder := requestutils.NewDefaultDecoder()
- decoderValidator := NewDefaultRequestDecoderValidator(config, validator, decoder)
- resultWriter := NewDefaultResultWriter(config)
- return &APIObjectEndpointFactory{
- decoderValidator: decoderValidator,
- resultWriter: resultWriter,
- }
- }
- func (factory *APIObjectEndpointFactory) NewAPIEndpoint(
- metadata *types.APIRequestMetadata,
- ) *APIEndpoint {
- return &APIEndpoint{
- Metadata: metadata,
- DecoderValidator: factory.decoderValidator,
- Writer: factory.resultWriter,
- }
- }
|