Documentation
¶
Index ¶
- Constants
- type InjuriesHandler
- func (h *InjuriesHandler) AddInjury(w http.ResponseWriter, r *http.Request)
- func (h *InjuriesHandler) DeleteInjury(w http.ResponseWriter, r *http.Request)
- func (h *InjuriesHandler) GetActive(w http.ResponseWriter, r *http.Request)
- func (h *InjuriesHandler) GetMaxID(w http.ResponseWriter, r *http.Request)
- func (h *InjuriesHandler) MarkRecovered(w http.ResponseWriter, r *http.Request)
- type KamkAddInjuryInput
- type KamkAddQuestionnaireInput
- type KamkDeleteInjuryParams
- type KamkGetInjuriesParams
- type KamkGetMaxIDParams
- type KamkGetQuestionnairesParams
- type KamkIsQuizDoneParams
- type KamkMarkRecoveredInput
- type KamkUpdateQuestionnaireBody
- type KamkUpdateQuestionnaireQuery
- type QueriesHandler
- func (h *QueriesHandler) AddQuestionnaire(w http.ResponseWriter, r *http.Request)
- func (h *QueriesHandler) DeleteQuestionnaire(w http.ResponseWriter, r *http.Request)
- func (h *QueriesHandler) GetQuestionnaires(w http.ResponseWriter, r *http.Request)
- func (h *QueriesHandler) IsQuizDoneToday(w http.ResponseWriter, r *http.Request)
- func (h *QueriesHandler) UpdateQuestionnaireByID(w http.ResponseWriter, r *http.Request)
Constants ¶
View Source
const (
KAMKCacheTTL = 6 * time.Hour
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type InjuriesHandler ¶
type InjuriesHandler struct {
// contains filtered or unexported fields
}
Handler
func NewInjuriesHandler ¶
func NewInjuriesHandler(store kamk.Injuries, cache *cache.Storage) *InjuriesHandler
func (*InjuriesHandler) AddInjury ¶
func (h *InjuriesHandler) AddInjury(w http.ResponseWriter, r *http.Request)
AddInjury godoc
@Summary Create injury
@Description Creates a new injury row (status=0, date_start=NOW()) for a competitor
@Tags KAMK - Injuries
@Accept json
@Produce json
@Param body body swagger.KamkAddInjuryRequest true "Injury payload"
@Success 201 "Created: Injury stored (no content in response body)"
@Failure 400 {object} swagger.ValidationErrorResponse
@Failure 401 {object} swagger.UnauthorizedResponse
@Failure 403 {object} swagger.ForbiddenResponse
@Failure 500 {object} swagger.InternalServerErrorResponse
@Failure 503 {object} swagger.ServiceUnavailableResponse
@Security BearerAuth
@Router /kamk/injury [post]
func (*InjuriesHandler) DeleteInjury ¶
func (h *InjuriesHandler) DeleteInjury(w http.ResponseWriter, r *http.Request)
DeleteInjury godoc
@Summary Delete an injury by injury_id
@Description Deletes a single injury for a competitor
@Tags KAMK - Injuries
@Accept json
@Produce json
@Param user_id query integer true "sportti_id"
@Param injury_id query integer true "Injury ID"
@Success 200 "OK: deleted"
@Failure 400 {object} swagger.ValidationErrorResponse
@Failure 401 {object} swagger.UnauthorizedResponse
@Failure 403 {object} swagger.ForbiddenResponse
@Failure 404 {object} swagger.NotFoundResponse
@Failure 500 {object} swagger.InternalServerErrorResponse
@Failure 503 {object} swagger.ServiceUnavailableResponse
@Security BearerAuth
@Router /kamk/injury [delete]
func (*InjuriesHandler) GetActive ¶
func (h *InjuriesHandler) GetActive(w http.ResponseWriter, r *http.Request)
GetActive godoc
@Summary List active injuries
@Description Returns active injuries (status=0) for a competitor
@Tags KAMK - Injuries
@Accept json
@Produce json
@Param user_id query integer true "Competitor sportti_id"
@Success 200 {object} swagger.KamkInjuriesListResponse
@Success 204 "No Content: no injuries"
@Failure 400 {object} swagger.ValidationErrorResponse
@Failure 401 {object} swagger.UnauthorizedResponse
@Failure 403 {object} swagger.ForbiddenResponse
@Failure 500 {object} swagger.InternalServerErrorResponse
@Failure 503 {object} swagger.ServiceUnavailableResponse
@Security BearerAuth
@Router /kamk/injury [get]
func (*InjuriesHandler) GetMaxID ¶
func (h *InjuriesHandler) GetMaxID(w http.ResponseWriter, r *http.Request)
GetMaxID godoc
@Summary Get next injury id helper
@Description Returns the current maximum injury_id for a competitor (0 if none exist)
@Tags KAMK - Injuries
@Accept json
@Produce json
@Param user_id query integer true "Competitor sportti_id"
@Success 200 {object} swagger.KamkMaxInjuryIDResponse
@Failure 400 {object} swagger.ValidationErrorResponse
@Failure 401 {object} swagger.UnauthorizedResponse
@Failure 403 {object} swagger.ForbiddenResponse
@Failure 500 {object} swagger.InternalServerErrorResponse
@Failure 503 {object} swagger.ServiceUnavailableResponse
@Security BearerAuth
@Router /kamk/injury-id [get]
func (*InjuriesHandler) MarkRecovered ¶
func (h *InjuriesHandler) MarkRecovered(w http.ResponseWriter, r *http.Request)
MarkRecovered godoc
@Summary Mark injury recovered
@Description Sets status=1 and date_end=NOW() for an injury recovery
@Tags KAMK - Injuries
@Accept json
@Produce json
@Param body body swagger.KamkMarkRecoveredRequest true "Recovery payload"
@Success 200 "OK: Marked recovered"
@Failure 400 {object} swagger.ValidationErrorResponse
@Failure 401 {object} swagger.UnauthorizedResponse
@Failure 403 {object} swagger.ForbiddenResponse
@Failure 500 {object} swagger.InternalServerErrorResponse
@Failure 503 {object} swagger.ServiceUnavailableResponse
@Security BearerAuth
@Router /kamk/injury-recovered [post]
type KamkAddInjuryInput ¶
type KamkAddInjuryInput struct {
UserID int32 `json:"user_id" validate:"required,gt=0"`
InjuryType int32 `json:"injury_type" validate:"required"`
Severity int32 `json:"severity" validate:"required"`
PainLevel int32 `json:"pain_level" validate:"required"`
Description string `json:"description" validate:"required"`
InjuryID int32 `json:"injury_id" validate:"required"`
Meta string `json:"meta" validate:"required"`
}
Validation structs
type KamkAddQuestionnaireInput ¶
type KamkAddQuestionnaireInput struct {
UserID int32 `json:"user_id" validate:"required,gt=0"`
QueryType int32 `json:"query_type" validate:"gte=0"`
Answers string `json:"answers" validate:"required"`
Comment string `json:"comment" validate:"required"`
Meta string `json:"meta" validate:"required"`
}
Validation structs
type KamkDeleteInjuryParams ¶
type KamkGetInjuriesParams ¶
type KamkGetInjuriesParams struct {
UserID int32 `form:"user_id" validate:"required,gt=0"`
}
type KamkGetMaxIDParams ¶
type KamkGetMaxIDParams struct {
UserID int32 `form:"user_id" validate:"required,gt=0"`
}
type KamkGetQuestionnairesParams ¶
type KamkGetQuestionnairesParams struct {
UserID int32 `json:"user_id" validate:"required,gt=0"`
}
type KamkIsQuizDoneParams ¶
type KamkMarkRecoveredInput ¶
type QueriesHandler ¶
type QueriesHandler struct {
// contains filtered or unexported fields
}
Handler
func NewQueriesHandler ¶
func NewQueriesHandler(store kamk.Queries, cache *cache.Storage) *QueriesHandler
func (*QueriesHandler) AddQuestionnaire ¶
func (h *QueriesHandler) AddQuestionnaire(w http.ResponseWriter, r *http.Request)
AddQuestionnaire godoc
@Summary Create questionnaire entry
@Description Inserts a questionnaire row for a competitor (timestamp=NOW())
@Tags KAMK - Queries
@Accept json
@Produce json
@Param body body swagger.KamkAddQuestionnaireRequest true "Questionnaire payload"
@Success 201 {object} swagger.KamkCreateQuestionnaireResponse
@Failure 400 {object} swagger.ValidationErrorResponse
@Failure 401 {object} swagger.UnauthorizedResponse
@Failure 403 {object} swagger.ForbiddenResponse
@Failure 500 {object} swagger.InternalServerErrorResponse
@Failure 503 {object} swagger.ServiceUnavailableResponse
@Security BearerAuth
@Router /kamk/questionnaire [post]
func (*QueriesHandler) DeleteQuestionnaire ¶
func (h *QueriesHandler) DeleteQuestionnaire(w http.ResponseWriter, r *http.Request)
DeleteQuestionnaire godoc
@Summary Delete a questionnaire by id
@Description Deletes a questionnaire row (competitor_id=user_id AND id=id)
@Tags KAMK - Queries
@Accept json
@Produce json
@Param user_id query integer true "sportti_id"
@Param id query integer true "Questionnaire ID"
@Success 200 "OK: deleted"
@Failure 400 {object} swagger.ValidationErrorResponse
@Failure 401 {object} swagger.UnauthorizedResponse
@Failure 403 {object} swagger.ForbiddenResponse
@Failure 404 {object} swagger.NotFoundResponse
@Failure 500 {object} swagger.InternalServerErrorResponse
@Failure 503 {object} swagger.ServiceUnavailableResponse
@Security BearerAuth
@Router /kamk/delete-quiz [delete]
func (*QueriesHandler) GetQuestionnaires ¶
func (h *QueriesHandler) GetQuestionnaires(w http.ResponseWriter, r *http.Request)
GetQuestionnaires godoc
@Summary List questionnaires
@Description Returns questionnaires for a competitor ordered by timestamp DESC
@Tags KAMK - Queries
@Accept json
@Produce json
@Param user_id query integer true "sportti_id"
@Success 200 {object} swagger.KamkQuestionnairesListResponse
@Success 204 "No Content: no rows"
@Failure 400 {object} swagger.ValidationErrorResponse
@Failure 401 {object} swagger.UnauthorizedResponse
@Failure 403 {object} swagger.ForbiddenResponse
@Failure 500 {object} swagger.InternalServerErrorResponse
@Failure 503 {object} swagger.ServiceUnavailableResponse
@Security BearerAuth
@Router /kamk/questionnaire [get]
func (*QueriesHandler) IsQuizDoneToday ¶
func (h *QueriesHandler) IsQuizDoneToday(w http.ResponseWriter, r *http.Request)
IsQuizDoneToday godoc
@Summary Check if certain quiz is due for the user. Used for daily quizzes.
@Description Return the quiz if it was done today
@Tags KAMK - Queries
@Accept json
@Produce json
@Param user_id query integer true "sportti_id"
@Param quiz_type query integer true "Quiz type"
@Success 200 {object} swagger.KamkQuestionnairesListResponse
@Success 204 "No Content: no rows today"
@Failure 400 {object} swagger.ValidationErrorResponse
@Failure 401 {object} swagger.UnauthorizedResponse
@Failure 403 {object} swagger.ForbiddenResponse
@Failure 500 {object} swagger.InternalServerErrorResponse
@Failure 503 {object} swagger.ServiceUnavailableResponse
@Security BearerAuth
@Router /kamk/is-quiz-done [get]
func (*QueriesHandler) UpdateQuestionnaireByID ¶
func (h *QueriesHandler) UpdateQuestionnaireByID(w http.ResponseWriter, r *http.Request)
UpdateQuestionnaireByID godoc
@Summary Update questionnaire by id
@Description Updates the questionnaire row identified by id (and user_id)
@Tags KAMK - Queries
@Accept json
@Produce json
@Param user_id query integer true "sportti_id"
@Param id query integer true "Questionnaire ID"
@Param body body swagger.KamkUpdateQuestionnaireBody true "Update payload"
@Success 200 "OK: updated"
@Failure 400 {object} swagger.ValidationErrorResponse
@Failure 401 {object} swagger.UnauthorizedResponse
@Failure 403 {object} swagger.ForbiddenResponse
@Failure 404 {object} swagger.NotFoundResponse
@Failure 500 {object} swagger.InternalServerErrorResponse
@Failure 503 {object} swagger.ServiceUnavailableResponse
@Security BearerAuth
@Router /kamk/update-quiz [post]
Click to show internal directories.
Click to hide internal directories.