94 lines
2.0 KiB
Markdown
94 lines
2.0 KiB
Markdown
# go-onlyoffice
|
|
|
|
Go client library for the [OnlyOffice](https://www.onlyoffice.com/) Project Management API.
|
|
|
|
## Features
|
|
|
|
- Token-based authentication with automatic renewal
|
|
- Project CRUD operations (create, read, update, delete)
|
|
- Task management (create, update, list, filter)
|
|
- Milestone management
|
|
- User listing
|
|
- Query parameter serialization via struct tags
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
go get github.com/eslider/go-onlyoffice
|
|
```
|
|
|
|
## Usage
|
|
|
|
```go
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
|
|
onlyoffice "github.com/eslider/go-onlyoffice"
|
|
)
|
|
|
|
func main() {
|
|
client := onlyoffice.NewClient(onlyoffice.Credentials{
|
|
Url: "https://your-onlyoffice.example.com",
|
|
User: "admin@example.com",
|
|
Password: "your-password",
|
|
})
|
|
|
|
// List projects
|
|
projects, err := client.GetProjects()
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
for _, p := range projects {
|
|
fmt.Printf("Project: %s (ID: %d)\n", *p.Title, *p.ID)
|
|
}
|
|
}
|
|
```
|
|
|
|
Or load credentials from environment variables:
|
|
|
|
```go
|
|
client := onlyoffice.NewClient(onlyoffice.GetEnvironmentCredentials())
|
|
```
|
|
|
|
## Environment Variables
|
|
|
|
| Variable | Description |
|
|
|---|---|
|
|
| `ONLYOFFICE_URL` | OnlyOffice instance URL |
|
|
| `ONLYOFFICE_USER` | Login email or username |
|
|
| `ONLYOFFICE_PASS` | Password |
|
|
|
|
## API Reference
|
|
|
|
### Client
|
|
|
|
- `NewClient(credentials)` - Create a new client
|
|
- `GetEnvironmentCredentials()` - Load credentials from env vars
|
|
- `Auth(credentials)` - Authenticate and get token
|
|
- `Query(request, result)` - Execute an API request
|
|
|
|
### Projects
|
|
|
|
- `GetProjects()` - List all projects
|
|
- `CreateProject(req)` - Create a new project
|
|
- `UpdateProject(req)` - Update a project
|
|
- `DeleteProject(id)` - Delete a project
|
|
- `GetProjectMilestones(project)` - Get milestones for a project
|
|
|
|
### Tasks
|
|
|
|
- `GetTasks(req)` - List tasks with filtering
|
|
- `CreateProjectTask(req)` - Create a new task
|
|
- `UpdateProjectTask(req)` - Update a task
|
|
|
|
### Users
|
|
|
|
- `GetUsers()` - List all users
|
|
|
|
## License
|
|
|
|
[MIT](LICENSE)
|