soq

package module
v0.0.0-...-dc4ca5f Latest Latest
Warning

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

Go to latest
Published: Feb 21, 2022 License: MIT Imports: 4 Imported by: 5

README

Soft Outcomes API

Welcome

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Aggregation

type Aggregation string

Aggregation details the mathematical function used to aggregate questions

const (
	// Mean takes the average of the question values
	AggregationMean Aggregation = "MEAN"
	// Sum totals all the questions values
	AggregationSum Aggregation = "SUM"
)

func (Aggregation) IsValid

func (e Aggregation) IsValid() bool

func (Aggregation) MarshalGQL

func (e Aggregation) MarshalGQL(w io.Writer)

func (Aggregation) String

func (e Aggregation) String() string

func (*Aggregation) UnmarshalGQL

func (e *Aggregation) UnmarshalGQL(v interface{}) error

type Band

type Band struct {
	Min         *float64 `json:"min"`
	Max         *float64 `json:"max"`
	Label       string   `json:"label"`
	Description *string  `json:"description"`
}

Band provides context to scores within a certain band of values

type Changes

type Changes struct {
	Version   string   `json:"version"`
	Changes   []string `json:"changes"`
	Timestamp string   `json:"timestamp"`
}

Changes details the changes made in a given version

type LikertQuestion

type LikertQuestion struct {
	ID          string   `json:"id"`
	Question    string   `json:"question"`
	Description *string  `json:"description"`
	Short       *string  `json:"short"`
	Scale       []*Point `json:"scale"`
}

LikertQuestion is a likert scale question

func (LikertQuestion) IsQuestion

func (LikertQuestion) IsQuestion()
type Link struct {
	Name        string  `json:"name"`
	Description *string `json:"description"`
	URL         string  `json:"url"`
}

Link captures a URL with some textual context

type PageInfo

type PageInfo struct {
	HasNextPage bool `json:"hasNextPage"`
	Page        int  `json:"page"`
	Limit       int  `json:"limit"`
}

PageInfo details the current page and whether pages are available either side

type Point

type Point struct {
	Value float64 `json:"value"`
	Label *string `json:"label"`
}

Point is a value and a label, used for scale questions

type Question

type Question interface {
	IsQuestion()
}

Question is the basic fields required by questions

type Questionnaire

type Questionnaire struct {
	ID           string      `json:"id"`
	Name         string      `json:"name"`
	Short        *string     `json:"short"`
	Version      string      `json:"version"`
	Changelog    []Changes   `json:"changelog"`
	Description  *string     `json:"description"`
	License      string      `json:"license"`
	Attribution  *string     `json:"attribution"`
	Instructions *string     `json:"instructions"`
	Links        []*Link     `json:"links"`
	Questions    []*Question `json:"questions"`
	Scorings     []*Scoring  `json:"scorings"`
}

Questionnaire is a collection of questions and scorings

func (*Questionnaire) UnmarshalJSON

func (q *Questionnaire) UnmarshalJSON(data []byte) error

type QuestionnaireList

type QuestionnaireList struct {
	Questionnaires []*Questionnaire `json:"questionnaires"`
	PageInfo       PageInfo         `json:"pageInfo"`
}

QuestionnaireList is a list of questionnaires along with page information

type Scoring

type Scoring struct {
	ID          string      `json:"id"`
	Name        string      `json:"name"`
	Description *string     `json:"description"`
	Questions   []*string   `json:"questions"`
	Aggregation Aggregation `json:"aggregation"`
	Bands       []*Band     `json:"bands"`
}

Scoring is an aggregation of questions into a score which can be tracked and evaluated

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

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