migration

package
v0.23.0 Latest Latest
Warning

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

Go to latest
Published: Feb 10, 2024 License: AGPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DoPost added in v0.16.0

func DoPost(url string, form url.Values) (resp *http.Response, err error)

DoPost makes a form encoded post request

func DoPostWithHeaders added in v0.20.2

func DoPostWithHeaders(url string, form url.Values, headers map[string]string) (resp *http.Response, err error)

DoPostWithHeaders does an api request and allows to pass in arbitrary headers

func DownloadFile added in v0.16.0

func DownloadFile(url string) (buf *bytes.Buffer, err error)

DownloadFile downloads a file and returns its contents

func DownloadFileWithHeaders added in v0.19.0

func DownloadFileWithHeaders(url string, headers http.Header) (buf *bytes.Buffer, err error)

DownloadFileWithHeaders downloads a file and allows you to pass in headers

func FinishMigration added in v0.22.0

func FinishMigration(status *Status) (err error)

FinishMigration sets the finished at time and calls it a day

func GetTables

func GetTables() []interface{}

GetTables returns all structs which are also a table.

func InsertFromStructure

func InsertFromStructure(str []*models.ProjectWithTasksAndBuckets, user *user.User) (err error)

InsertFromStructure takes a fully nested Vikunja data structure and a user and then creates everything for this user (Projects, tasks, etc. Even attachments and relations.)

Types

type FileMigrator added in v0.18.0

type FileMigrator interface {
	MigratorName
	// Migrate is the interface used to migrate a user's tasks, project and other things from a file to vikunja.
	// The user object is the user who's tasks will be migrated.
	Migrate(user *user.User, file io.ReaderAt, size int64) error
}

FileMigrator handles importing Vikunja data from a file. The implementation of it determines the format.

type Migrator

type Migrator interface {
	MigratorName
	// Migrate is the interface used to migrate a user's tasks from another platform to vikunja.
	// The user object is the user who's tasks will be migrated.
	Migrate(user *user.User) error
	// AuthURL returns a url for clients to authenticate against.
	// The use case for this are Oauth flows, where the server token should remain hidden and not
	// known to the frontend.
	AuthURL() string
}

Migrator is the basic migrator interface which is shared among all migrators

type MigratorName added in v0.18.0

type MigratorName interface {
	// Name holds the name of the migration.
	// This is used to show the name to users and to keep track of users who already migrated.
	Name() string
}

type Status

type Status struct {
	ID           int64     `xorm:"bigint autoincr not null unique pk" json:"id"`
	UserID       int64     `xorm:"bigint not null" json:"-"`
	MigratorName string    `xorm:"varchar(255)" json:"migrator_name"`
	StartedAt    time.Time `xorm:"not null" json:"started_at"`
	FinishedAt   time.Time `xorm:"null" json:"finished_at"`
}

Status represents this migration status

func GetMigrationStatus

func GetMigrationStatus(m MigratorName, u *user.User) (status *Status, err error)

GetMigrationStatus returns the migration status for a migration and a user

func StartMigration added in v0.22.0

func StartMigration(m MigratorName, u *user.User) (status *Status, err error)

StartMigration sets the migration status for a user

func (*Status) TableName

func (s *Status) TableName() string

TableName holds the table name for the migration status table

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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