gateway: move remaining remotesource logic from api to actions
This commit is contained in:
parent
42184d0b5b
commit
6b5bd40417
|
@ -23,6 +23,28 @@ import (
|
|||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
func (h *ActionHandler) GetRemoteSource(ctx context.Context, rsRef string) (*types.RemoteSource, error) {
|
||||
rs, resp, err := h.configstoreClient.GetRemoteSource(ctx, rsRef)
|
||||
if err != nil {
|
||||
return nil, ErrFromRemote(resp, err)
|
||||
}
|
||||
return rs, nil
|
||||
}
|
||||
|
||||
type GetRemoteSourcesRequest struct {
|
||||
Start string
|
||||
Limit int
|
||||
Asc bool
|
||||
}
|
||||
|
||||
func (h *ActionHandler) GetRemoteSources(ctx context.Context, req *GetRemoteSourcesRequest) ([]*types.RemoteSource, error) {
|
||||
remoteSources, resp, err := h.configstoreClient.GetRemoteSources(ctx, req.Start, req.Limit, req.Asc)
|
||||
if err != nil {
|
||||
return nil, ErrFromRemote(resp, err)
|
||||
}
|
||||
return remoteSources, nil
|
||||
}
|
||||
|
||||
type CreateRemoteSourceRequest struct {
|
||||
Name string
|
||||
APIURL string
|
||||
|
@ -82,3 +104,11 @@ func (h *ActionHandler) CreateRemoteSource(ctx context.Context, req *CreateRemot
|
|||
|
||||
return rs, nil
|
||||
}
|
||||
|
||||
func (h *ActionHandler) DeleteRemoteSource(ctx context.Context, rsRef string) error {
|
||||
resp, err := h.configstoreClient.DeleteRemoteSource(ctx, rsRef)
|
||||
if err != nil {
|
||||
return ErrFromRemote(resp, errors.Wrapf(err, "failed to delete remote source"))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -20,7 +20,6 @@ import (
|
|||
"strconv"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
csapi "github.com/sorintlab/agola/internal/services/configstore/api"
|
||||
"github.com/sorintlab/agola/internal/services/gateway/action"
|
||||
"github.com/sorintlab/agola/internal/services/types"
|
||||
"github.com/sorintlab/agola/internal/util"
|
||||
|
@ -93,12 +92,12 @@ func createRemoteSourceResponse(r *types.RemoteSource) *RemoteSourceResponse {
|
|||
}
|
||||
|
||||
type RemoteSourceHandler struct {
|
||||
log *zap.SugaredLogger
|
||||
configstoreClient *csapi.Client
|
||||
log *zap.SugaredLogger
|
||||
ah *action.ActionHandler
|
||||
}
|
||||
|
||||
func NewRemoteSourceHandler(logger *zap.Logger, configstoreClient *csapi.Client) *RemoteSourceHandler {
|
||||
return &RemoteSourceHandler{log: logger.Sugar(), configstoreClient: configstoreClient}
|
||||
func NewRemoteSourceHandler(logger *zap.Logger, ah *action.ActionHandler) *RemoteSourceHandler {
|
||||
return &RemoteSourceHandler{log: logger.Sugar(), ah: ah}
|
||||
}
|
||||
|
||||
func (h *RemoteSourceHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -106,8 +105,8 @@ func (h *RemoteSourceHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
|
|||
vars := mux.Vars(r)
|
||||
rsRef := vars["remotesourceref"]
|
||||
|
||||
rs, resp, err := h.configstoreClient.GetRemoteSource(ctx, rsRef)
|
||||
if httpErrorFromRemote(w, resp, err) {
|
||||
rs, err := h.ah.GetRemoteSource(ctx, rsRef)
|
||||
if httpError(w, err) {
|
||||
h.log.Errorf("err: %+v", err)
|
||||
return
|
||||
}
|
||||
|
@ -119,17 +118,16 @@ func (h *RemoteSourceHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
|
|||
}
|
||||
|
||||
type RemoteSourcesHandler struct {
|
||||
log *zap.SugaredLogger
|
||||
configstoreClient *csapi.Client
|
||||
log *zap.SugaredLogger
|
||||
ah *action.ActionHandler
|
||||
}
|
||||
|
||||
func NewRemoteSourcesHandler(logger *zap.Logger, configstoreClient *csapi.Client) *RemoteSourcesHandler {
|
||||
return &RemoteSourcesHandler{log: logger.Sugar(), configstoreClient: configstoreClient}
|
||||
func NewRemoteSourcesHandler(logger *zap.Logger, ah *action.ActionHandler) *RemoteSourcesHandler {
|
||||
return &RemoteSourcesHandler{log: logger.Sugar(), ah: ah}
|
||||
}
|
||||
|
||||
func (h *RemoteSourcesHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
ctx := r.Context()
|
||||
|
||||
query := r.URL.Query()
|
||||
|
||||
limitS := query.Get("limit")
|
||||
|
@ -156,8 +154,13 @@ func (h *RemoteSourcesHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
|
|||
|
||||
start := query.Get("start")
|
||||
|
||||
csRemoteSources, resp, err := h.configstoreClient.GetRemoteSources(ctx, start, limit, asc)
|
||||
if httpErrorFromRemote(w, resp, err) {
|
||||
areq := &action.GetRemoteSourcesRequest{
|
||||
Start: start,
|
||||
Limit: limit,
|
||||
Asc: asc,
|
||||
}
|
||||
csRemoteSources, err := h.ah.GetRemoteSources(ctx, areq)
|
||||
if httpError(w, err) {
|
||||
h.log.Errorf("err: %+v", err)
|
||||
return
|
||||
}
|
||||
|
|
|
@ -177,9 +177,9 @@ func (g *Gateway) Run(ctx context.Context) error {
|
|||
createUserTokenHandler := api.NewCreateUserTokenHandler(logger, g.ah)
|
||||
deleteUserTokenHandler := api.NewDeleteUserTokenHandler(logger, g.ah)
|
||||
|
||||
remoteSourceHandler := api.NewRemoteSourceHandler(logger, g.configstoreClient)
|
||||
remoteSourceHandler := api.NewRemoteSourceHandler(logger, g.ah)
|
||||
createRemoteSourceHandler := api.NewCreateRemoteSourceHandler(logger, g.ah)
|
||||
remoteSourcesHandler := api.NewRemoteSourcesHandler(logger, g.configstoreClient)
|
||||
remoteSourcesHandler := api.NewRemoteSourcesHandler(logger, g.ah)
|
||||
|
||||
orgHandler := api.NewOrgHandler(logger, g.ah)
|
||||
orgsHandler := api.NewOrgsHandler(logger, g.ah)
|
||||
|
|
Loading…
Reference in New Issue