event-gateway/internal/source/types/types.go

34 lines
526 B
Go
Raw Normal View History

2024-04-20 20:31:06 +00:00
// Copyright © 2023 Roberto Hidalgo <event-gateway@un.rob.mx>
// SPDX-License-Identifier: Apache-2.0
package types
import (
"encoding/json"
"errors"
)
var ErrInvalid = errors.New("invalid source.kind provided")
type Kind string
const (
HTTP Kind = "http"
Consul Kind = "consul"
)
func (k *Kind) UnmarshalJSON(raw []byte) error {
var data string
if err := json.Unmarshal(raw, &data); err != nil {
return err
}
nk := Kind(data)
switch nk {
case HTTP, Consul:
*k = nk
return nil
}
return ErrInvalid
}