func UpdateEndpoint(feature features.Features) endpoint.Endpoint { return func(ctx context.Context, request interface{}) (interface{}, error) { req := request.(featureFlagRequest) ff := req.FeatureFlag if ff, err := feature.Find(ff.Key); ff == nil { return nil, NewNotFoundError(err) } err := feature.Save(ff) if err != nil { return nil, err } return HTTPResponse{StatusCode: http.StatusOK, Body: ff}, nil } }
func CreateEndpoint(feature features.Features) endpoint.Endpoint { return func(ctx context.Context, request interface{}) (interface{}, error) { req := request.(featureFlagRequest) ff := req.FeatureFlag if ff, _ := feature.Find(ff.Key); ff != nil { errResp := NewErrorResponse(E_BAD_REQUEST, "There's another feature for the same key value.") return HTTPResponse{StatusCode: http.StatusBadRequest, Body: errResp}, nil } err := feature.Save(ff) if err != nil { return nil, err } return HTTPResponse{StatusCode: http.StatusCreated, Body: ff}, nil } }