client

package
v0.0.0-...-49975a5 Latest Latest
Warning

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

Go to latest
Published: Jul 4, 2022 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	APIDomain = "https://www.yuque.com/api/v2"
	APIHello  = APIDomain + "/hello"

	// user
	APIUsers = APIDomain + "/users/%s"
	APIUser  = APIDomain + "/user"

	// repo
	APIUsersRepos  = APIDomain + "/users/%s/repos"
	APIGroupsRepos = APIDomain + "/groups/%s/repos"
	APIRepos       = APIDomain + "/repos/%s"
	APIReposToc    = APIDomain + "/repos/%s/toc"

	// doc
	APIReposDocs       = APIDomain + "/repos/%s/docs"
	APIReposDocsDetail = APIDomain + "/repos/%s/docs/%s"

	// group
	APIUsersGroups       = APIDomain + "/users/%s/groups"
	APIGroups            = APIDomain + "/groups"
	APIGroupsDetail      = APIDomain + "/groups/%s"
	APIGroupsUsers       = APIDomain + "/groups/%s/users"
	APIGroupsUsersUpdate = APIDomain + "/groups/%s/users/%s"

	SlugLength = 6

	RepositoryNamePrefix = "AutoCreate"
)

API 路径

View Source
const (
	Book   = "Book"
	Design = "Design"
	All    = "All"
)

知识库类型

View Source
const (
	Private          = iota // 私密
	Open                    // 所有人
	SpaceMember             // 空间成员
	SpaceOpen               // 空间所有人
	RepositoryMember        // 知识库成员
)

知识库访问权限

View Source
const (
	Markdown = "markdown"
	Lake     = "lake"
)

文档格式

View Source
const DefaultUserAgent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36"

DefaultUserAgent 默认的 user agent

Variables

View Source
var (
	ErrCodeNotDefine = errors.New("未定义的错误码")

	ErrMsg = map[int]error{
		200: errors.New("成功"),
		400: errors.New("请求的参数不正确,或缺少必要信息,请对比文档"),
		401: errors.New("需要用户认证的接口用户信息不正确"),
		403: errors.New("缺少对应功能的权限"),
		404: errors.New("数据不存在,或未开放"),
		500: errors.New("服务器异常"),
	}
)
View Source
var (
	ErrNoFound      = errors.New("http resp err: not found")
	ErrInvalidToken = errors.New("invalid token")
)

Functions

This section is empty.

Types

type Abilities

type Abilities struct {
	Ability

	GroupUser Ability `json:"group_user"`
	Repo      Ability `json:"repo"`
}

type Ability

type Ability struct {
	Create  bool `json:"create"`
	Read    bool `json:"read"`
	Update  bool `json:"update"`
	Destroy bool `json:"destroy"`
}

type BookDetailSerializer

type BookDetailSerializer struct {
	BookSerializer
	Toc        string `json:"toc"`
	TocYml     string `json:"toc_yml"`
	PinnedAt   string `json:"pinned_at"`
	ArchivedAt string `json:"archived_at"`

	Abilities Abilities `json:"abilities"`
}

func (*BookDetailSerializer) String

func (bds *BookDetailSerializer) String() string

type BookSerializer

type BookSerializer struct {
	ID               int            `json:"id"`
	Type             string         `json:"type"`
	Slug             string         `json:"slug"`
	Name             string         `json:"name"`
	Namespace        string         `json:"namespace"`
	UserID           int            `json:"user_id"`
	User             UserSerializer `json:"user"`
	Description      string         `json:"description"`
	CreatorID        int            `json:"creator_id"`
	Public           int            `json:"public"`
	ItemsCount       int            `json:"items_count"`
	LikesCount       int            `json:"likes_count"`
	WatchesCount     int            `json:"watches_count"`
	ContentUpdatedAt string         `json:"content_updated_at"`
	CreatedAt        string         `json:"created_at"`
	UpdatedAt        string         `json:"updated_at"`
	Serializer       string         `json:"_serializer"`
}

type Client

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

func New

func New(token string) *Client

func (*Client) AuthenticatedUser

func (c *Client) AuthenticatedUser() (*UserSerializer, error)

AuthenticatedUser 获取认证的用户的个人信息

func (*Client) CreateGroup

func (c *Client) CreateGroup(cgp *CreateGroupParams) (*UserSerializer, error)

CreateGroup 创建 Group

func (*Client) CreateGroupRepository

func (c *Client) CreateGroupRepository(id string, crp *CreateRepoParams) (*BookDetailSerializer, error)

CreateGroupRepository 往团队创建知识库 notes: 未测试

func (*Client) CreateRepositoryDoc

func (c *Client) CreateRepositoryDoc(id string, crd *CreateRepoDocParams) (*DocDetailSerializer, error)

CreateRepositoryDoc 创建文档

func (*Client) CreateUserRepository

func (c *Client) CreateUserRepository(id string, crp *CreateRepoParams) (*BookDetailSerializer, error)

CreateUserRepository 往自己下面创建知识库

func (*Client) DeleteGroup

func (c *Client) DeleteGroup(id string) (*UserSerializer, error)

DeleteGroup 删除组织

func (*Client) DeleteGroupUser

func (c *Client) DeleteGroupUser(groupID, userID string) (*GroupUserSerializer, error)

DeleteGroupUser 删除组织成员 notes: 未测试

func (*Client) DeleteRepository

func (c *Client) DeleteRepository(id string) (*BookDetailSerializer, error)

DeleteRepository 删除知识库

func (*Client) DeleteRepositoryDoc

func (c *Client) DeleteRepositoryDoc(namespace string, docID int) (*DocDetailSerializer, error)

DeleteRepositoryDoc 删除文档

func (*Client) GetGroupDetail

func (c *Client) GetGroupDetail(id string) (*UserSerializer, error)

GetGroupDetail 获取单个组织的详细信息

func (*Client) GetRepositoryDetail

func (c *Client) GetRepositoryDetail(id string, grd *GetRepoDetailParams) (*BookDetailSerializer, error)

GetRepositoryDetail 获取知识库详情

func (*Client) GetRepositoryDocDetail

func (c *Client) GetRepositoryDocDetail(id, slug string, grd *GetRepoDocDetailParams) (*DocDetailSerializer, error)

GetRepositoryDocDetail 获取单篇文档的详细信息

func (*Client) GetRepositoryToc

func (c *Client) GetRepositoryToc(id string) ([]*Toc, error)

GetRepositoryToc 获取一个知识库的目录结构

func (*Client) Hello

func (c *Client) Hello() (*Hello, error)

Hello 用于测试 token 是否有效

func (*Client) IndividualUser

func (c *Client) IndividualUser(id string) (*UserSerializer, error)

IndividualUser 获取单个用户信息 id: 1: 用户编号 (数字), 2: 用户个人路径 (字符串)

func (*Client) ListGroupRepositories

func (c *Client) ListGroupRepositories(id string, lrp *ListReposParams) ([]*BookSerializer, error)

ListGroupRepositories 获取某个团队的知识库列表

func (*Client) ListGroupUsers

func (c *Client) ListGroupUsers(id string) ([]*GroupUserSerializer, error)

ListGroupUsers 获取组织成员信息

func (*Client) ListPublicGroups

func (c *Client) ListPublicGroups() ([]*UserSerializer, error)

ListPublicGroups 获取公开组织列表

func (*Client) ListRepositoryDocs

func (c *Client) ListRepositoryDocs(id string) ([]*DocSerializer, error)

ListRepositoryDocs 获取一个仓库的文档列表

func (*Client) ListUserJoinedGroup

func (c *Client) ListUserJoinedGroup(login string) ([]*UserSerializer, error)

ListUserJoinedGroup 获取某个用户的加入的组织列表

func (*Client) ListUserRepositories

func (c *Client) ListUserRepositories(id string, lrp *ListReposParams) ([]*BookSerializer, error)

ListUserRepositories 获取某个用户的知识库列表

func (*Client) UpdateGroupDetail

func (c *Client) UpdateGroupDetail(id string, ugd *UpdateGroupDetailParams) (*UserSerializer, error)

UpdateGroupDetail 更新单个组织的详细信息

func (*Client) UpdateGroupUser

func (c *Client) UpdateGroupUser(groupID, userID string, ugu *UpdateGroupUsersParams) (*GroupUserSerializer, error)

UpdateGroupUsers 增加或更新组织成员 notes: 未测试

func (*Client) UpdateRepository

func (c *Client) UpdateRepository(id string, urp *UpdateRepoParams) (*BookDetailSerializer, error)

UpdateRepository 更新知识库信息

func (*Client) UpdateRepositoryDoc

func (c *Client) UpdateRepositoryDoc(namespace string, docID int, urd *UpdateRepoDocParams) (*DocDetailSerializer, error)

UpdateRepositoryDoc 更新文档

func (*Client) XRateLimitLimit

func (c *Client) XRateLimitLimit() int

func (*Client) XRateLimitRemaining

func (c *Client) XRateLimitRemaining() int

type CreateGroupParams

type CreateGroupParams struct {
	Name        string `json:"name"`
	Login       string `json:"login"` // 用户个人路径
	Description string `json:"description"`
}

func (*CreateGroupParams) Reader

func (cgp *CreateGroupParams) Reader() io.Reader

type CreateRepoDocParams

type CreateRepoDocParams struct {
	Title  string `json:"title"`
	Slug   string `json:"slug"`
	Public int    `json:"public"`
	Format string `json:"format"`
	Body   string `json:"body"`
}

func (*CreateRepoDocParams) Reader

func (crd *CreateRepoDocParams) Reader() io.Reader

type CreateRepoParams

type CreateRepoParams struct {
	Name        string `json:"name"`
	Slug        string `json:"slug"`
	Description string `json:"description"`
	Public      int    `json:"public"`
	Type        string `json:"type"`
}

func (*CreateRepoParams) Reader

func (crp *CreateRepoParams) Reader() io.Reader

type DocDetailSerializer

type DocDetailSerializer struct {
	DocSerializer

	Creator       UserSerializer `json:"creator"`
	Body          string         `json:"body"`
	BodyDraft     string         `json:"body_draft"`
	BodyHTML      string         `json:"body_html"`
	BodyLake      string         `json:"body_lake"`
	BodyDraftLake string         `json:"body_draft_lake"`
	CreatorID     int            `json:"creator_id"`
	DeletedAt     string         `json:"deleted_at"`
	Hits          int            `json:"hits"`
}

type DocSerializer

type DocSerializer struct {
	ID                int            `json:"id"`
	Slug              string         `json:"slug"`
	Title             string         `json:"title"`
	Description       string         `json:"description"`
	UserID            int            `json:"user_id"`
	BookID            int            `json:"book_id"`
	Format            string         `json:"format"`
	Public            int            `json:"public"`
	Status            int            `json:"status"`
	ViewStatus        int            `json:"view_status"`
	ReadStatus        int            `json:"read_status"`
	LikesCount        int            `json:"likes_count"`
	CommentsCount     int            `json:"comments_count"`
	ContentUpdatedAt  string         `json:"content_updated_at"`
	Book              BookSerializer `json:"book"`
	LastEditor        UserSerializer `json:"last_editor"`
	CreatedAt         string         `json:"created_at"`
	UpdatedAt         string         `json:"updated_at"`
	PublishedAt       string         `json:"published_at"`
	FirstPublishedAt  string         `json:"first_published_at"`
	DraftVersion      int            `json:"draft_version"`
	LastEditorID      int            `json:"last_editor_id"`
	WordCount         int            `json:"word_count"`
	Cover             string         `json:"cover"`
	CustomDescription string         `json:"custom_description"`
	Serializer        string         `json:"_serializer"`
}

type GetRepoDetailParams

type GetRepoDetailParams struct {
	Type string `json:"type"`
}

func (*GetRepoDetailParams) String

func (grd *GetRepoDetailParams) String() string

type GetRepoDocDetailParams

type GetRepoDocDetailParams struct {
	Raw int `json:"raw"`
}

func (*GetRepoDocDetailParams) String

func (grd *GetRepoDocDetailParams) String() string

type GroupUserSerializer

type GroupUserSerializer struct {
	ID         int            `json:"id"`
	GroupID    int            `json:"group_id"`
	UserID     int            `json:"user_id"`
	User       UserSerializer `json:"user"`
	Role       int            `json:"role"`
	Status     int            `json:"status"`
	CreatedAt  string         `json:"created_at"`
	UpdatedAt  string         `json:"updated_at"`
	Group      UserSerializer `json:"group"`
	Serializer string         `json:"_serializer"`
}

type Hello

type Hello struct {
	Message string `json:"message"`
}

type ListReposParams

type ListReposParams struct {
	Type   string `json:"type"`
	Offset int    `json:"offset"`
}

func (*ListReposParams) String

func (lrp *ListReposParams) String() string

type Meta

type Meta struct {
	TopicEnable int `json:"topic_enable"`
}

type Response

type Response struct {
	Abilities Abilities       `json:"abilities"`
	Meta      Meta            `json:"meta"`
	Data      json.RawMessage `json:"data"`
}

type Toc

type Toc struct {
	Type        string `json:"type"`
	Title       string `json:"title"`
	Uuid        string `json:"uuid"`
	Url         string `json:"url"`
	PrevUuid    string `json:"prev_uuid"`
	SiblingUuid string `json:"sibling_uuid"`
	ChildUuid   string `json:"child_uuid"`
	ParentUuid  string `json:"parent_uuid"`
	Level       int    `json:"level"`
	OpenWindow  int    `json:"open_window"`
	Visible     int    `json:"visible"`
	Depth       int    `json:"depth"`
	Slug        string `json:"slug"`

	ID    json.RawMessage `json:"id"`
	DocID json.RawMessage `json:"doc_id"`
}

func (*Toc) UnmarshalDocID

func (toc *Toc) UnmarshalDocID() string

func (*Toc) UnmarshalID

func (toc *Toc) UnmarshalID() string

type UpdateGroupDetailParams

type UpdateGroupDetailParams struct {
	Name        string `json:"name"`
	Login       string `json:"login"`
	Description string `json:"description"`
}

func (*UpdateGroupDetailParams) Reader

func (ugd *UpdateGroupDetailParams) Reader() io.Reader

type UpdateGroupUsersParams

type UpdateGroupUsersParams struct {
	Role int `json:"role"` // 0: 管理员, 1: 普通成员
}

func (*UpdateGroupUsersParams) Reader

func (ugu *UpdateGroupUsersParams) Reader() io.Reader

type UpdateRepoDocParams

type UpdateRepoDocParams struct {
	Title  string `json:"title"`
	Slug   string `json:"slug"`
	Public int    `json:"public"`
	Body   string `json:"body"`
}

func (*UpdateRepoDocParams) Reader

func (urd *UpdateRepoDocParams) Reader() io.Reader

type UpdateRepoParams

type UpdateRepoParams struct {
	Name        string `json:"name"`
	Slug        string `json:"slug"`
	Toc         string `json:"toc"`
	Description string `json:"description"`
	Public      int    `json:"public"`
}

func (*UpdateRepoParams) Reader

func (urp *UpdateRepoParams) Reader() io.Reader

type UserSerializer

type UserSerializer struct {
	ID                int    `json:"id"`
	Type              string `json:"type"`
	SpaceID           int    `json:"space_id"`
	OrganizationID    int    `json:"organization_id"`
	AccountID         int    `json:"account_id"`
	Login             string `json:"login"`
	Name              string `json:"name"`
	AvatarUrl         string `json:"avatar_url"`
	OwnerID           int    `json:"owner_id"`
	BooksCount        int    `json:"books_count"`
	PublicBooksCount  int    `json:"public_books_count"`
	TopicsCount       int    `json:"topics_count"`
	PublicTopicsCount int    `json:"public_topics_count"`
	MembersCount      int    `json:"members_count"`
	FollowersCount    int    `json:"followers_count"`
	FollowingCount    int    `json:"following_count"`
	Public            int    `json:"public"`
	Description       string `json:"description"`
	CreatedAt         string `json:"created_at"`
	UpdatedAt         string `json:"updated_at"`
	Serializer        string `json:"_serializer"`
}

func (*UserSerializer) String

func (us *UserSerializer) String() string

Jump to

Keyboard shortcuts

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