Documentation
¶
Index ¶
- Constants
- type HRZoneInput
- type SampleInput
- type SectionInput
- type TietoevryActivityZoneHandler
- type TietoevryActivityZoneInput
- type TietoevryActivityZoneParams
- type TietoevryActivityZonesBulkInput
- type TietoevryExerciseHandler
- type TietoevryExerciseParams
- type TietoevryExerciseUpsertInput
- type TietoevryExercisesBulkInput
- type TietoevryMeasurementHandler
- type TietoevryMeasurementInput
- type TietoevryMeasurementParams
- type TietoevryMeasurementsBulkInput
- type TietoevryQuestionnaireAnswerInput
- type TietoevryQuestionnaireAnswersBulkInput
- type TietoevryQuestionnaireHandler
- type TietoevryQuestionnaireParams
- type TietoevrySymptomHandler
- type TietoevrySymptomInput
- type TietoevrySymptomParams
- type TietoevrySymptomsBulkInput
- type TietoevryTestResultHandler
- type TietoevryTestResultInput
- type TietoevryTestResultParams
- type TietoevryTestResultsBulkInput
- type TietoevryUserDeleteParams
- type TietoevryUserHandler
- func (h *TietoevryUserHandler) DeleteUser(w http.ResponseWriter, r *http.Request)
- func (h *TietoevryUserHandler) GetDeletedUsers(w http.ResponseWriter, r *http.Request)
- func (h *TietoevryUserHandler) GetUser(w http.ResponseWriter, r *http.Request)
- func (h *TietoevryUserHandler) UpsertUser(w http.ResponseWriter, r *http.Request)
- type TietoevryUserUpsertInput
Constants ¶
View Source
const (
TietoevryCacheTTL = 6 * time.Hour
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type HRZoneInput ¶
type SampleInput ¶
type SectionInput ¶
type SectionInput struct {
ID string `json:"id"`
UserID string `json:"user_id"`
ExerciseID string `json:"exercise_id"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
StartTime string `json:"start_time"`
EndTime string `json:"end_time"`
SectionType *string `json:"section_type"`
Name *string `json:"name"`
Comment *string `json:"comment"`
Source string `json:"source"`
RawID *string `json:"raw_id"`
RawData *string `json:"raw_data"`
}
type TietoevryActivityZoneHandler ¶
type TietoevryActivityZoneHandler struct {
// contains filtered or unexported fields
}
func NewTietoevryActivityZoneHandler ¶
func NewTietoevryActivityZoneHandler(store tietoevry.ActivityZones, cache *cache.Storage) *TietoevryActivityZoneHandler
func (*TietoevryActivityZoneHandler) GetActivityZones ¶
func (h *TietoevryActivityZoneHandler) GetActivityZones(w http.ResponseWriter, r *http.Request)
GetActivityZones godoc
@Summary Get activity zones by user ID
@Description Get all activity zones for a specific user
@Tags Tietoevry - Activity_Zones
@Accept json
@Produce json
@Param user_id query string true "User ID (UUID)"
@Success 200 {object} swagger.TietoevryActivityZoneResponse
@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 /tietoevry/activity-zones [get]
func (*TietoevryActivityZoneHandler) InsertActivityZonesBulk ¶
func (h *TietoevryActivityZoneHandler) InsertActivityZonesBulk(w http.ResponseWriter, r *http.Request)
InsertActivityZonesBulk godoc
@Summary Insert activity zones (bulk)
@Description Insert multiple activity zone summaries for user (idempotent)
@Tags Tietoevry - Activity_Zones
@Accept json
@Produce json
@Param activity_zones body swagger.TietoevryActivityZonesBulkInput true "Activity zone summaries"
@Success 201 "Activity zones processed successfully (idempotent operation)"
@Failure 400 {object} swagger.ValidationErrorResponse
@Failure 401 {object} swagger.UnauthorizedResponse
@Failure 403 {object} swagger.ForbiddenResponse
@Failure 409 {object} swagger.ConflictResponse
@Failure 500 {object} swagger.InternalServerErrorResponse
@Failure 503 {object} swagger.ServiceUnavailableResponse
@Security BearerAuth
@Router /tietoevry/activity-zones [post]
type TietoevryActivityZoneInput ¶
type TietoevryActivityZoneInput struct {
UserID string `json:"user_id" validate:"required,uuid4"`
Date string `json:"date" validate:"required"`
CreatedAt string `json:"created_at" validate:"required"`
UpdatedAt string `json:"updated_at" validate:"required"`
SecondsInZone0 *float64 `json:"seconds_in_zone_0"`
SecondsInZone1 *float64 `json:"seconds_in_zone_1"`
SecondsInZone2 *float64 `json:"seconds_in_zone_2"`
SecondsInZone3 *float64 `json:"seconds_in_zone_3"`
SecondsInZone4 *float64 `json:"seconds_in_zone_4"`
SecondsInZone5 *float64 `json:"seconds_in_zone_5"`
Source string `json:"source" validate:"required"`
RawData *string `json:"raw_data"`
}
type TietoevryActivityZoneParams ¶
type TietoevryActivityZoneParams struct {
UserID string `json:"user_id" validate:"required,uuid4"`
}
type TietoevryActivityZonesBulkInput ¶
type TietoevryActivityZonesBulkInput struct {
ActivityZones []TietoevryActivityZoneInput `json:"activity_zones" validate:"required,dive"`
}
type TietoevryExerciseHandler ¶
type TietoevryExerciseHandler struct {
// contains filtered or unexported fields
}
func NewTietoevryExerciseHandler ¶
func NewTietoevryExerciseHandler(store tietoevry.Exercises, cache *cache.Storage) *TietoevryExerciseHandler
func (*TietoevryExerciseHandler) GetExercises ¶
func (h *TietoevryExerciseHandler) GetExercises(w http.ResponseWriter, r *http.Request)
GetExercises godoc
@Summary Get exercises by user ID
@Description Get all exercises (HR_Zones, Samples, Sections) for a specific user
@Tags Tietoevry - Exercise
@Accept json
@Produce json
@Param user_id query string true "User ID (UUID)"
@Success 200 {object} swagger.TietoevryExerciseResponse
@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 /tietoevry/exercises [get]
func (*TietoevryExerciseHandler) InsertExercisesBulk ¶
func (h *TietoevryExerciseHandler) InsertExercisesBulk(w http.ResponseWriter, r *http.Request)
InsertExercise godoc
@Summary Insert exercise (bulk)
@Description Insert multiple exercise bundles for user (idempotent)
@Tags Tietoevry - Exercise
@Accept json
@Produce json
@Param exercise body swagger.TietoevryExercisesBulkInput true "Exercise data"
@Success 201 "Exercises processed successfully (idempotent operation)"
@Failure 400 {object} swagger.ValidationErrorResponse
@Failure 401 {object} swagger.UnauthorizedResponse
@Failure 403 {object} swagger.ForbiddenResponse
@Failure 409 {object} swagger.ConflictResponse
@Failure 500 {object} swagger.InternalServerErrorResponse
@Failure 503 {object} swagger.ServiceUnavailableResponse
@Security BearerAuth
@Router /tietoevry/exercises [post]
type TietoevryExerciseParams ¶
type TietoevryExerciseParams struct {
UserID string `form:"user_id" validate:"required,uuid4"`
}
type TietoevryExerciseUpsertInput ¶
type TietoevryExerciseUpsertInput struct {
ID string `json:"id" validate:"required,uuid4"`
CreatedAt string `json:"created_at" validate:"required"`
UpdatedAt string `json:"updated_at" validate:"required"`
UserID string `json:"user_id" validate:"required,uuid4"`
StartTime string `json:"start_time" validate:"required"`
Duration string `json:"duration" validate:"required"`
Comment *string `json:"comment"`
SportType *string `json:"sport_type"`
DetailedSportType *string `json:"detailed_sport_type"`
Distance *float64 `json:"distance"`
AvgHeartRate *float64 `json:"avg_heart_rate"`
MaxHeartRate *float64 `json:"max_heart_rate"`
Trimp *float64 `json:"trimp"`
SprintCount *int32 `json:"sprint_count"`
AvgSpeed *float64 `json:"avg_speed"`
MaxSpeed *float64 `json:"max_speed"`
Source string `json:"source" validate:"required"`
Status *string `json:"status"`
Calories *int32 `json:"calories"`
TrainingLoad *int32 `json:"training_load"`
RawID *string `json:"raw_id"`
Feeling *int32 `json:"feeling"`
Recovery *int32 `json:"recovery"`
RPE *int32 `json:"rpe"`
RawData *string `json:"raw_data"`
HRZones []HRZoneInput `json:"hr_zones"`
Samples []SampleInput `json:"samples"`
Sections []SectionInput `json:"sections"`
}
type TietoevryExercisesBulkInput ¶
type TietoevryExercisesBulkInput struct {
Exercises []TietoevryExerciseUpsertInput `json:"exercises" validate:"required,dive"`
}
type TietoevryMeasurementHandler ¶
type TietoevryMeasurementHandler struct {
// contains filtered or unexported fields
}
Handler struct
func NewTietoevryMeasurementHandler ¶
func NewTietoevryMeasurementHandler(store tietoevry.Measurements, cache *cache.Storage) *TietoevryMeasurementHandler
func (*TietoevryMeasurementHandler) GetMeasurements ¶
func (h *TietoevryMeasurementHandler) GetMeasurements(w http.ResponseWriter, r *http.Request)
GetMeasurements godoc
@Summary Get measurements by user ID
@Description Get all measurements for a specific user
@Tags Tietoevry - Measurements
@Accept json
@Produce json
@Param user_id query string true "User ID (UUID)"
@Success 200 {object} swagger.TietoevryMeasurementResponse
@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 /tietoevry/measurements [get]
func (*TietoevryMeasurementHandler) InsertMeasurementsBulk ¶
func (h *TietoevryMeasurementHandler) InsertMeasurementsBulk(w http.ResponseWriter, r *http.Request)
InsertMeasurements godoc
@Summary Insert measurements (bulk)
@Description Insert multiple measurements for user (idempotent)
@Tags Tietoevry - Measurements
@Accept json
@Produce json
@Param measurements body swagger.TietoevryMeasurementsBulkInput true "Measurement data"
@Success 201 "Measurements processed successfully"
@Failure 400 {object} swagger.ValidationErrorResponse
@Failure 401 {object} swagger.UnauthorizedResponse
@Failure 403 {object} swagger.ForbiddenResponse
@Failure 409 {object} swagger.ConflictResponse
@Failure 500 {object} swagger.InternalServerErrorResponse
@Failure 503 {object} swagger.ServiceUnavailableResponse
@Security BearerAuth
@Router /tietoevry/measurements [post]
type TietoevryMeasurementInput ¶
type TietoevryMeasurementInput struct {
ID string `json:"id" validate:"required,uuid4"`
CreatedAt string `json:"created_at" validate:"required"`
UpdatedAt string `json:"updated_at" validate:"required"`
UserID string `json:"user_id" validate:"required,uuid4"`
Date string `json:"date" validate:"required"`
Name string `json:"name" validate:"required"`
NameType string `json:"name_type" validate:"required"`
Source string `json:"source" validate:"required"`
Value string `json:"value" validate:"required"`
ValueNumeric *float64 `json:"value_numeric"`
Comment *string `json:"comment"`
RawID *string `json:"raw_id"`
RawData *string `json:"raw_data"`
AdditionalInfo *string `json:"additional_info"`
}
Input struct for validation
type TietoevryMeasurementParams ¶
type TietoevryMeasurementParams struct {
UserID string `form:"user_id" validate:"required,uuid4"`
}
type TietoevryMeasurementsBulkInput ¶
type TietoevryMeasurementsBulkInput struct {
Measurements []TietoevryMeasurementInput `json:"measurements" validate:"required,dive"`
}
type TietoevryQuestionnaireAnswerInput ¶
type TietoevryQuestionnaireAnswerInput struct {
UserID string `json:"user_id" validate:"required,uuid4"`
QuestionnaireInstanceID string `json:"questionnaire_instance_id" validate:"required,uuid4"`
QuestionnaireNameFi *string `json:"questionnaire_name_fi"`
QuestionnaireNameEn *string `json:"questionnaire_name_en"`
QuestionnaireKey string `json:"questionnaire_key" validate:"required"`
QuestionID string `json:"question_id" validate:"required,uuid4"`
QuestionLabelFi *string `json:"question_label_fi"`
QuestionLabelEn *string `json:"question_label_en"`
QuestionType string `json:"question_type" validate:"required"`
OptionID *string `json:"option_id"`
OptionValue *int32 `json:"option_value"`
OptionLabelFi *string `json:"option_label_fi"`
OptionLabelEn *string `json:"option_label_en"`
FreeText *string `json:"free_text"`
CreatedAt string `json:"created_at" validate:"required"`
UpdatedAt string `json:"updated_at" validate:"required"`
Value *string `json:"value"`
}
type TietoevryQuestionnaireAnswersBulkInput ¶
type TietoevryQuestionnaireAnswersBulkInput struct {
Questionnaires []TietoevryQuestionnaireAnswerInput `json:"questionnaires" validate:"required,dive"`
}
type TietoevryQuestionnaireHandler ¶
type TietoevryQuestionnaireHandler struct {
// contains filtered or unexported fields
}
func NewTietoevryQuestionnaireHandler ¶
func NewTietoevryQuestionnaireHandler(store tietoevry.Questionnaires, cache *cache.Storage) *TietoevryQuestionnaireHandler
func (*TietoevryQuestionnaireHandler) GetQuestionnaires ¶
func (h *TietoevryQuestionnaireHandler) GetQuestionnaires(w http.ResponseWriter, r *http.Request)
GetQuestionnaires godoc
@Summary Get questionnaires by user ID
@Description Get all questionnaire answers for a specific user
@Tags Tietoevry - Questionnaires
@Accept json
@Produce json
@Param user_id query string true "User ID (UUID)"
@Success 200 {object} swagger.TietoevryQuestionnaireAnswerResponse
@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 /tietoevry/questionnaires [get]
func (*TietoevryQuestionnaireHandler) InsertQuestionnaireAnswersBulk ¶
func (h *TietoevryQuestionnaireHandler) InsertQuestionnaireAnswersBulk(w http.ResponseWriter, r *http.Request)
InsertQuestionnaireAnswers godoc
@Summary Insert questionnaire answers (bulk)
@Description Insert multiple questionnaire answers for users (idempotent)
@Tags Tietoevry - Questionnaires
@Accept json
@Produce json
@Param questionnaires body swagger.TietoevryQuestionnaireAnswersBulkInput true "Questionnaire answers"
@Success 201 "Questionnaire answers processed successfully"
@Failure 400 {object} swagger.ValidationErrorResponse
@Failure 401 {object} swagger.UnauthorizedResponse
@Failure 403 {object} swagger.ForbiddenResponse
@Failure 409 {object} swagger.ConflictResponse
@Failure 500 {object} swagger.InternalServerErrorResponse
@Failure 503 {object} swagger.ServiceUnavailableResponse
@Security BearerAuth
@Router /tietoevry/questionnaires [post]
type TietoevryQuestionnaireParams ¶
type TietoevryQuestionnaireParams struct {
UserID string `form:"user_id" validate:"required,uuid4"`
}
type TietoevrySymptomHandler ¶
type TietoevrySymptomHandler struct {
// contains filtered or unexported fields
}
Handler struct
func NewTietoevrySymptomHandler ¶
func NewTietoevrySymptomHandler(store tietoevry.Symptoms, cache *cache.Storage) *TietoevrySymptomHandler
func (*TietoevrySymptomHandler) GetSymptoms ¶
func (h *TietoevrySymptomHandler) GetSymptoms(w http.ResponseWriter, r *http.Request)
GetSymptoms godoc
@Summary Get symptoms by user ID
@Description Get all symptoms for a specific user
@Tags Tietoevry - Symptoms
@Accept json
@Produce json
@Param user_id query string true "User ID (UUID)"
@Success 200 {object} swagger.TietoevrySymptomResponse
@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 /tietoevry/symptoms [get]
func (*TietoevrySymptomHandler) InsertSymptomsBulk ¶
func (h *TietoevrySymptomHandler) InsertSymptomsBulk(w http.ResponseWriter, r *http.Request)
InsertSymptoms godoc
@Summary Insert symptoms (bulk)
@Description Insert multiple symptoms for user (idempotent)
@Tags Tietoevry - Symptoms
@Accept json
@Produce json
@Param symptoms body swagger.TietoevrySymptomsBulkInput true "Symptom data"
@Success 201 "Symptoms processed successfully (idempotent operation)"
@Failure 400 {object} swagger.ValidationErrorResponse
@Failure 401 {object} swagger.UnauthorizedResponse
@Failure 403 {object} swagger.ForbiddenResponse
@Failure 409 {object} swagger.ConflictResponse
@Failure 500 {object} swagger.InternalServerErrorResponse
@Failure 503 {object} swagger.ServiceUnavailableResponse
@Security BearerAuth
@Router /tietoevry/symptoms [post]
type TietoevrySymptomInput ¶
type TietoevrySymptomInput struct {
ID string `json:"id" validate:"required,uuid4"`
UserID string `json:"user_id" validate:"required,uuid4"`
Date string `json:"date" validate:"required"`
Symptom string `json:"symptom" validate:"required"`
Severity int32 `json:"severity" validate:"required"`
Comment *string `json:"comment"`
Source string `json:"source" validate:"required"`
CreatedAt string `json:"created_at" validate:"required"`
UpdatedAt string `json:"updated_at" validate:"required"`
RawID *string `json:"raw_id"`
OriginalID *string `json:"original_id"`
Recovered *bool `json:"recovered"`
PainIndex *int32 `json:"pain_index"`
Side *string `json:"side"`
Category *string `json:"category"`
AdditionalData *string `json:"additional_data"`
}
Input struct for validation
type TietoevrySymptomParams ¶
type TietoevrySymptomParams struct {
UserID string `form:"user_id" validate:"required,uuid4"`
}
type TietoevrySymptomsBulkInput ¶
type TietoevrySymptomsBulkInput struct {
Symptoms []TietoevrySymptomInput `json:"symptoms" validate:"required,dive"`
}
type TietoevryTestResultHandler ¶
type TietoevryTestResultHandler struct {
// contains filtered or unexported fields
}
func NewTietoevryTestResultHandler ¶
func NewTietoevryTestResultHandler(store tietoevry.TestResults, cache *cache.Storage) *TietoevryTestResultHandler
func (*TietoevryTestResultHandler) GetTestResults ¶
func (h *TietoevryTestResultHandler) GetTestResults(w http.ResponseWriter, r *http.Request)
GetTestResults godoc
@Summary Get test results by user ID
@Description Get all test results for a specific user
@Tags Tietoevry - Test_Results
@Accept json
@Produce json
@Param user_id query string true "User ID (UUID)"
@Success 200 {object} swagger.TietoevryTestResultResponse
@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 /tietoevry/test-results [get]
func (*TietoevryTestResultHandler) InsertTestResultsBulk ¶
func (h *TietoevryTestResultHandler) InsertTestResultsBulk(w http.ResponseWriter, r *http.Request)
InsertTestResultsBulk godoc
@Summary Insert test results (bulk)
@Description Insert multiple test results for users (idempotent)
@Tags Tietoevry - Test_Results
@Accept json
@Produce json
@Param test_results body swagger.TietoevryTestResultsBulkInput true "Test result data"
@Success 201 "Test results processed successfully"
@Failure 400 {object} swagger.ValidationErrorResponse
@Failure 401 {object} swagger.UnauthorizedResponse
@Failure 403 {object} swagger.ForbiddenResponse
@Failure 409 {object} swagger.ConflictResponse
@Failure 500 {object} swagger.InternalServerErrorResponse
@Failure 503 {object} swagger.ServiceUnavailableResponse
@Security BearerAuth
@Router /tietoevry/test-results [post]
type TietoevryTestResultInput ¶
type TietoevryTestResultInput struct {
ID string `json:"id" validate:"required,uuid4"`
UserID string `json:"user_id" validate:"required,uuid4"`
TypeID string `json:"type_id" validate:"required,uuid4"`
TypeType *string `json:"type_type"`
TypeResultType string `json:"type_result_type" validate:"required"`
TypeName *string `json:"type_name"`
Timestamp string `json:"timestamp" validate:"required"`
Name *string `json:"name"`
Comment *string `json:"comment"`
Data string `json:"data" validate:"required"`
CreatedAt string `json:"created_at" validate:"required"`
UpdatedAt string `json:"updated_at" validate:"required"`
TestEventID *string `json:"test_event_id"`
TestEventName *string `json:"test_event_name"`
TestEventDate *string `json:"test_event_date"`
TestEventTemplateTestID *string `json:"test_event_template_test_id"`
TestEventTemplateTestName *string `json:"test_event_template_test_name"`
TestEventTemplateTestLimits *string `json:"test_event_template_test_limits"`
}
type TietoevryTestResultParams ¶
type TietoevryTestResultParams struct {
UserID string `form:"user_id" validate:"required,uuid4"`
}
type TietoevryTestResultsBulkInput ¶
type TietoevryTestResultsBulkInput struct {
TestResults []TietoevryTestResultInput `json:"test_results" validate:"required,dive"`
}
type TietoevryUserDeleteParams ¶
type TietoevryUserDeleteParams struct {
ID string `form:"id" validate:"required,uuid4"`
}
type TietoevryUserHandler ¶
type TietoevryUserHandler struct {
// contains filtered or unexported fields
}
handler struct
func NewTietoevryUserHandler ¶
func NewTietoevryUserHandler(store tietoevry.Users, cache *cache.Storage) *TietoevryUserHandler
func (*TietoevryUserHandler) DeleteUser ¶
func (h *TietoevryUserHandler) DeleteUser(w http.ResponseWriter, r *http.Request)
DeleteUser godoc
@Summary Delete a user
@Description Removes a user by ID
@Tags Tietoevry - User
@Accept json
@Produce json
@Param id query string true "User ID (UUID)"
@Success 200 "User deleted successfully"
@Success 204 "No content, user not found"
@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 /tietoevry/users [delete]
func (*TietoevryUserHandler) GetDeletedUsers ¶
func (h *TietoevryUserHandler) GetDeletedUsers(w http.ResponseWriter, r *http.Request)
GetDeletedUsers godoc
@Summary List deleted users
@Description Returns a list of deleted users with timestamps
@Tags Tietoevry - User
@Produce json
@Success 200 {object} swagger.TietoevryDeletedUsersResponse
@Failure 401 {object} swagger.UnauthorizedResponse
@Failure 403 {object} swagger.ForbiddenResponse
@Failure 500 {object} swagger.InternalServerErrorResponse
@Failure 503 {object} swagger.ServiceUnavailableResponse
@Security BearerAuth
@Router /tietoevry/deleted-users [get]
func (*TietoevryUserHandler) GetUser ¶
func (h *TietoevryUserHandler) GetUser(w http.ResponseWriter, r *http.Request)
GetUser godoc
@Summary Get user by ID
@Description Retrieve a single user by UUID
@Tags Tietoevry - User
@Accept json
@Produce json
@Param id query string true "User ID (UUID)"
@Success 200 {object} swagger.TietoevryUserResponse
@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 /tietoevry/users [get]
func (*TietoevryUserHandler) UpsertUser ¶
func (h *TietoevryUserHandler) UpsertUser(w http.ResponseWriter, r *http.Request)
UpsertUser godoc
@Summary Upsert user
@Description Upserts a user with the provided data
@Tags Tietoevry - User
@Accept json
@Produce json
@Param user body swagger.TietoevryUserUpsertInput true "User data"
@Success 201 "created"
@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 /tietoevry/users [post]
type TietoevryUserUpsertInput ¶
type TietoevryUserUpsertInput struct {
ID string `json:"id" validate:"required,uuid4"`
SporttiID int32 `json:"sportti_id" validate:"required"`
ProfileGender *string `json:"profile_gender"`
ProfileBirthdate *string `json:"profile_birthdate"`
ProfileWeight *float64 `json:"profile_weight"`
ProfileHeight *float64 `json:"profile_height"`
ProfileRestingHeartRate *int32 `json:"profile_resting_heart_rate"`
ProfileMaximumHeartRate *int32 `json:"profile_maximum_heart_rate"`
ProfileAerobicThreshold *int32 `json:"profile_aerobic_threshold"`
ProfileAnaerobicThreshold *int32 `json:"profile_anaerobic_threshold"`
ProfileVo2max *int32 `json:"profile_vo2max"`
}
request model
Click to show internal directories.
Click to hide internal directories.