api

package
v0.0.0-...-6178a5e Latest Latest
Warning

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

Go to latest
Published: Apr 19, 2024 License: GPL-2.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Authorized

func Authorized(f func(user *models.User, w http.ResponseWriter, r *http.Request),
	requireAdmin bool, cfg *core.Config, db *sql.DB) http.HandlerFunc

Authorized creates a handler views needing an authorized user. If node_id is in the token, the access request will fail.

func AuthorizedNode

func AuthorizedNode(f func(user *models.User, node *models.Node, w http.ResponseWriter, r *http.Request),
	requireAdmin bool, cfg *core.Config, db *sql.DB) http.HandlerFunc

Authorized creates a handler views needing an authorized user and a node. Node specific token is optional, but if it given, the node will be passed to the handler.

func ContentServeThumbFallback

func ContentServeThumbFallback(w http.ResponseWriter, r *http.Request,
	node *models.Node, cfg *core.Config, db *sql.DB)

ContentServeThumbFallback servers generic thumbnail images from /static/images/mimetype.svg

func GenerateAllThumbnails

func GenerateAllThumbnails(np *jobs.NodeProcessor, homeRoot string, db *sql.DB) func(user *models.User, w http.ResponseWriter, r *http.Request)

GenerateAllThumbnails regenerates all thumbnails.

func NodeCopy

func NodeCopy(homeRoot, thumbRoot string, db *sql.DB) func(user *models.User, w http.ResponseWriter, r *http.Request)

NodeCopy copies a node to a possibly different parent.

func NodeDelete

func NodeDelete(homeRoot, thumbRoot string, db *sql.DB) func(user *models.User, w http.ResponseWriter, r *http.Request)

NodeDelete deletes a node.

func NodeGet

func NodeGet(homeRoot string, db *sql.DB) func(user *models.User, tokenNode *models.Node, w http.ResponseWriter, r *http.Request)

NodeGet returns contents of a node from the given root.

func NodeIDForPath

func NodeIDForPath(auth *jwtauth.JWTAuth, db *sql.DB) func(user *models.User, w http.ResponseWriter, r *http.Request)

NodeIDForPath returns an ID for a path relative to the user's root directory. output: {int} id

func NodeInfo

func NodeInfo(auth *jwtauth.JWTAuth, db *sql.DB) func(user *models.User, w http.ResponseWriter, r *http.Request)

NodeInfo returns information on one node.

func NodeList

func NodeList(auth *jwtauth.JWTAuth, db *sql.DB) func(user *models.User, w http.ResponseWriter, r *http.Request)

NodeList returns a directory listing of a path.

func NodeMakeDir

func NodeMakeDir(cfg *core.Config, db *sql.DB) func(user *models.User, w http.ResponseWriter, r *http.Request)

NodeMakeDir creates a new diectory..

func NodeMove

func NodeMove(cfg *core.Config, db *sql.DB) func(user *models.User, w http.ResponseWriter, r *http.Request)

NodeMove moves a node under a new parent node.

func NodeNew

func NodeNew(uploadDir, homeRoot, thumbRoot string, procCh chan jobs.NodeProcessRequest,
	db *sql.DB) func(user *models.User, w http.ResponseWriter, r *http.Request)

NodeNew creates a new file. Data is retrieved from multipart upload.

func NodeRename

func NodeRename(cfg *core.Config, db *sql.DB) func(user *models.User, w http.ResponseWriter, r *http.Request)

NodeRename renames a node.

func NodeSearch

func NodeSearch(db *sql.DB) func(user *models.User, w http.ResponseWriter, r *http.Request)

NodeSearch searches for nodes matching specific creteria.

func NodeUpdate

func NodeUpdate(uploadDir, homeRoot, thumbRoot string, procCh chan jobs.NodeProcessRequest,
	db *sql.DB) func(user *models.User, w http.ResponseWriter, r *http.Request)

NodeUpdate updates an existing node. Data is retrieved from multipart upload.

func QuerySettings

func QuerySettings(cfg *core.Config, db *sql.DB) func(user *models.User, w http.ResponseWriter, r *http.Request)

QuerySettings returns settings pertinent for the user.

func RunCommand

func RunCommand(auth *jwtauth.JWTAuth, cfg *core.Config, db *sql.DB) func(user *models.User, w http.ResponseWriter, r *http.Request)

RunCommand executes an external command.

func ScanAll

func ScanAll(np *jobs.NodeProcessor, cfg *core.Config, db *sql.DB) func(user *models.User, w http.ResponseWriter, r *http.Request)

Scan for deleted nodes and new files and directories from all home directories.

func ScanDeleted

func ScanDeleted(np *jobs.NodeProcessor, cfg *core.Config, db *sql.DB) func(user *models.User, w http.ResponseWriter, r *http.Request)

Scan for deleted nodes.

func SetPassword

func SetPassword(db *sql.DB) func(user *models.User, w http.ResponseWriter, r *http.Request)

SetPassword changes a password. Non-admins can only change their own password.

func ThumbGet

func ThumbGet(cfg *core.Config, db *sql.DB) func(user *models.User, tokenNode *models.Node, w http.ResponseWriter, r *http.Request)

ThumbGet returns contents of a thumbnail for a node. If a custom thumbnail is not found, a generic icon is served.

func UpdateProgress

func UpdateProgress(db *sql.DB) func(user *models.User, w http.ResponseWriter, r *http.Request)

UpdateProgress updates viewing progress (and current volume, if applicable.)

func UserCreate

func UserCreate(cfg *core.Config, db *sql.DB) func(user *models.User, w http.ResponseWriter, r *http.Request)

UserCreate creates a new user.

func UserLogin

func UserLogin(auth *jwtauth.JWTAuth, cfg *core.Config, db *sql.DB) func(w http.ResponseWriter, r *http.Request)

UserLogin logins in as an existing user.

Types

type CopyRequest

type CopyRequest struct {
	SourceID int
	DestID   int
	NewName  string
}

CopyRequest requests copying of a node to a directory. DestID is the parent node ID. It can be the same as the current parent, provided that NewName differs.

type CreateUserRequest

type CreateUserRequest struct {
	Username string
	Password string
}

CreateUserRequest is used for creating users.

type DeleteRequest

type DeleteRequest struct {
	ID        int
	Recursive bool
}

DeleteRequest requests deletion of a node, potentially recursively.

type ListDirResponse

type ListDirResponse struct {
	Dir      models.Node
	DirPath  string // Full path of the directory
	Children []*fs.NodeWithProgress
}

ListDirResponse is contains the directory node and its children.

type LocalUploadRequest

type LocalUploadRequest struct {
	ParentID  int // ID of the target directory
	Filename  string
	LocalPath string // Path from where to read the file
}

LocalUploadRequest requests an upload of a file accessible by the server itself.

type LoginRequest

type LoginRequest struct {
	Username string
	Password string
}

LoginRequest is used for loggin in and getting the jwt auth token

type LoginResponse

type LoginResponse struct {
	Username      string
	AuthToken     string
	Admin         bool
	InitialNodeID int
}

LoginResponse contains information about the session after a succesful login.

type MakeDirRequest

type MakeDirRequest struct {
	ParentID int
	Name     string
}

MakeDirRequest requests a creationg of a directory.

type MoveRequest

type MoveRequest struct {
	SourceID int
	DestID   int
}

MoveRequest requests copying of a node to a directory. DestID is the parent node ID.

type ProgressUpdateRequest

type ProgressUpdateRequest struct {
	NodeID   int
	UserID   int // optional
	Volume   float32
	Progress float32
}

ProgressUpdateRequest contains information about progress update.

type RenameRequest

type RenameRequest struct {
	ID      int
	NewName string
}

RenameRequest requests renaming of a node.

type RunCommandRequest

type RunCommandRequest struct {
	CommandID string
	NodeID    int
}

type SearchRequest

type SearchRequest struct {
	Text string
}

SearchRequest is used to search for nodes. All Terms must be found in a filename to match it.

type SetPasswordRequest

type SetPasswordRequest struct {
	Username    string
	OldPassword string
	NewPassword string
}

SetPasswordRequest is used for changing passwords.

type SettingsResponse

type SettingsResponse struct {
	NamedCommands []struct {
		ID           string   // ID of the command
		Entry        string   // Name of the entry in the action menu
		ContentTypes []string // List of applicable content types
	}
}

SettingsResponse is returned by QuerySettings().

Jump to

Keyboard shortcuts

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