34 lines
526 B
Go
34 lines
526 B
Go
// 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
|
|
}
|