I am trying to build a service that takes user input of file from POST
request and then iterates the CSV and passes it into my database. I am having problem to pass the file and read it. Below are my codes.
Endpoint.go
type CSVRequest struct {
File io.Reader
}
func MakeCSVEndpoint(svc Service) endpoint.Endpoint {
return func(ctx context.Context, request interface{}) (interface{}, error) {
req := request.(CSVRequest)
data, err := svc.ReadCSV(req.File)
if err != nil {
return GetErrorResponse{err}, nil
}
return CreateProductResponse{data}, nil
}
}
transport.go
func decodeCreateProductsCSV(_ context.Context, r *http.Request) (interface{}, error) {
file, _, err := r.FormFile("file")
return CSVRequest{File: file}, nil
}
so how can I pass the csv file to the service.go and then read and iterate the csv file and get the values of the csv file.