api

package
v0.1.5 Latest Latest
Warning

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

Go to latest
Published: Sep 6, 2024 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Author added in v0.0.4

type Author struct {
	DisplayName        string `json:"displayName"`
	ExternalProfileURL string `json:"externalProfileUrl"`
}

type Challenge added in v0.0.4

type Challenge struct {
	CreatedAt string `json:"createdAt" yaml:"createdAt"`
	UpdatedAt string `json:"updatedAt" yaml:"updatedAt"`

	Name        string   `json:"name" yaml:"name"`
	Title       string   `json:"title" yaml:"title"`
	Description string   `json:"description" yaml:"description"`
	Categories  []string `json:"categories" yaml:"categories"`
	Tags        []string `json:"tags,omitempty" yaml:"tags,omitempty"`

	PageURL string `json:"pageUrl" yaml:"pageUrl"`

	AttemptCount    int `json:"attemptCount" yaml:"attemptCount"`
	CompletionCount int `json:"completionCount" yaml:"completionCount"`

	Play *Play `json:"play,omitempty" yaml:"play,omitempty"`

	Tasks map[string]PlayTask `json:"tasks,omitempty" yaml:"tasks,omitempty"`
}

func (*Challenge) CountCompletedInitTasks added in v0.1.0

func (ch *Challenge) CountCompletedInitTasks() int

func (*Challenge) CountInitTasks added in v0.1.0

func (ch *Challenge) CountInitTasks() int

func (*Challenge) GetKind added in v0.0.4

func (ch *Challenge) GetKind() content.ContentKind

func (*Challenge) GetName added in v0.0.4

func (ch *Challenge) GetName() string

func (*Challenge) GetPageURL added in v0.0.4

func (ch *Challenge) GetPageURL() string

func (*Challenge) IsCompletable added in v0.1.0

func (ch *Challenge) IsCompletable() bool

func (*Challenge) IsFailed added in v0.1.0

func (ch *Challenge) IsFailed() bool

func (*Challenge) IsInitialized added in v0.1.0

func (ch *Challenge) IsInitialized() bool

type Client

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

func NewClient

func NewClient(opts ClientOptions) *Client

func (*Client) CompleteChallenge added in v0.1.0

func (c *Client) CompleteChallenge(ctx context.Context, name string) (*Challenge, error)

func (*Client) CreateAuthor added in v0.0.4

func (c *Client) CreateAuthor(ctx context.Context, req CreateAuthorRequest) (*Author, error)

func (*Client) CreateChallenge added in v0.0.4

func (c *Client) CreateChallenge(ctx context.Context, req CreateChallengeRequest) (*Challenge, error)

func (*Client) CreateCourse added in v0.0.4

func (c *Client) CreateCourse(ctx context.Context, req CreateCourseRequest) (*Course, error)

func (*Client) CreatePlay

func (c *Client) CreatePlay(ctx context.Context, req CreatePlayRequest) (*Play, error)

func (*Client) CreateSession

func (c *Client) CreateSession(ctx context.Context) (*Session, error)

func (*Client) CreateSkillPath added in v0.1.5

func (c *Client) CreateSkillPath(ctx context.Context, req CreateSkillPathRequest) (*SkillPath, error)

func (*Client) CreateTutorial added in v0.0.4

func (c *Client) CreateTutorial(ctx context.Context, req CreateTutorialRequest) (*Tutorial, error)

func (*Client) Delete

func (c *Client) Delete(
	ctx context.Context,
	path string,
	query url.Values,
	headers http.Header,
) (*http.Response, error)

func (*Client) DeleteChallenge added in v0.0.4

func (c *Client) DeleteChallenge(ctx context.Context, name string) error

func (*Client) DeleteContentFile added in v0.0.4

func (c *Client) DeleteContentFile(
	ctx context.Context,
	kind content.ContentKind,
	name string,
	file string,
) error

func (*Client) DeleteCourse added in v0.0.4

func (c *Client) DeleteCourse(ctx context.Context, name string) error

func (*Client) DeletePlay

func (c *Client) DeletePlay(ctx context.Context, id string) error

func (*Client) DeleteSession

func (c *Client) DeleteSession(ctx context.Context, id string) error

func (*Client) DeleteSkillPath added in v0.1.5

func (c *Client) DeleteSkillPath(ctx context.Context, name string) error

func (*Client) DeleteTutorial added in v0.0.4

func (c *Client) DeleteTutorial(ctx context.Context, name string) error

func (*Client) Download added in v0.0.4

func (c *Client) Download(
	ctx context.Context,
	path string,
	query url.Values,
	headers http.Header,
	dest io.Writer,
) error

func (*Client) DownloadContentFile added in v0.0.4

func (c *Client) DownloadContentFile(
	ctx context.Context,
	kind content.ContentKind,
	name string,
	file string,
	dest string,
) error

func (*Client) DownloadTo added in v0.0.4

func (c *Client) DownloadTo(
	ctx context.Context,
	path string,
	query url.Values,
	headers http.Header,
	file string,
) error

func (*Client) Get

func (c *Client) Get(
	ctx context.Context,
	path string,
	query url.Values,
	headers http.Header,
) (*http.Response, error)

func (*Client) GetChallenge added in v0.0.4

func (c *Client) GetChallenge(ctx context.Context, name string) (*Challenge, error)

func (*Client) GetCourse added in v0.0.4

func (c *Client) GetCourse(ctx context.Context, name string) (*Course, error)

func (*Client) GetInto

func (c *Client) GetInto(
	ctx context.Context,
	path string,
	query url.Values,
	headers http.Header,
	into any,
) error

func (*Client) GetMe added in v0.0.4

func (c *Client) GetMe(ctx context.Context) (*Me, error)

func (*Client) GetPlay

func (c *Client) GetPlay(ctx context.Context, id string) (*Play, error)

func (*Client) GetPlayground

func (c *Client) GetPlayground(ctx context.Context, name string) (*Playground, error)

func (*Client) GetSession

func (c *Client) GetSession(ctx context.Context, id string) (*Session, error)

func (*Client) GetSkillPath added in v0.1.5

func (c *Client) GetSkillPath(ctx context.Context, name string) (*SkillPath, error)

func (*Client) GetTutorial added in v0.0.4

func (c *Client) GetTutorial(ctx context.Context, name string) (*Tutorial, error)

func (*Client) ListAuthoredChallenges added in v0.0.4

func (c *Client) ListAuthoredChallenges(ctx context.Context) ([]Challenge, error)

func (*Client) ListAuthoredCourses added in v0.0.4

func (c *Client) ListAuthoredCourses(ctx context.Context) ([]Course, error)

func (*Client) ListAuthoredSkillPaths added in v0.1.5

func (c *Client) ListAuthoredSkillPaths(ctx context.Context) ([]SkillPath, error)

func (*Client) ListAuthoredTutorials added in v0.0.4

func (c *Client) ListAuthoredTutorials(ctx context.Context) ([]Tutorial, error)

func (*Client) ListAuthors added in v0.0.4

func (c *Client) ListAuthors(ctx context.Context, filter ListAuthorsFilter) ([]Author, error)

func (*Client) ListChallenges added in v0.0.4

func (c *Client) ListChallenges(ctx context.Context, opts *ListChallengesOptions) ([]*Challenge, error)

func (*Client) ListContentFiles added in v0.0.4

func (c *Client) ListContentFiles(
	ctx context.Context,
	kind content.ContentKind,
	name string,
) ([]string, error)

func (*Client) ListCourses added in v0.0.4

func (c *Client) ListCourses(ctx context.Context) ([]Course, error)

func (*Client) ListPlaygrounds

func (c *Client) ListPlaygrounds(ctx context.Context) ([]Playground, error)

func (*Client) ListPlays

func (c *Client) ListPlays(ctx context.Context) ([]*Play, error)

func (*Client) ListSkillPaths added in v0.1.5

func (c *Client) ListSkillPaths(ctx context.Context) ([]SkillPath, error)

func (*Client) ListTutorials added in v0.0.4

func (c *Client) ListTutorials(ctx context.Context) ([]Tutorial, error)

func (*Client) Patch added in v0.1.0

func (c *Client) Patch(
	ctx context.Context,
	path string,
	query url.Values,
	headers http.Header,
	body io.Reader,
) (*http.Response, error)

func (*Client) PatchInto added in v0.1.0

func (c *Client) PatchInto(
	ctx context.Context,
	path string,
	query url.Values,
	headers http.Header,
	body io.Reader,
	into any,
) error

func (*Client) Post

func (c *Client) Post(
	ctx context.Context,
	path string,
	query url.Values,
	headers http.Header,
	body io.Reader,
) (*http.Response, error)

func (*Client) PostInto

func (c *Client) PostInto(
	ctx context.Context,
	path string,
	query url.Values,
	headers http.Header,
	body io.Reader,
	into any,
) error

func (*Client) Put added in v0.0.4

func (c *Client) Put(
	ctx context.Context,
	path string,
	query url.Values,
	headers http.Header,
	body io.Reader,
) (*http.Response, error)

func (*Client) PutContentMarkdown added in v0.0.4

func (c *Client) PutContentMarkdown(
	ctx context.Context,
	kind content.ContentKind,
	name string,
	file string,
	content string,
) error

func (*Client) PutInto added in v0.0.4

func (c *Client) PutInto(
	ctx context.Context,
	path string,
	query url.Values,
	headers http.Header,
	body io.Reader,
	into any,
) error

func (*Client) RequestPlayConn added in v0.1.0

func (c *Client) RequestPlayConn(ctx context.Context, id string) (*PlayConnHandle, error)

func (*Client) SetCredentials

func (c *Client) SetCredentials(sessionID, accessToken string)

func (*Client) StartChallenge added in v0.1.0

func (c *Client) StartChallenge(ctx context.Context, name string) (*Challenge, error)

func (*Client) StartTunnel

func (c *Client) StartTunnel(ctx context.Context, id string, req StartTunnelRequest) (*StartTunnelResponse, error)

func (*Client) StopChallenge added in v0.1.0

func (c *Client) StopChallenge(ctx context.Context, name string) (*Challenge, error)

func (*Client) Upload added in v0.0.4

func (c *Client) Upload(
	ctx context.Context,
	url string,
	src io.Reader,
) (*http.Response, error)

func (*Client) UploadContentFile added in v0.0.4

func (c *Client) UploadContentFile(
	ctx context.Context,
	kind content.ContentKind,
	name string,
	file string,
	src string,
) error

func (*Client) UploadFrom added in v0.0.4

func (c *Client) UploadFrom(
	ctx context.Context,
	url string,
	file string,
) (*http.Response, error)

type ClientOptions

type ClientOptions struct {
	BaseURL     string
	APIBaseURL  string
	SessionID   string
	AccessToken string
	UserAgent   string
}

type Course added in v0.0.4

type Course struct {
	CreatedAt string `json:"createdAt" yaml:"createdAt"`
	UpdatedAt string `json:"updatedAt" yaml:"updatedAt"`

	Name  string `json:"name" yaml:"name"`
	Title string `json:"title" yaml:"title"`

	PageURL string `json:"pageUrl" yaml:"pageUrl"`
}

func (*Course) GetKind added in v0.0.4

func (c *Course) GetKind() content.ContentKind

func (*Course) GetName added in v0.0.4

func (c *Course) GetName() string

func (*Course) GetPageURL added in v0.0.4

func (c *Course) GetPageURL() string

type CourseVariant added in v0.0.4

type CourseVariant string
const (
	CourseVariantSimple  CourseVariant = "simple"
	CourseVariantModular CourseVariant = "modular"
)

type CreateAuthorRequest added in v0.0.4

type CreateAuthorRequest struct {
	Author
}

type CreateChallengeRequest added in v0.0.4

type CreateChallengeRequest struct {
	Name   string `json:"name"`
	Sample bool   `json:"sample"`
}

type CreateCourseRequest added in v0.0.4

type CreateCourseRequest struct {
	Name    string        `json:"name"`
	Variant CourseVariant `json:"variant"`
	Sample  bool          `json:"sample"`
}

type CreatePlayRequest

type CreatePlayRequest struct {
	Playground string `json:"playground"`
}

type CreateSkillPathRequest added in v0.1.5

type CreateSkillPathRequest struct {
	Name   string `json:"name"`
	Sample bool   `json:"sample"`
}

type CreateTutorialRequest added in v0.0.4

type CreateTutorialRequest struct {
	Name   string `json:"name"`
	Sample bool   `json:"sample"`
}

type ListAuthorsFilter added in v0.0.4

type ListAuthorsFilter struct {
	UserID []string
}

type ListChallengesOptions added in v0.1.0

type ListChallengesOptions struct {
	Category string
}

type Machine

type Machine struct {
	Name        string        `json:"name"`
	Users       []MachineUser `json:"users"`
	CPUCount    int           `json:"cpuCount"`
	RAMSize     string        `json:"ramSize"`
	DrivePerf   string        `json:"drivePerf"`
	NetworkPerf string        `json:"networkPerf"`
}

func (*Machine) DefaultUser added in v0.1.0

func (m *Machine) DefaultUser() *MachineUser

func (*Machine) HasUser added in v0.1.0

func (m *Machine) HasUser(name string) bool

type MachineUser added in v0.1.0

type MachineUser struct {
	Name    string `json:"name"`
	Default bool   `json:"default"`
}

type Me

type Me struct {
	ID string `json:"id" yaml:"userId"`

	GithubProfileId string `json:"githubProfileId" yaml:"githubProfileId"`

	PremiumAccess *PremiumAccess `json:"premiumAccess,omitempty" yaml:"premiumAccess,omitempty"`
}

type Play

type Play struct {
	ID string `json:"id" yaml:"id"`

	CreatedAt   string `json:"createdAt" yaml:"createdAt"`
	UpdatedAt   string `json:"updatedAt" yaml:"updatedAt"`
	LastStateAt string `json:"lastStateAt" yaml:"lastStateAt"`

	ExpiresIn int `json:"expiresIn" yaml:"expiresIn"`

	Playground Playground `json:"playground" yaml:"playground"`

	TutorialName string `json:"tutorialName,omitempty" yaml:"tutorialName"`

	Tutorial *struct {
		Name  string `json:"name" yaml:"name"`
		Title string `json:"title" yaml:"title"`
	} `json:"tutorial,omitempty" yaml:"tutorial"`

	ChallengeName string `json:"challengeName,omitempty" yaml:"challengeName"`

	Challenge *struct {
		Name  string `json:"name" yaml:"name"`
		Title string `json:"title" yaml:"title"`
	} `json:"challenge,omitempty" yaml:"challenge"`

	CourseName string `json:"courseName,omitempty" yaml:"courseName"`

	Course *struct {
		Name  string `json:"name" yaml:"name"`
		Title string `json:"title" yaml:"title"`
	} `json:"course,omitempty" yaml:"course"`

	LessonPath string `json:"lessonPath,omitempty" yaml:"lessonPath"`

	Lesson *struct {
		Name  string `json:"name" yaml:"name"`
		Title string `json:"title" yaml:"title"`
	} `json:"lesson,omitempty" yaml:"lesson"`

	PageURL string `json:"pageUrl" yaml:"pageUrl"`

	Active    bool `json:"active" yaml:"active"`
	Running   bool `json:"running" yaml:"running"`
	Destroyed bool `json:"destroyed" yaml:"destroyed"`
	Failed    bool `json:"failed" yaml:"failed"`

	Machines []Machine `json:"machines" yaml:"machines"`
}

func (*Play) GetMachine

func (p *Play) GetMachine(name string) *Machine

type PlayConnHandle added in v0.1.0

type PlayConnHandle struct {
	URL string `json:"url"`
}

type PlayTask added in v0.1.0

type PlayTask struct {
	Name    string         `json:"name"`
	Init    bool           `json:"init"`
	Helper  bool           `json:"helper"`
	Status  PlayTaskStatus `json:"status"`
	Version int            `json:"version"`
}

type PlayTaskStatus added in v0.1.0

type PlayTaskStatus int
const (
	PlayTaskStatusNone      PlayTaskStatus = 0
	PlayTaskStatusCreated   PlayTaskStatus = 10
	PlayTaskStatusBlocked   PlayTaskStatus = 20
	PlayTaskStatusRunning   PlayTaskStatus = 30
	PlayTaskStatusFailed    PlayTaskStatus = 35
	PlayTaskStatusCompleted PlayTaskStatus = 40
)

type Playground

type Playground struct {
	Name        string   `json:"name"`
	Title       string   `json:"title"`
	Description string   `json:"description"`
	Categories  []string `json:"categories"`
}

type PortAccess

type PortAccess string
const (
	PortAccessPublic  PortAccess = "public"
	PortAccessPrivate PortAccess = "private"
)

type PremiumAccess added in v0.0.4

type PremiumAccess struct {
	Until    string `json:"until,omitempty" yaml:"until,omitempty"`
	Lifetime bool   `json:"lifetime,omitempty" yaml:"lifetime,omitempty"`
	Trial    bool   `json:"trial,omitempty" yaml:"trial,omitempty"`
}

type Session

type Session struct {
	ID string `json:"id"`

	UserID string `json:"userId"`

	Authenticated bool `json:"authenticated"`

	AccessToken string `json:"accessToken"`

	AuthURL string `json:"authUrl"`
}

type SkillPath added in v0.1.5

type SkillPath struct {
	CreatedAt string `json:"createdAt" yaml:"createdAt"`
	UpdatedAt string `json:"updatedAt" yaml:"updatedAt"`

	Name  string `json:"name" yaml:"name"`
	Title string `json:"title" yaml:"title"`

	PageURL string `json:"pageUrl" yaml:"pageUrl"`
}

func (*SkillPath) GetKind added in v0.1.5

func (t *SkillPath) GetKind() content.ContentKind

func (*SkillPath) GetName added in v0.1.5

func (t *SkillPath) GetName() string

func (*SkillPath) GetPageURL added in v0.1.5

func (t *SkillPath) GetPageURL() string

type StartTunnelRequest

type StartTunnelRequest struct {
	Machine          string     `json:"machine"`
	Port             int        `json:"port"`
	Access           PortAccess `json:"access"`
	GenerateLoginURL bool       `json:"generateLoginUrl"`
	SSHUser          string     `json:"sshUser"`
	SSHPubKey        string     `json:"sshPubKey"`
}

type StartTunnelResponse

type StartTunnelResponse struct {
	URL      string `json:"url"`
	LoginURL string `json:"loginUrl"`
}

type Tutorial added in v0.0.4

type Tutorial struct {
	CreatedAt string `json:"createdAt" yaml:"createdAt"`
	UpdatedAt string `json:"updatedAt" yaml:"updatedAt"`

	Name  string `json:"name" yaml:"name"`
	Title string `json:"title" yaml:"title"`

	PageURL string `json:"pageUrl" yaml:"pageUrl"`
}

func (*Tutorial) GetKind added in v0.0.4

func (t *Tutorial) GetKind() content.ContentKind

func (*Tutorial) GetName added in v0.0.4

func (t *Tutorial) GetName() string

func (*Tutorial) GetPageURL added in v0.0.4

func (t *Tutorial) GetPageURL() string

Jump to

Keyboard shortcuts

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