tietoevryapi

package
v1.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 17, 2025 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TietoevryCacheTTL = 6 * time.Hour
)

Variables

This section is empty.

Functions

This section is empty.

Types

type HRZoneInput

type HRZoneInput struct {
	ExerciseID    string `json:"exercise_id"`
	ZoneIndex     int32  `json:"zone_index"`
	SecondsInZone int32  `json:"seconds_in_zone"`
	LowerLimit    int32  `json:"lower_limit"`
	UpperLimit    int32  `json:"upper_limit"`
	CreatedAt     string `json:"created_at"`
	UpdatedAt     string `json:"updated_at"`
}

type SampleInput

type SampleInput struct {
	ID            string    `json:"id"`
	UserID        string    `json:"user_id"`
	ExerciseID    string    `json:"exercise_id"`
	SampleType    string    `json:"sample_type"`
	RecordingRate int32     `json:"recording_rate"`
	Samples       []float64 `json:"samples"`
	Source        string    `json:"source"`
}

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

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL