Help us shape the future of Go! Take the 2026 Go Developer Survey

archapi

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: 11 Imported by: 0

Documentation

Index

Constants

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

Variables

This section is empty.

Functions

This section is empty.

Types

type ArchDataUpsertInput

type ArchDataUpsertInput struct {
	NationalID   string                 `json:"national_id"    validate:"required,numeric"`
	FirstName    *string                `json:"first_name"     validate:"omitempty"`
	LastName     *string                `json:"last_name"      validate:"omitempty"`
	Initials     *string                `json:"initials"       validate:"omitempty"`
	DateOfBirth  *string                `json:"date_of_birth"  validate:"omitempty"`
	Height       *float64               `json:"height"         validate:"omitempty"`
	Weight       *float64               `json:"weight"         validate:"omitempty"`
	Measurements []ArchMeasurementInput `json:"measurements"   validate:"omitempty,dive"`
}

type ArchMeasurementInput

type ArchMeasurementInput struct {
	Comment            *string `json:"comment"`
	Discipline         *string `json:"discipline"`
	MeasurementGroupID int32   `json:"measurement_group_id" validate:"required,gt=0"`
	MeasurementID      int32   `json:"measurement_id"       validate:"required,gt=0"`
	NbSegments         *int32  `json:"nb_segments"`
	Place              *string `json:"place"`
	RaceID             *int32  `json:"race_id"`
	SessionName        *string `json:"session_name"`
	StartTime          *string `json:"start_time"`
	StopTime           *string `json:"stop_time"`
}

type DataHandler

type DataHandler struct {
	// contains filtered or unexported fields
}

func NewDataHandler

func NewDataHandler(store archinisis.Data, cache *cache.Storage) *DataHandler

func (*DataHandler) GetArchData

func (h *DataHandler) GetArchData(w http.ResponseWriter, r *http.Request)

GetArchData godoc

@Summary		Get Archinisis data by Sportti ID
@Description	Returns athlete profile and measurements for the given sportti id.
@Tags			ARCHINISIS - Data
@Accept			json
@Produce		json
@Param			id	query		string	true	"Sportti ID (national_id)"
@Success		200	{object}	swagger.ArchDataResponse
@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			/archinisis/data [get]

func (*DataHandler) GetRaceReportHTML

func (h *DataHandler) GetRaceReportHTML(w http.ResponseWriter, r *http.Request)

GetRaceReportHTML godoc

@Summary		Get a specific race report (HTML)
@Description	Returns the raw HTML race report for a (sportti_id, session_id). Content-Type is text/html.
@Tags			ARCHINISIS - Data
@Accept			json
@Produce		html
@Param			sportti_id	query		string	true	"Sportti ID"
@Param			session_id	query		string	true	"Session ID"
@Success		200			{string}	string	"<!DOCTYPE html><html><head><title>Race Report</title></head><body><h1>HTML RACE REPORT</h1><p>full report returned in html DOCTYPE</p></body></html>"
@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			/archinisis/race-report [get]

func (*DataHandler) GetRaceReportSessions

func (h *DataHandler) GetRaceReportSessions(w http.ResponseWriter, r *http.Request)

GetRaceReportSessions godoc

@Summary		List race-report session IDs for a Sportti ID
@Description	Returns all session_id values that have race reports for the given sportti_id
@Tags			ARCHINISIS - Data
@Accept			json
@Produce		json
@Param			sportti_id	query		string	true	"Sportti ID"
@Success		200			{object}	swagger.RaceReportSessionsResponse
@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			/archinisis/race-report/sessions [get]

func (*DataHandler) PostArchData

func (h *DataHandler) PostArchData(w http.ResponseWriter, r *http.Request)

PostArchData godoc

@Summary		Upsert Archinisis athlete + measurements
@Description	Inserts/updates athlete profile and related measurements in one request.
@Tags			ARCHINISIS - Data
@Accept			json
@Produce		json
@Param			data	body	swagger.ArchDataUpsertRequest	true	"athlete + measurements"
@Success		201		"Data processed successfully"
@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			/archinisis/data [post]

func (*DataHandler) PostRaceReport

func (h *DataHandler) PostRaceReport(w http.ResponseWriter, r *http.Request)

PostRaceReport godoc

@Summary		Upsert a race report (HTML)
@Description	Inserts or updates a race report for (sportti_id, session_id).
@Tags			ARCHINISIS - Data
@Accept			json
@Produce		json
@Param			data	body	swagger.ArchRaceReportUpsertRequest	true	"race report"
@Success		201		"Data processed successfully"
@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			/archinisis/race-report [post]

type RaceReportHTMLQuery

type RaceReportHTMLQuery struct {
	SporttiID string `validate:"required,numeric"`
	SessionID string `validate:"required,numeric"`
}

type RaceReportSessionsQuery

type RaceReportSessionsQuery struct {
	SporttiID string `validate:"required,numeric"`
}

type RaceReportUpsertInput

type RaceReportUpsertInput struct {
	SporttiID  string `json:"sportti_id" validate:"required,numeric"`
	SessionID  int32  `json:"session_id" validate:"required,gt=0"`
	RaceReport string `json:"race_report" validate:"required"`
}

type SporttiIDParam

type SporttiIDParam struct {
	SporttiID string `form:"sportti_id" validate:"required,numeric"`
}

type UserDataHandler

type UserDataHandler struct {
	// contains filtered or unexported fields
}

func NewUserDataHandler

func NewUserDataHandler(store archinisis.Users, cache *cache.Storage) *UserDataHandler

func (*UserDataHandler) DeleteUser

func (h *UserDataHandler) DeleteUser(w http.ResponseWriter, r *http.Request)

DeleteUser godoc

@Summary		Delete an athlete (hard delete)
@Description	Removes an athlete by sportti_id. Related measurements and reports are deleted via FK cascades.
@Tags			Archinisis - User
@Accept			json
@Produce		json
@Param			sportti_id	query	string	true	"Sportti ID"
@Success		200
@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			/archinisis/user [delete]

Jump to

Keyboard shortcuts

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