generated from alecodes/base-template
wip: add basic linkding connection
This commit is contained in:
parent
43cd24e4d0
commit
5f5d6bb2e2
7 changed files with 66 additions and 23 deletions
|
|
@ -3,16 +3,23 @@ package app
|
|||
import (
|
||||
"fmt"
|
||||
|
||||
"git.alecodes.page/alecodes/miniflux-archiver/internal/config"
|
||||
"git.alecodes.page/alecodes/miniflux-archiver/internal/logger"
|
||||
"git.alecodes.page/alecodes/miniflux-archiver/internal/miniflux"
|
||||
"git.alecodes.page/alecodes/miniflux-archiver/internal/service"
|
||||
)
|
||||
|
||||
func Archive(minifluxConfig miniflux.MinifluxConfig, serviceConfig ServiceConfig) {
|
||||
func Archive(minifluxConfig config.MinifluxConfig, serviceConfig config.ServiceConfig) {
|
||||
mf, err := miniflux.NewMiniflux(minifluxConfig)
|
||||
if err != nil {
|
||||
logger.Fatal("Could not connect to the miniflux server: %v", err)
|
||||
}
|
||||
|
||||
servi, err := service.ResolveService(serviceConfig)
|
||||
if err != nil {
|
||||
logger.Fatal("Could not connect to the miniflux server: %v", err)
|
||||
}
|
||||
|
||||
result, err := mf.GetEntries()
|
||||
if err != nil {
|
||||
logger.Fatal("Could not retrieve entries from the miniflux feed: %v", err)
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
package app
|
||||
|
||||
type ServiceConfig struct {
|
||||
Service string
|
||||
Host string
|
||||
User string
|
||||
Token string
|
||||
}
|
||||
17
internal/config/config.go
Normal file
17
internal/config/config.go
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
package config
|
||||
|
||||
import "git.alecodes.page/alecodes/miniflux-archiver/internal/service"
|
||||
|
||||
type MinifluxConfig struct {
|
||||
Host string
|
||||
User string
|
||||
Token string
|
||||
FeedId int64
|
||||
}
|
||||
|
||||
type ServiceConfig struct {
|
||||
Service service.ServiceOption
|
||||
Host string
|
||||
User string
|
||||
Token string
|
||||
}
|
||||
|
|
@ -1,19 +1,13 @@
|
|||
package miniflux
|
||||
|
||||
import (
|
||||
"git.alecodes.page/alecodes/miniflux-archiver/internal/config"
|
||||
"git.alecodes.page/alecodes/miniflux-archiver/internal/logger"
|
||||
mfApi "miniflux.app/v2/client"
|
||||
)
|
||||
|
||||
type MinifluxConfig struct {
|
||||
Host string
|
||||
User string
|
||||
Token string
|
||||
FeedId int64
|
||||
}
|
||||
|
||||
type Miniflux struct {
|
||||
MinifluxConfig
|
||||
config.MinifluxConfig
|
||||
client *mfApi.Client
|
||||
}
|
||||
|
||||
|
|
@ -25,7 +19,7 @@ func (mf *Miniflux) GetEntries() (*mfApi.EntryResultSet, error) {
|
|||
return mf.client.FeedEntries(mf.FeedId, filter)
|
||||
}
|
||||
|
||||
func NewMiniflux(config MinifluxConfig) (*Miniflux, error) {
|
||||
func NewMiniflux(config config.MinifluxConfig) (*Miniflux, error) {
|
||||
mf := &Miniflux{
|
||||
MinifluxConfig: config,
|
||||
client: mfApi.NewClient(config.Host, config.Token),
|
||||
|
|
|
|||
7
internal/service/linkding/linkding.go
Normal file
7
internal/service/linkding/linkding.go
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
package linkding
|
||||
|
||||
import "git.alecodes.page/alecodes/miniflux-archiver/internal/config"
|
||||
|
||||
type Linkding struct {
|
||||
config.ServiceConfig
|
||||
}
|
||||
25
internal/service/service.go
Normal file
25
internal/service/service.go
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
package service
|
||||
|
||||
import (
|
||||
"git.alecodes.page/alecodes/miniflux-archiver/internal/config"
|
||||
"git.alecodes.page/alecodes/miniflux-archiver/internal/service/linkding"
|
||||
)
|
||||
|
||||
type ServiceOption string
|
||||
|
||||
const (
|
||||
ServiceLinkding ServiceOption = "linkding"
|
||||
)
|
||||
|
||||
type Service interface{}
|
||||
|
||||
func ResolveService(serviceConfig config.ServiceConfig) Service {
|
||||
switch serviceConfig.Service {
|
||||
case ServiceLinkding:
|
||||
return &linkding.Linkding{
|
||||
ServiceConfig: serviceConfig,
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue