Documentation ¶
Index ¶
- func KindValidator(ro Kind) error
- type Achievement
- type AchievementClient
- func (a *AchievementClient) DeleteByID(ctx context.Context, id AchievementID) (*Achievement, error)
- func (a *AchievementClient) FindByCampus(ctx context.Context, id CampusID) (*Achievements, *PaginationResponse, error)
- func (a *AchievementClient) FindByCursus(ctx context.Context, id CursusID) (*Achievements, *PaginationResponse, error)
- func (a *AchievementClient) FindByID(ctx context.Context, id AchievementID) (*Achievement, error)
- func (a *AchievementClient) FindByTitle(ctx context.Context, id TitleID) (*Achievements, *PaginationResponse, error)
- func (a *AchievementClient) List(ctx context.Context, req *AchievementQueryRequest) (*Achievements, *PaginationResponse, error)
- type AchievementID
- type AchievementQueryRequest
- type AchievementService
- type Achievements
- type Campus
- type CampusID
- type CampusSlice
- type Client
- type ClientOption
- type Cursor
- type Cursus
- type CursusClient
- type CursusID
- type CursusKind
- type CursusQueryRequest
- type CursusService
- type CursusSlice
- type CursusUser
- type CursusUserClient
- func (a *CursusUserClient) FindByCursus(ctx context.Context, id CursusID) (*CursusUsers, error)
- func (a *CursusUserClient) FindByID(ctx context.Context, id UserID) (*CursusUsers, error)
- func (a *CursusUserClient) List(ctx context.Context, req *CursusUserQueryRequest) (*CursusUsers, *PaginationResponse, error)
- type CursusUserID
- type CursusUserQueryRequest
- type CursusUserService
- type CursusUsers
- type Error
- type ErrorCode
- type Image
- type ImageVersion
- type Kind
- type LanguageUser
- type LanguageUserID
- type LanguageUsers
- type LocationsStat
- type Pagination
- type PaginationResponse
- type Project
- type ProjectClient
- func (a *ProjectClient) DeleteByID(ctx context.Context, id ProjectID) (*Project, error)
- func (a *ProjectClient) FindByID(ctx context.Context, id ProjectID) (*Project, error)
- func (a *ProjectClient) GetProjectsByCursus(ctx context.Context, id CursusID) (*Projects, *PaginationResponse, error)
- func (a *ProjectClient) List(ctx context.Context, req *ProjectQueryRequest) (*Projects, *PaginationResponse, error)
- type ProjectID
- type ProjectQueryRequest
- type ProjectService
- type Projects
- type RateLimitedError
- type Skill
- type SkillID
- type SkillQueryRequest
- type Skills
- type Title
- type TitleID
- type Titles
- type Token
- type User
- type UserClient
- func (a *UserClient) FindByCampus(ctx context.Context, id CursusID) (*Users, error)
- func (a *UserClient) FindByID(ctx context.Context, id UserID) (*User, error)
- func (a *UserClient) List(ctx context.Context, req *CursusQueryRequest) (*Users, *PaginationResponse, error)
- func (a *UserClient) LocationStats(ctx context.Context, id UserID) (*LocationsStat, error)
- func (a *UserClient) Me(ctx context.Context, tok string) (*User, error)
- type UserID
- type UserService
- type Users
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func KindValidator ¶
KindValidator is a validator for the "Kind" field enum values. It is called by the builders before save.
Types ¶
type Achievement ¶
type Achievement struct { ID int `json:"id"` Name string `json:"name"` Description string `json:"description"` Tier string `json:"tier"` Kind string `json:"kind"` Visible bool `json:"visible"` Image string `json:"image"` NbrOfSuccess int `json:"nbr_of_success,omitempty"` UsersURL string `json:"users_url,omitempty"` Achievements []string `json:"achievements,omitempty"` Campus []string `json:"campus,omitempty"` Parent *Achievement `json:"parent,omitempty"` Title *Title `json:"title,omitempty"` }
type AchievementClient ¶
type AchievementClient struct {
// contains filtered or unexported fields
}
func (*AchievementClient) DeleteByID ¶
func (a *AchievementClient) DeleteByID(ctx context.Context, id AchievementID) (*Achievement, error)
Get https://api.intra.42.fr/apidoc/2.0/achievements/show.html
func (*AchievementClient) FindByCampus ¶
func (a *AchievementClient) FindByCampus(ctx context.Context, id CampusID) (*Achievements, *PaginationResponse, error)
Get https://api.intra.42.fr/apidoc/2.0/achievements/show.html
func (*AchievementClient) FindByCursus ¶
func (a *AchievementClient) FindByCursus(ctx context.Context, id CursusID) (*Achievements, *PaginationResponse, error)
Get https://api.intra.42.fr/apidoc/2.0/achievements/show.html
func (*AchievementClient) FindByID ¶
func (a *AchievementClient) FindByID(ctx context.Context, id AchievementID) (*Achievement, error)
Get https://api.intra.42.fr/apidoc/2.0/achievements/show.html
func (*AchievementClient) FindByTitle ¶
func (a *AchievementClient) FindByTitle(ctx context.Context, id TitleID) (*Achievements, *PaginationResponse, error)
Get https://api.intra.42.fr/apidoc/2.0/achievements/show.html
func (*AchievementClient) List ¶
func (a *AchievementClient) List(ctx context.Context, req *AchievementQueryRequest) (*Achievements, *PaginationResponse, error)
Get https://api.intra.42.fr/apidoc/2.0/achievements/show.html
type AchievementID ¶
type AchievementID int
func (AchievementID) String ¶
func (pID AchievementID) String() string
type AchievementQueryRequest ¶
type AchievementQueryRequest struct {
Pagination *Pagination `json:"pagination,omitempty"`
}
type AchievementService ¶
type AchievementService interface { List(context.Context, *AchievementQueryRequest) (*Achievements, *PaginationResponse, error) FindByCursus(context.Context, CursusID) (*Achievements, *PaginationResponse, error) FindByCampus(context.Context, CampusID) (*Achievements, *PaginationResponse, error) FindByTitle(context.Context, TitleID) (*Achievements, *PaginationResponse, error) FindByID(context.Context, AchievementID) (*Achievement, error) DeleteByID(context.Context, AchievementID) (*Achievement, error) }
type Achievements ¶
type Achievements []Achievement
type CampusSlice ¶
type CampusSlice []*Campus
type Client ¶
type Client struct { Scope []string ClientID string ClientSecret string Achievement AchievementService CursusUser CursusUserService Project ProjectService Cursus CursusService User UserService // contains filtered or unexported fields }
type ClientOption ¶
type ClientOption func(*Client)
ClientOption to configure API client
func WithHTTPClient ¶
func WithHTTPClient(client *http.Client) ClientOption
WithHTTPClient overrides the default http.Client
func WithRetry ¶
func WithRetry(retries int) ClientOption
WithRetry overrides the default number of max retry attempts on 429 errors
func WithVersion ¶
func WithVersion(version string) ClientOption
WithVersion overrides the Intra42 API version
type CursusClient ¶
type CursusClient struct {
// contains filtered or unexported fields
}
func (*CursusClient) DeleteByID ¶
func (*CursusClient) List ¶
func (a *CursusClient) List(ctx context.Context, req *CursusQueryRequest) (*CursusSlice, *PaginationResponse, error)
type CursusKind ¶
type CursusKind string
CursusKind defines the type for application.
const ( CursusKindTest CursusKind = "test" CursusKindMain CursusKind = "main" CursusKindMainDeprecated CursusKind = "main_deprecated" CursusKindExternal CursusKind = "external" CursusKindExternalDeprecated CursusKind = "external_deprecated" CursusKindPiscine CursusKind = "piscine" CursusKindPiscineCommunity CursusKind = "piscine_community" CursusKindPiscineDeprecated CursusKind = "piscine_deprecated" )
CursusKind values.
func (CursusKind) String ¶
func (ro CursusKind) String() string
String returns the string value for CursusKind.
type CursusQueryRequest ¶
type CursusQueryRequest struct {
Pagination *Pagination `json:"pagination,omitempty"`
}
type CursusService ¶
type CursusSlice ¶
type CursusSlice []*Cursus
type CursusUser ¶
type CursusUser struct { ID int `json:"id"` BeginAt time.Time `json:"begin_at"` EndAt *time.Time `json:"end_at,omitempty"` Grade string `json:"grade"` Level float64 `json:"level"` Skills []Skill `json:"skills"` CursusId int `json:"cursus_id"` HasCoalition bool `json:"has_coalition"` User User `json:"user"` Cursus Cursus `json:"cursus"` }
type CursusUserClient ¶
type CursusUserClient struct {
// contains filtered or unexported fields
}
func (*CursusUserClient) FindByCursus ¶
func (a *CursusUserClient) FindByCursus(ctx context.Context, id CursusID) (*CursusUsers, error)
func (*CursusUserClient) FindByID ¶
func (a *CursusUserClient) FindByID(ctx context.Context, id UserID) (*CursusUsers, error)
func (*CursusUserClient) List ¶
func (a *CursusUserClient) List(ctx context.Context, req *CursusUserQueryRequest) (*CursusUsers, *PaginationResponse, error)
type CursusUserID ¶
type CursusUserID int
func (CursusUserID) String ¶
func (pID CursusUserID) String() string
type CursusUserQueryRequest ¶
type CursusUserQueryRequest struct {
Pagination *Pagination `json:"pagination,omitempty"`
}
type CursusUserService ¶
type CursusUserService interface { List(context.Context, *CursusUserQueryRequest) (*CursusUsers, *PaginationResponse, error) FindByID(context.Context, UserID) (*CursusUsers, error) FindByCursus(context.Context, CursusID) (*CursusUsers, error) }
type CursusUsers ¶
type CursusUsers []*CursusUser
type Error ¶
type Image ¶
type Image struct { Link string `json:"link"` Versions *ImageVersion `json:"versions"` }
type ImageVersion ¶
type LanguageUser ¶
type LanguageUserID ¶
type LanguageUserID int
type LanguageUsers ¶
type LanguageUsers []*LanguageUser
type LocationsStat ¶
type LocationsStat interface{}
type Pagination ¶
func (*Pagination) ToQuery ¶
func (p *Pagination) ToQuery() map[string]string
type PaginationResponse ¶
type PaginationResponse struct { Offset int `json:"-"` NumPages int `json:"pages"` NumItems int `json:"total"` ItemsPerPage int `json:"items"` CurrentPage int `json:"current"` NextPage int `json:"next,omitempty"` PrevPage int `json:"prev,omitempty"` HasPrev, HasNext bool `json:"-"` }
func GetPaginationInfo ¶
func GetPaginationInfo(h http.Header) *PaginationResponse
GetPaginationInfo retrieves the pagination information from the response header.
func (*PaginationResponse) Calculate ¶
func (p *PaginationResponse) Calculate(numItems int)
pages start at 1 - not 0
type Project ¶
type Project struct { ID int `json:"id"` Name string `json:"name"` Slug string `json:"slug"` Difficulty int `json:"difficulty"` Description string `json:"description"` Parent interface{} `json:"parent"` Children []interface{} `json:"children"` Objectives []string `json:"objectives"` Attachments []interface{} `json:"attachments"` CreatedAt string `json:"created_at"` UpdatedAt string `json:"updated_at"` Exam bool `json:"exam"` }
type ProjectClient ¶
type ProjectClient struct {
// contains filtered or unexported fields
}
func (*ProjectClient) DeleteByID ¶
func (*ProjectClient) GetProjectsByCursus ¶
func (a *ProjectClient) GetProjectsByCursus(ctx context.Context, id CursusID) (*Projects, *PaginationResponse, error)
func (*ProjectClient) List ¶
func (a *ProjectClient) List(ctx context.Context, req *ProjectQueryRequest) (*Projects, *PaginationResponse, error)
type ProjectQueryRequest ¶
type ProjectQueryRequest struct {
Pagination *Pagination `json:"pagination,omitempty"`
}
type ProjectService ¶
type ProjectService interface { List(context.Context, *ProjectQueryRequest) (*Projects, *PaginationResponse, error) GetProjectsByCursus(context.Context, CursusID) (*Projects, *PaginationResponse, error) FindByID(context.Context, ProjectID) (*Project, error) DeleteByID(context.Context, ProjectID) (*Project, error) }
type RateLimitedError ¶
type RateLimitedError struct {
Message string
}
func (*RateLimitedError) Error ¶
func (e *RateLimitedError) Error() string
type SkillQueryRequest ¶
type SkillQueryRequest struct {
Pagination *Pagination `json:"pagination,omitempty"`
}
type User ¶
type User struct { CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` ID int `json:"id"` Email string `json:"email"` Login string `json:"login"` FirstName string `json:"first_name"` LastName string `json:"last_name"` UsualFullName string `json:"usual_full_name"` UsualFirstName string `json:"usual_first_name"` Url string `json:"url"` Phone string `json:"phone"` Displayname string `json:"displayname"` Kind string `json:"kind"` Image Image `json:"image"` Staff bool `json:"staff?"` CorrectionPoint int `json:"correction_point"` PoolMonth string `json:"pool_month"` PoolYear string `json:"pool_year"` Location interface{} `json:"location"` Wallet int `json:"wallet"` AnonymizeDate time.Time `json:"anonymize_date"` DataErasureDate time.Time `json:"data_erasure_date,omitempty"` AlumnizedAt time.Time `json:"alumnized_at,omitempty"` Alumni bool `json:"alumni?"` Active bool `json:"active?"` Groups []interface{} `json:"groups"` CursusUsers []CursusUser `json:"cursus_users"` ProjectsUsers []interface{} `json:"projects_users"` LanguagesUsers []LanguageUser `json:"languages_users"` }
type UserClient ¶
type UserClient struct {
// contains filtered or unexported fields
}
func (*UserClient) FindByCampus ¶
func (*UserClient) List ¶
func (a *UserClient) List(ctx context.Context, req *CursusQueryRequest) (*Users, *PaginationResponse, error)
func (*UserClient) LocationStats ¶
func (a *UserClient) LocationStats(ctx context.Context, id UserID) (*LocationsStat, error)
type UserService ¶
type UserService interface { Me(ctx context.Context, token string) (*User, error) List(ctx context.Context, req *CursusQueryRequest) (*Users, *PaginationResponse, error) FindByID(ctx context.Context, id UserID) (*User, error) FindByCampus(ctx context.Context, id CursusID) (*Users, error) LocationStats(ctx context.Context, id UserID) (*LocationsStat, error) }
Source Files ¶
- achievement.go
- achievement_model.go
- campus_model.go
- client.go
- cursus.go
- cursus_kind.go
- cursus_model.go
- cursus_user.go
- cursus_user_model.go
- error.go
- image_model.go
- kind.go
- language_user_model.go
- pagination.go
- project.go
- project_model.go
- scope.go
- skill_model.go
- title_model.go
- user.go
- user_model.go
- utils.go