// Code generated by ogen, DO NOT EDIT. package openapi import ( "io" "net/http" "github.com/go-faster/errors" "github.com/go-faster/jx" "go.opentelemetry.io/otel/codes" "go.opentelemetry.io/otel/trace" ht "github.com/ogen-go/ogen/http" ) func encodeAddPageResponse(response AddPageRes, w http.ResponseWriter, span trace.Span) error { switch response := response.(type) { case *Page: w.Header().Set("Content-Type", "application/json") w.WriteHeader(201) span.SetStatus(codes.Ok, http.StatusText(201)) e := new(jx.Encoder) response.Encode(e) if _, err := e.WriteTo(w); err != nil { return errors.Wrap(err, "write") } return nil case *AddPageBadRequest: w.Header().Set("Content-Type", "application/json") w.WriteHeader(400) span.SetStatus(codes.Error, http.StatusText(400)) e := new(jx.Encoder) response.Encode(e) if _, err := e.WriteTo(w); err != nil { return errors.Wrap(err, "write") } return nil default: return errors.Errorf("unexpected response type: %T", response) } } func encodeGetFileResponse(response GetFileRes, w http.ResponseWriter, span trace.Span) error { switch response := response.(type) { case *GetFileOKApplicationPdf: w.Header().Set("Content-Type", "application/pdf") w.WriteHeader(200) span.SetStatus(codes.Ok, http.StatusText(200)) writer := w if _, err := io.Copy(writer, response); err != nil { return errors.Wrap(err, "write") } return nil case *GetFileOKTextHTML: w.Header().Set("Content-Type", "text/html") w.WriteHeader(200) span.SetStatus(codes.Ok, http.StatusText(200)) writer := w if _, err := io.Copy(writer, response); err != nil { return errors.Wrap(err, "write") } return nil case *GetFileOKTextPlain: w.Header().Set("Content-Type", "text/plain") w.WriteHeader(200) span.SetStatus(codes.Ok, http.StatusText(200)) writer := w if _, err := io.Copy(writer, response); err != nil { return errors.Wrap(err, "write") } return nil case *GetFileNotFound: w.WriteHeader(404) span.SetStatus(codes.Error, http.StatusText(404)) return nil default: return errors.Errorf("unexpected response type: %T", response) } } func encodeGetPageResponse(response GetPageRes, w http.ResponseWriter, span trace.Span) error { switch response := response.(type) { case *PageWithResults: w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) span.SetStatus(codes.Ok, http.StatusText(200)) e := new(jx.Encoder) response.Encode(e) if _, err := e.WriteTo(w); err != nil { return errors.Wrap(err, "write") } return nil case *GetPageNotFound: w.WriteHeader(404) span.SetStatus(codes.Error, http.StatusText(404)) return nil default: return errors.Errorf("unexpected response type: %T", response) } } func encodeGetPagesResponse(response Pages, w http.ResponseWriter, span trace.Span) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) span.SetStatus(codes.Ok, http.StatusText(200)) e := new(jx.Encoder) response.Encode(e) if _, err := e.WriteTo(w); err != nil { return errors.Wrap(err, "write") } return nil } func encodeErrorResponse(response *ErrorStatusCode, w http.ResponseWriter, span trace.Span) error { w.Header().Set("Content-Type", "application/json") code := response.StatusCode if code == 0 { // Set default status code. code = http.StatusOK } w.WriteHeader(code) st := http.StatusText(code) if code >= http.StatusBadRequest { span.SetStatus(codes.Error, st) } else { span.SetStatus(codes.Ok, st) } e := new(jx.Encoder) response.Response.Encode(e) if _, err := e.WriteTo(w); err != nil { return errors.Wrap(err, "write") } if code >= http.StatusInternalServerError { return errors.Wrapf(ht.ErrInternalServerErrorResponse, "code: %d, message: %s", code, http.StatusText(code)) } return nil }