Files
2018-07-30 13:34:44 +10:00

38 lines
867 B
Go

package model
import (
. "github.com/mickael-kerjean/nuage/server/common"
"github.com/mickael-kerjean/nuage/server/model/backend"
)
func NewBackend(ctx *App, conn map[string]string) (IBackend, error) {
switch conn["type"] {
case "webdav":
return backend.NewWebDav(conn, ctx)
case "ftp":
return backend.NewFtp(conn, ctx)
case "sftp":
return backend.NewSftp(conn, ctx)
case "git":
return backend.NewGit(conn, ctx)
case "s3":
return backend.NewS3(conn, ctx)
case "dropbox":
return backend.NewDropbox(conn, ctx)
case "gdrive":
return backend.NewGDrive(conn, ctx)
default:
return backend.NewNothing(conn, ctx)
}
return nil, NewError("Invalid backend type", 501)
}
func GetHome(b IBackend) (string, error) {
obj, ok := b.(interface{ Home() (string, error) })
if ok == false {
_, err := b.Ls("/")
return "", err
}
return obj.Home()
}