github.com/cs3org/reva/v2@v2.27.7/pkg/mentix/exchangers/exporters/reqexporter.go (about) 1 // Copyright 2018-2021 CERN 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 // 15 // In applying this license, CERN does not waive the privileges and immunities 16 // granted to it by virtue of its status as an Intergovernmental Organization 17 // or submit itself to any jurisdiction. 18 19 package exporters 20 21 import ( 22 "io" 23 "net/http" 24 "net/url" 25 26 "github.com/rs/zerolog" 27 28 "github.com/cs3org/reva/v2/pkg/mentix/config" 29 "github.com/cs3org/reva/v2/pkg/mentix/exchangers" 30 ) 31 32 // BaseRequestExporter implements basic exporter functionality common to all request exporters. 33 type BaseRequestExporter struct { 34 BaseExporter 35 exchangers.BaseRequestExchanger 36 } 37 38 // HandleRequest handles the actual HTTP request. 39 func (exporter *BaseRequestExporter) HandleRequest(resp http.ResponseWriter, req *http.Request, conf *config.Configuration, log *zerolog.Logger) { 40 body, _ := io.ReadAll(req.Body) 41 status, respData, err := exporter.handleQuery(body, req.URL.Query(), conf, log) 42 if err != nil { 43 respData = []byte(err.Error()) 44 } 45 resp.WriteHeader(status) 46 _, _ = resp.Write(respData) 47 } 48 49 func (exporter *BaseRequestExporter) handleQuery(body []byte, params url.Values, conf *config.Configuration, log *zerolog.Logger) (int, []byte, error) { 50 _, status, data, err := exporter.HandleAction(exporter.MeshData(), body, params, false, conf, log) 51 return status, data, err 52 }