Move Golang API client here
This commit is contained in:
parent
dbcc5d8a97
commit
f43a055d63
12 changed files with 132 additions and 183 deletions
8
Gopkg.lock
generated
8
Gopkg.lock
generated
|
@ -41,12 +41,6 @@
|
||||||
]
|
]
|
||||||
revision = "90697d60dd844d5ef6ff15135d0203f65d2f53b8"
|
revision = "90697d60dd844d5ef6ff15135d0203f65d2f53b8"
|
||||||
|
|
||||||
[[projects]]
|
|
||||||
branch = "master"
|
|
||||||
name = "github.com/miniflux/miniflux-go"
|
|
||||||
packages = ["."]
|
|
||||||
revision = "7b8d54a221db7b3e049f63e302ebbcc7d6a8d6be"
|
|
||||||
|
|
||||||
[[projects]]
|
[[projects]]
|
||||||
name = "github.com/tdewolff/minify"
|
name = "github.com/tdewolff/minify"
|
||||||
packages = [
|
packages = [
|
||||||
|
@ -152,6 +146,6 @@
|
||||||
[solve-meta]
|
[solve-meta]
|
||||||
analyzer-name = "dep"
|
analyzer-name = "dep"
|
||||||
analyzer-version = 1
|
analyzer-version = 1
|
||||||
inputs-digest = "62141ee1c8cb97033a8a89a45761f074ff9632cb57fe9e4440493ddfce0b083c"
|
inputs-digest = "bcdb45e8fd281e2a0b71ac72bfeba98a126cdbc8809da17e7e63394237105e32"
|
||||||
solver-name = "gps-cdcl"
|
solver-name = "gps-cdcl"
|
||||||
solver-version = 1
|
solver-version = 1
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
# version = "2.4.0"
|
# version = "2.4.0"
|
||||||
|
|
||||||
[metadata.heroku]
|
[metadata.heroku]
|
||||||
root-package = "github.com/miniflux/miniflux"
|
root-package = "miniflux.app"
|
||||||
go-version = "go1.10"
|
go-version = "go1.10"
|
||||||
ensure = "false"
|
ensure = "false"
|
||||||
|
|
||||||
|
@ -37,10 +37,6 @@
|
||||||
branch = "master"
|
branch = "master"
|
||||||
name = "github.com/lib/pq"
|
name = "github.com/lib/pq"
|
||||||
|
|
||||||
[[constraint]]
|
|
||||||
branch = "master"
|
|
||||||
name = "github.com/miniflux/miniflux-go"
|
|
||||||
|
|
||||||
[[constraint]]
|
[[constraint]]
|
||||||
name = "github.com/tdewolff/minify"
|
name = "github.com/tdewolff/minify"
|
||||||
version = "2.3.5"
|
version = "2.3.5"
|
||||||
|
|
50
client/README.md
Normal file
50
client/README.md
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
Miniflux API Client
|
||||||
|
===================
|
||||||
|
|
||||||
|
Client library for Miniflux REST API.
|
||||||
|
|
||||||
|
Installation
|
||||||
|
------------
|
||||||
|
|
||||||
|
```bash
|
||||||
|
go get -u miniflux.app/client
|
||||||
|
```
|
||||||
|
|
||||||
|
Example
|
||||||
|
-------
|
||||||
|
|
||||||
|
```go
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"io/ioutil"
|
||||||
|
|
||||||
|
miniflux "miniflux.app/client"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
client := miniflux.New("https://api.example.org", "admin", "secret")
|
||||||
|
|
||||||
|
// Fetch all feeds.
|
||||||
|
feeds, err := client.Feeds()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fmt.Println(feeds)
|
||||||
|
|
||||||
|
// Backup your feeds to an OPML file.
|
||||||
|
opml, err := client.Export()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
err = ioutil.WriteFile("opml.xml", opml, 0644)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
|
@ -1,8 +1,8 @@
|
||||||
// Copyright 2017 Frédéric Guillot. All rights reserved.
|
// Copyright 2018 Frédéric Guillot. All rights reserved.
|
||||||
// Use of this source code is governed by the MIT license
|
// Use of this source code is governed by the MIT license
|
||||||
// that can be found in the LICENSE file.
|
// that can be found in the LICENSE file.
|
||||||
|
|
||||||
package miniflux
|
package client // import "miniflux.app/client"
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
@ -13,7 +13,7 @@ import (
|
||||||
"strconv"
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Client represents a Miniflux client.
|
// Client holds API procedure calls.
|
||||||
type Client struct {
|
type Client struct {
|
||||||
request *request
|
request *request
|
||||||
}
|
}
|
||||||
|
@ -448,8 +448,8 @@ func (c *Client) ToggleBookmark(entryID int64) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewClient returns a new Client.
|
// New returns a new Miniflux client.
|
||||||
func NewClient(endpoint, username, password string) *Client {
|
func New(endpoint, username, password string) *Client {
|
||||||
return &Client{request: &request{endpoint: endpoint, username: username, password: password}}
|
return &Client{request: &request{endpoint: endpoint, username: username, password: password}}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
// Copyright 2017 Frédéric Guillot. All rights reserved.
|
// Copyright 2018 Frédéric Guillot. All rights reserved.
|
||||||
// Use of this source code is governed by the MIT license
|
// Use of this source code is governed by the MIT license
|
||||||
// that can be found in the LICENSE file.
|
// that can be found in the LICENSE file.
|
||||||
|
|
||||||
package miniflux
|
package client // import "miniflux.app/client"
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
35
client/doc.go
Normal file
35
client/doc.go
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
// Copyright 2018 Frédéric Guillot. All rights reserved.
|
||||||
|
// Use of this source code is governed by the MIT license
|
||||||
|
// that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
Package client implements a client library for the Miniflux REST API.
|
||||||
|
|
||||||
|
Examples
|
||||||
|
|
||||||
|
This code snippet fetch the list of users:
|
||||||
|
|
||||||
|
import (
|
||||||
|
miniflux "miniflux.app/client"
|
||||||
|
)
|
||||||
|
|
||||||
|
client := miniflux.New("https://api.example.org", "admin", "secret")
|
||||||
|
users, err := client.Users()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fmt.Println(users, err)
|
||||||
|
|
||||||
|
This one discover subscriptions on a website:
|
||||||
|
|
||||||
|
subscriptions, err := client.Discover("https://example.org/")
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fmt.Println(subscriptions)
|
||||||
|
|
||||||
|
*/
|
||||||
|
package client // import "miniflux.app/client"
|
|
@ -1,8 +1,8 @@
|
||||||
// Copyright 2017 Frédéric Guillot. All rights reserved.
|
// Copyright 2018 Frédéric Guillot. All rights reserved.
|
||||||
// Use of this source code is governed by the MIT license
|
// Use of this source code is governed by the MIT license
|
||||||
// that can be found in the LICENSE file.
|
// that can be found in the LICENSE file.
|
||||||
|
|
||||||
package miniflux
|
package client // import "miniflux.app/client"
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
|
@ -15,7 +15,7 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/miniflux/miniflux-go"
|
miniflux "miniflux.app/client"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -29,7 +29,7 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestWithBadEndpoint(t *testing.T) {
|
func TestWithBadEndpoint(t *testing.T) {
|
||||||
client := miniflux.NewClient("bad url", testAdminUsername, testAdminPassword)
|
client := miniflux.New("bad url", testAdminUsername, testAdminPassword)
|
||||||
_, err := client.Users()
|
_, err := client.Users()
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatal(`Using a bad url should raise an error`)
|
t.Fatal(`Using a bad url should raise an error`)
|
||||||
|
@ -37,7 +37,7 @@ func TestWithBadEndpoint(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestWithWrongCredentials(t *testing.T) {
|
func TestWithWrongCredentials(t *testing.T) {
|
||||||
client := miniflux.NewClient(testBaseURL, "invalid", "invalid")
|
client := miniflux.New(testBaseURL, "invalid", "invalid")
|
||||||
_, err := client.Users()
|
_, err := client.Users()
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatal(`Using bad credentials should raise an error`)
|
t.Fatal(`Using bad credentials should raise an error`)
|
||||||
|
@ -49,7 +49,7 @@ func TestWithWrongCredentials(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestGetCurrentLoggedUser(t *testing.T) {
|
func TestGetCurrentLoggedUser(t *testing.T) {
|
||||||
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
client := miniflux.New(testBaseURL, testAdminUsername, testAdminPassword)
|
||||||
user, err := client.Me()
|
user, err := client.Me()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -65,7 +65,7 @@ func TestGetCurrentLoggedUser(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestGetUsers(t *testing.T) {
|
func TestGetUsers(t *testing.T) {
|
||||||
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
client := miniflux.New(testBaseURL, testAdminUsername, testAdminPassword)
|
||||||
users, err := client.Users()
|
users, err := client.Users()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -106,7 +106,7 @@ func TestGetUsers(t *testing.T) {
|
||||||
|
|
||||||
func TestCreateStandardUser(t *testing.T) {
|
func TestCreateStandardUser(t *testing.T) {
|
||||||
username := getRandomUsername()
|
username := getRandomUsername()
|
||||||
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
client := miniflux.New(testBaseURL, testAdminUsername, testAdminPassword)
|
||||||
user, err := client.CreateUser(username, testStandardPassword, false)
|
user, err := client.CreateUser(username, testStandardPassword, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -147,7 +147,7 @@ func TestCreateStandardUser(t *testing.T) {
|
||||||
|
|
||||||
func TestRemoveUser(t *testing.T) {
|
func TestRemoveUser(t *testing.T) {
|
||||||
username := getRandomUsername()
|
username := getRandomUsername()
|
||||||
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
client := miniflux.New(testBaseURL, testAdminUsername, testAdminPassword)
|
||||||
user, err := client.CreateUser(username, testStandardPassword, false)
|
user, err := client.CreateUser(username, testStandardPassword, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -160,7 +160,7 @@ func TestRemoveUser(t *testing.T) {
|
||||||
|
|
||||||
func TestGetUserByID(t *testing.T) {
|
func TestGetUserByID(t *testing.T) {
|
||||||
username := getRandomUsername()
|
username := getRandomUsername()
|
||||||
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
client := miniflux.New(testBaseURL, testAdminUsername, testAdminPassword)
|
||||||
user, err := client.CreateUser(username, testStandardPassword, false)
|
user, err := client.CreateUser(username, testStandardPassword, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -211,7 +211,7 @@ func TestGetUserByID(t *testing.T) {
|
||||||
|
|
||||||
func TestGetUserByUsername(t *testing.T) {
|
func TestGetUserByUsername(t *testing.T) {
|
||||||
username := getRandomUsername()
|
username := getRandomUsername()
|
||||||
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
client := miniflux.New(testBaseURL, testAdminUsername, testAdminPassword)
|
||||||
user, err := client.CreateUser(username, testStandardPassword, false)
|
user, err := client.CreateUser(username, testStandardPassword, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -262,7 +262,7 @@ func TestGetUserByUsername(t *testing.T) {
|
||||||
|
|
||||||
func TestUpdateUserTheme(t *testing.T) {
|
func TestUpdateUserTheme(t *testing.T) {
|
||||||
username := getRandomUsername()
|
username := getRandomUsername()
|
||||||
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
client := miniflux.New(testBaseURL, testAdminUsername, testAdminPassword)
|
||||||
user, err := client.CreateUser(username, testStandardPassword, false)
|
user, err := client.CreateUser(username, testStandardPassword, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -281,7 +281,7 @@ func TestUpdateUserTheme(t *testing.T) {
|
||||||
|
|
||||||
func TestUpdateUserThemeWithInvalidValue(t *testing.T) {
|
func TestUpdateUserThemeWithInvalidValue(t *testing.T) {
|
||||||
username := getRandomUsername()
|
username := getRandomUsername()
|
||||||
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
client := miniflux.New(testBaseURL, testAdminUsername, testAdminPassword)
|
||||||
user, err := client.CreateUser(username, testStandardPassword, false)
|
user, err := client.CreateUser(username, testStandardPassword, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -296,7 +296,7 @@ func TestUpdateUserThemeWithInvalidValue(t *testing.T) {
|
||||||
|
|
||||||
func TestCannotCreateDuplicateUser(t *testing.T) {
|
func TestCannotCreateDuplicateUser(t *testing.T) {
|
||||||
username := getRandomUsername()
|
username := getRandomUsername()
|
||||||
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
client := miniflux.New(testBaseURL, testAdminUsername, testAdminPassword)
|
||||||
_, err := client.CreateUser(username, testStandardPassword, false)
|
_, err := client.CreateUser(username, testStandardPassword, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -310,13 +310,13 @@ func TestCannotCreateDuplicateUser(t *testing.T) {
|
||||||
|
|
||||||
func TestCannotListUsersAsNonAdmin(t *testing.T) {
|
func TestCannotListUsersAsNonAdmin(t *testing.T) {
|
||||||
username := getRandomUsername()
|
username := getRandomUsername()
|
||||||
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
client := miniflux.New(testBaseURL, testAdminUsername, testAdminPassword)
|
||||||
_, err := client.CreateUser(username, testStandardPassword, false)
|
_, err := client.CreateUser(username, testStandardPassword, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
client = miniflux.NewClient(testBaseURL, username, testStandardPassword)
|
client = miniflux.New(testBaseURL, username, testStandardPassword)
|
||||||
_, err = client.Users()
|
_, err = client.Users()
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatal(`Standard users should not be able to list any users`)
|
t.Fatal(`Standard users should not be able to list any users`)
|
||||||
|
@ -329,13 +329,13 @@ func TestCannotListUsersAsNonAdmin(t *testing.T) {
|
||||||
|
|
||||||
func TestCannotGetUserAsNonAdmin(t *testing.T) {
|
func TestCannotGetUserAsNonAdmin(t *testing.T) {
|
||||||
username := getRandomUsername()
|
username := getRandomUsername()
|
||||||
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
client := miniflux.New(testBaseURL, testAdminUsername, testAdminPassword)
|
||||||
user, err := client.CreateUser(username, testStandardPassword, false)
|
user, err := client.CreateUser(username, testStandardPassword, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
client = miniflux.NewClient(testBaseURL, username, testStandardPassword)
|
client = miniflux.New(testBaseURL, username, testStandardPassword)
|
||||||
_, err = client.UserByID(user.ID)
|
_, err = client.UserByID(user.ID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatal(`Standard users should not be able to get any users`)
|
t.Fatal(`Standard users should not be able to get any users`)
|
||||||
|
@ -348,13 +348,13 @@ func TestCannotGetUserAsNonAdmin(t *testing.T) {
|
||||||
|
|
||||||
func TestCannotUpdateUserAsNonAdmin(t *testing.T) {
|
func TestCannotUpdateUserAsNonAdmin(t *testing.T) {
|
||||||
username := getRandomUsername()
|
username := getRandomUsername()
|
||||||
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
client := miniflux.New(testBaseURL, testAdminUsername, testAdminPassword)
|
||||||
user, err := client.CreateUser(username, testStandardPassword, false)
|
user, err := client.CreateUser(username, testStandardPassword, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
client = miniflux.NewClient(testBaseURL, username, testStandardPassword)
|
client = miniflux.New(testBaseURL, username, testStandardPassword)
|
||||||
_, err = client.UpdateUser(user.ID, &miniflux.UserModification{})
|
_, err = client.UpdateUser(user.ID, &miniflux.UserModification{})
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatal(`Standard users should not be able to update any users`)
|
t.Fatal(`Standard users should not be able to update any users`)
|
||||||
|
@ -367,13 +367,13 @@ func TestCannotUpdateUserAsNonAdmin(t *testing.T) {
|
||||||
|
|
||||||
func TestCannotCreateUserAsNonAdmin(t *testing.T) {
|
func TestCannotCreateUserAsNonAdmin(t *testing.T) {
|
||||||
username := getRandomUsername()
|
username := getRandomUsername()
|
||||||
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
client := miniflux.New(testBaseURL, testAdminUsername, testAdminPassword)
|
||||||
_, err := client.CreateUser(username, testStandardPassword, false)
|
_, err := client.CreateUser(username, testStandardPassword, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
client = miniflux.NewClient(testBaseURL, username, testStandardPassword)
|
client = miniflux.New(testBaseURL, username, testStandardPassword)
|
||||||
_, err = client.CreateUser(username, testStandardPassword, false)
|
_, err = client.CreateUser(username, testStandardPassword, false)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatal(`Standard users should not be able to create users`)
|
t.Fatal(`Standard users should not be able to create users`)
|
||||||
|
@ -386,13 +386,13 @@ func TestCannotCreateUserAsNonAdmin(t *testing.T) {
|
||||||
|
|
||||||
func TestCannotDeleteUserAsNonAdmin(t *testing.T) {
|
func TestCannotDeleteUserAsNonAdmin(t *testing.T) {
|
||||||
username := getRandomUsername()
|
username := getRandomUsername()
|
||||||
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
client := miniflux.New(testBaseURL, testAdminUsername, testAdminPassword)
|
||||||
user, err := client.CreateUser(username, testStandardPassword, false)
|
user, err := client.CreateUser(username, testStandardPassword, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
client = miniflux.NewClient(testBaseURL, username, testStandardPassword)
|
client = miniflux.New(testBaseURL, username, testStandardPassword)
|
||||||
err = client.DeleteUser(user.ID)
|
err = client.DeleteUser(user.ID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatal(`Standard users should not be able to remove any users`)
|
t.Fatal(`Standard users should not be able to remove any users`)
|
||||||
|
@ -405,14 +405,14 @@ func TestCannotDeleteUserAsNonAdmin(t *testing.T) {
|
||||||
|
|
||||||
func TestCreateCategory(t *testing.T) {
|
func TestCreateCategory(t *testing.T) {
|
||||||
username := getRandomUsername()
|
username := getRandomUsername()
|
||||||
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
client := miniflux.New(testBaseURL, testAdminUsername, testAdminPassword)
|
||||||
user, err := client.CreateUser(username, testStandardPassword, false)
|
user, err := client.CreateUser(username, testStandardPassword, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
categoryName := "My category"
|
categoryName := "My category"
|
||||||
client = miniflux.NewClient(testBaseURL, username, testStandardPassword)
|
client = miniflux.New(testBaseURL, username, testStandardPassword)
|
||||||
category, err := client.CreateCategory(categoryName)
|
category, err := client.CreateCategory(categoryName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -432,7 +432,7 @@ func TestCreateCategory(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestCreateCategoryWithEmptyTitle(t *testing.T) {
|
func TestCreateCategoryWithEmptyTitle(t *testing.T) {
|
||||||
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
client := miniflux.New(testBaseURL, testAdminUsername, testAdminPassword)
|
||||||
_, err := client.CreateCategory("")
|
_, err := client.CreateCategory("")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatal(`The category title should be mandatory`)
|
t.Fatal(`The category title should be mandatory`)
|
||||||
|
@ -456,14 +456,14 @@ func TestCannotCreateDuplicatedCategory(t *testing.T) {
|
||||||
|
|
||||||
func TestUpdateCategory(t *testing.T) {
|
func TestUpdateCategory(t *testing.T) {
|
||||||
username := getRandomUsername()
|
username := getRandomUsername()
|
||||||
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
client := miniflux.New(testBaseURL, testAdminUsername, testAdminPassword)
|
||||||
user, err := client.CreateUser(username, testStandardPassword, false)
|
user, err := client.CreateUser(username, testStandardPassword, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
categoryName := "My category"
|
categoryName := "My category"
|
||||||
client = miniflux.NewClient(testBaseURL, username, testStandardPassword)
|
client = miniflux.New(testBaseURL, username, testStandardPassword)
|
||||||
category, err := client.CreateCategory(categoryName)
|
category, err := client.CreateCategory(categoryName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -490,14 +490,14 @@ func TestUpdateCategory(t *testing.T) {
|
||||||
|
|
||||||
func TestListCategories(t *testing.T) {
|
func TestListCategories(t *testing.T) {
|
||||||
username := getRandomUsername()
|
username := getRandomUsername()
|
||||||
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
client := miniflux.New(testBaseURL, testAdminUsername, testAdminPassword)
|
||||||
user, err := client.CreateUser(username, testStandardPassword, false)
|
user, err := client.CreateUser(username, testStandardPassword, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
categoryName := "My category"
|
categoryName := "My category"
|
||||||
client = miniflux.NewClient(testBaseURL, username, testStandardPassword)
|
client = miniflux.New(testBaseURL, username, testStandardPassword)
|
||||||
_, err = client.CreateCategory(categoryName)
|
_, err = client.CreateCategory(categoryName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -553,7 +553,7 @@ func TestDeleteCategory(t *testing.T) {
|
||||||
|
|
||||||
func TestCannotDeleteCategoryOfAnotherUser(t *testing.T) {
|
func TestCannotDeleteCategoryOfAnotherUser(t *testing.T) {
|
||||||
username := getRandomUsername()
|
username := getRandomUsername()
|
||||||
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
client := miniflux.New(testBaseURL, testAdminUsername, testAdminPassword)
|
||||||
categories, err := client.Categories()
|
categories, err := client.Categories()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -564,7 +564,7 @@ func TestCannotDeleteCategoryOfAnotherUser(t *testing.T) {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
client = miniflux.NewClient(testBaseURL, username, testStandardPassword)
|
client = miniflux.New(testBaseURL, username, testStandardPassword)
|
||||||
err = client.DeleteCategory(categories[0].ID)
|
err = client.DeleteCategory(categories[0].ID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatal(`Removing a category that belongs to another user should be forbidden`)
|
t.Fatal(`Removing a category that belongs to another user should be forbidden`)
|
||||||
|
@ -572,7 +572,7 @@ func TestCannotDeleteCategoryOfAnotherUser(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDiscoverSubscriptions(t *testing.T) {
|
func TestDiscoverSubscriptions(t *testing.T) {
|
||||||
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
client := miniflux.New(testBaseURL, testAdminUsername, testAdminPassword)
|
||||||
subscriptions, err := client.Discover(testWebsiteURL)
|
subscriptions, err := client.Discover(testWebsiteURL)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -956,13 +956,13 @@ func TestGetFeedIcon(t *testing.T) {
|
||||||
|
|
||||||
func TestGetFeedIconNotFound(t *testing.T) {
|
func TestGetFeedIconNotFound(t *testing.T) {
|
||||||
username := getRandomUsername()
|
username := getRandomUsername()
|
||||||
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
client := miniflux.New(testBaseURL, testAdminUsername, testAdminPassword)
|
||||||
_, err := client.CreateUser(username, testStandardPassword, false)
|
_, err := client.CreateUser(username, testStandardPassword, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
client = miniflux.NewClient(testBaseURL, username, testStandardPassword)
|
client = miniflux.New(testBaseURL, username, testStandardPassword)
|
||||||
if _, err := client.FeedIcon(42); err == nil {
|
if _, err := client.FeedIcon(42); err == nil {
|
||||||
t.Fatalf(`The feed icon should be null`)
|
t.Fatalf(`The feed icon should be null`)
|
||||||
}
|
}
|
||||||
|
@ -1233,13 +1233,13 @@ func getRandomUsername() string {
|
||||||
|
|
||||||
func createClient(t *testing.T) *miniflux.Client {
|
func createClient(t *testing.T) *miniflux.Client {
|
||||||
username := getRandomUsername()
|
username := getRandomUsername()
|
||||||
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
client := miniflux.New(testBaseURL, testAdminUsername, testAdminPassword)
|
||||||
_, err := client.CreateUser(username, testStandardPassword, false)
|
_, err := client.CreateUser(username, testStandardPassword, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return miniflux.NewClient(testBaseURL, username, testStandardPassword)
|
return miniflux.New(testBaseURL, username, testStandardPassword)
|
||||||
}
|
}
|
||||||
|
|
||||||
func createFeed(t *testing.T, client *miniflux.Client) (*miniflux.Feed, *miniflux.Category) {
|
func createFeed(t *testing.T, client *miniflux.Client) (*miniflux.Feed, *miniflux.Category) {
|
||||||
|
|
9
vendor/github.com/miniflux/miniflux-go/.travis.yml
generated
vendored
9
vendor/github.com/miniflux/miniflux-go/.travis.yml
generated
vendored
|
@ -1,9 +0,0 @@
|
||||||
notifications:
|
|
||||||
email: false
|
|
||||||
language: go
|
|
||||||
go:
|
|
||||||
- 1.9
|
|
||||||
before_install:
|
|
||||||
- go get -u github.com/golang/lint/golint
|
|
||||||
script:
|
|
||||||
- golint *.go
|
|
21
vendor/github.com/miniflux/miniflux-go/LICENSE
generated
vendored
21
vendor/github.com/miniflux/miniflux-go/LICENSE
generated
vendored
|
@ -1,21 +0,0 @@
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2017 Frédéric Guillot
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
65
vendor/github.com/miniflux/miniflux-go/README.md
generated
vendored
65
vendor/github.com/miniflux/miniflux-go/README.md
generated
vendored
|
@ -1,65 +0,0 @@
|
||||||
Go Library for Miniflux
|
|
||||||
=======================
|
|
||||||
[![Build Status](https://travis-ci.org/miniflux/miniflux-go.svg?branch=master)](https://travis-ci.org/miniflux/miniflux-go)
|
|
||||||
[![GoDoc](https://godoc.org/github.com/miniflux/miniflux-go?status.svg)](https://godoc.org/github.com/miniflux/miniflux-go)
|
|
||||||
|
|
||||||
Client library for Miniflux REST API.
|
|
||||||
|
|
||||||
Requirements
|
|
||||||
------------
|
|
||||||
|
|
||||||
- Miniflux >= 2.0.0
|
|
||||||
- Go >= 1.9
|
|
||||||
|
|
||||||
Installation
|
|
||||||
------------
|
|
||||||
|
|
||||||
```bash
|
|
||||||
go get -u github.com/miniflux/miniflux-go
|
|
||||||
```
|
|
||||||
|
|
||||||
Example
|
|
||||||
-------
|
|
||||||
|
|
||||||
```go
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"io/ioutil"
|
|
||||||
"github.com/miniflux/miniflux-go"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
client := miniflux.NewClient("https://api.example.org", "admin", "secret")
|
|
||||||
|
|
||||||
// Fetch all feeds.
|
|
||||||
feeds, err := client.Feeds()
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
fmt.Println(feeds)
|
|
||||||
|
|
||||||
// Backup your feeds to an OPML file.
|
|
||||||
opml, err := client.Export()
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
err = ioutil.WriteFile("opml.xml", opml, 0644)
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Println("backup done!")
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Credits
|
|
||||||
-------
|
|
||||||
|
|
||||||
- Author: Frédéric Guillot
|
|
||||||
- Distributed under MIT License
|
|
31
vendor/github.com/miniflux/miniflux-go/doc.go
generated
vendored
31
vendor/github.com/miniflux/miniflux-go/doc.go
generated
vendored
|
@ -1,31 +0,0 @@
|
||||||
// Copyright 2017 Frédéric Guillot. All rights reserved.
|
|
||||||
// Use of this source code is governed by the MIT license
|
|
||||||
// that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
Package miniflux implements a client library for the Miniflux REST API.
|
|
||||||
|
|
||||||
Examples
|
|
||||||
|
|
||||||
This code snippet fetch the list of users.
|
|
||||||
|
|
||||||
client := miniflux.NewClient("https://api.example.org", "admin", "secret")
|
|
||||||
users, err := client.Users()
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
fmt.Println(users, err)
|
|
||||||
|
|
||||||
This one discover subscriptions on a website.
|
|
||||||
|
|
||||||
subscriptions, err := client.Discover("https://example.org/")
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
fmt.Println(subscriptions)
|
|
||||||
|
|
||||||
*/
|
|
||||||
package miniflux
|
|
Loading…
Reference in a new issue