...

Source file src/go.formulabun.club/replays/staff/server/go/api_default.go

Documentation: go.formulabun.club/replays/staff/server/go

     1  /*
     2   * GoBun replay download
     3   *
     4   * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
     5   *
     6   * API version: 0.0.1
     7   * Generated by: OpenAPI Generator (https://openapi-generator.tech)
     8   */
     9  
    10  package openapi
    11  
    12  import (
    13  	"net/http"
    14  	"strings"
    15  
    16  	"github.com/gorilla/mux"
    17  )
    18  
    19  // DefaultApiController binds http requests to an api service and writes the service results to the http response
    20  type DefaultApiController struct {
    21  	service      DefaultApiServicer
    22  	errorHandler ErrorHandler
    23  }
    24  
    25  // DefaultApiOption for how the controller is set up.
    26  type DefaultApiOption func(*DefaultApiController)
    27  
    28  // WithDefaultApiErrorHandler inject ErrorHandler into controller
    29  func WithDefaultApiErrorHandler(h ErrorHandler) DefaultApiOption {
    30  	return func(c *DefaultApiController) {
    31  		c.errorHandler = h
    32  	}
    33  }
    34  
    35  // NewDefaultApiController creates a default api controller
    36  func NewDefaultApiController(s DefaultApiServicer, opts ...DefaultApiOption) Router {
    37  	controller := &DefaultApiController{
    38  		service:      s,
    39  		errorHandler: DefaultErrorHandler,
    40  	}
    41  
    42  	for _, opt := range opts {
    43  		opt(controller)
    44  	}
    45  
    46  	return controller
    47  }
    48  
    49  // Routes returns all the api routes for the DefaultApiController
    50  func (c *DefaultApiController) Routes() Routes {
    51  	return Routes{
    52  		{
    53  			"ReplayIdGet",
    54  			strings.ToUpper("Get"),
    55  			"/replay/{id}",
    56  			c.ReplayIdGet,
    57  		},
    58  		{
    59  			"StaffGet",
    60  			strings.ToUpper("Get"),
    61  			"/staff",
    62  			c.StaffGet,
    63  		},
    64  	}
    65  }
    66  
    67  // ReplayIdGet - Get a replay
    68  func (c *DefaultApiController) ReplayIdGet(w http.ResponseWriter, r *http.Request) {
    69  	params := mux.Vars(r)
    70  	idParam := params["id"]
    71  
    72  	result, err := c.service.ReplayIdGet(r.Context(), idParam)
    73  	// If an error occurred, encode the error with the status code
    74  	if err != nil {
    75  		c.errorHandler(w, r, err, &result)
    76  		return
    77  	}
    78  	// If no error, encode the body and the result code
    79  	EncodeFileResponse(result.Body, result.Filename, &result.Code, w)
    80  
    81  }
    82  
    83  // StaffGet - Get a replay as staff
    84  func (c *DefaultApiController) StaffGet(w http.ResponseWriter, r *http.Request) {
    85  	query := r.URL.Query()
    86  	idsParam := strings.Split(query.Get("ids"), ",")
    87  	result, err := c.service.StaffGet(r.Context(), idsParam)
    88  	// If an error occurred, encode the error with the status code
    89  	if err != nil {
    90  		c.errorHandler(w, r, err, &result)
    91  		return
    92  	}
    93  	// If no error, encode the body and the result code
    94  	EncodeFileResponse(result.Body, result.Filename, &result.Code, w)
    95  
    96  }
    97  

View as plain text