services

package
v0.1.5 Latest Latest
Warning

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

Go to latest
Published: Jul 31, 2022 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type FirebaseService added in v0.1.4

type FirebaseService struct {
	LS      ServiceRepo // embedded local service.
	Stdargs models.StdArgs
	Config  models.Settings

	// Firebase related.
	Ctx       context.Context
	FireApp   *firebase.App
	FireAuth  *auth.Client
	FireStore *firestore.Client
}

FirebaseService is a class implementation of service repo. Which's methods are based on Firebase client. ...

func NewFirebaseService added in v0.1.4

func NewFirebaseService(stdargs models.StdArgs, ls ServiceRepo) *FirebaseService

NewFirebaseService creates new firebase service by given arguments.

func (*FirebaseService) ClearNodes added in v0.1.5

func (s *FirebaseService) ClearNodes() ([]models.Node, []error)

ClearNodes removes all nodes from collection.

func (*FirebaseService) Copy added in v0.1.4

func (s *FirebaseService) Copy(note models.Note) error

Copy fetches note from [note.Title], and copies its body to machine's clipboard.

func (*FirebaseService) Create added in v0.1.4

func (s *FirebaseService) Create(note models.Note) (*models.Note, error)

Create, creates a new note element at [note.Title] and sets element-body as json.

func (*FirebaseService) Cut added in v0.1.5

func (s *FirebaseService) Cut(note models.Note) (*models.Note, error)

Cut, copies note data to machine's clipboard and removes it instantly.

func (*FirebaseService) Edit added in v0.1.4

func (s *FirebaseService) Edit(note models.Note) (*models.Note, error)

TODO: add documentation & feature.

func (*FirebaseService) Fetch added in v0.1.4

func (s *FirebaseService) Fetch(remote ServiceRepo) ([]models.Node, []error)

Fetch creates a clone of nodes(that doesn't exists on [s](firebase-service)) from given [remote] service.

func (*FirebaseService) GetAll added in v0.1.4

func (s *FirebaseService) GetAll(additional string, ignore []string) ([]models.Node, []string, error)

GetAll returns all elements from notya collection.

func (*FirebaseService) GetFireDoc added in v0.1.4

func (s *FirebaseService) GetFireDoc(collection firestore.CollectionRef, doc string) (res map[string]interface{}, err error)

GetFireDoc gets concrete collection's concrete data (as map).

func (*FirebaseService) Init added in v0.1.4

func (s *FirebaseService) Init() error

Init creates notya working directory into current machine.

func (*FirebaseService) InitFirebase added in v0.1.4

func (s *FirebaseService) InitFirebase() error

Initializes firebase services as [s.FireApp], [s.FireAuth], and [s.FireStore].

func (*FirebaseService) IsNodeExists added in v0.1.4

func (s *FirebaseService) IsNodeExists(node models.Node) (bool, error)

IsNodeExists checks if an element(given node) exists at notya collection or not. Note: rather than local-service error checking is required.

func (*FirebaseService) Migrate added in v0.1.5

func (s *FirebaseService) Migrate(remote ServiceRepo) ([]models.Node, []error)

Migrate overwrites all notes of given [remote] service with [s](firebase-service).

func (*FirebaseService) Mkdir added in v0.1.4

func (s *FirebaseService) Mkdir(dir models.Folder) (*models.Folder, error)

Mkdir does nothing 'cause of firebase document structure. Have to returns assets.FolderingInFirebase.

func (*FirebaseService) MoveNotes added in v0.1.4

func (s *FirebaseService) MoveNotes(settings models.Settings) error

MoveNote moves all notes from "CURRENT" firebase collection to new collection(given by settings parameter).

func (*FirebaseService) NotyaCollection added in v0.1.4

func (s *FirebaseService) NotyaCollection() firestore.CollectionRef

notyaCollection generates the main firestore collection refrence.

func (*FirebaseService) Open added in v0.1.4

func (s *FirebaseService) Open(node models.Node) error

Open, opens note remotly from firebase. caches it on local, makes able to modify after modifing overwrites on db.

func (*FirebaseService) OpenSettings added in v0.1.4

func (s *FirebaseService) OpenSettings(settings models.Settings) error

OpenSettigns, opens note remotly from firebase. caches it on local, makes able to modify after modifing overwrites on db.

func (*FirebaseService) Path added in v0.1.4

func (s *FirebaseService) Path() string

Path returns current service'base working directory.

func (*FirebaseService) Push added in v0.1.4

func (s *FirebaseService) Push(remote ServiceRepo) ([]models.Node, []error)

Push uploads nodes(that doens't exists on given remote) from [s](current) to given [remote].

func (*FirebaseService) Remove added in v0.1.4

func (s *FirebaseService) Remove(node models.Node) error

Remove deletes given node.

func (*FirebaseService) Rename added in v0.1.4

func (s *FirebaseService) Rename(editNode models.EditNode) error

Rename changes reference ID of document.

func (*FirebaseService) Settings added in v0.1.4

func (s *FirebaseService) Settings(p *string) (*models.Settings, error)

Settings gets and returns current settings state data.

func (*FirebaseService) StateConfig added in v0.1.4

func (s *FirebaseService) StateConfig() models.Settings

StateConfig returns current configuration of state i.e [s.Config].

func (*FirebaseService) Type added in v0.1.4

func (s *FirebaseService) Type() string

Type returns type of FirebaseService - FIRE.

func (*FirebaseService) View added in v0.1.4

func (s *FirebaseService) View(note models.Note) (*models.Note, error)

View fetches note from [note.Title].

func (*FirebaseService) WriteSettings added in v0.1.4

func (s *FirebaseService) WriteSettings(settings models.Settings) error

WriteSettings overwrites settings data by given settings model.

type LocalService

type LocalService struct {
	Stdargs   models.StdArgs
	NotyaPath string
	Config    models.Settings
}

LocalService is a class implementation of service repo. Which is connected to local storage of users machine. Uses ~notya/ as main root folder for notes and configuration files.

func NewLocalService

func NewLocalService(stdargs models.StdArgs) *LocalService

NewLocalService creates new local service by given arguments.

func (*LocalService) ClearNodes added in v0.1.5

func (l *LocalService) ClearNodes() ([]models.Node, []error)

ClearNodes removes all nodes from local (including folders).

func (*LocalService) Copy added in v0.1.1

func (l *LocalService) Copy(note models.Note) error

Copy writes given notes' body, to machines main clipboard.

func (*LocalService) Create

func (l *LocalService) Create(note models.Note) (*models.Note, error)

Create creates new note file. and fills it's data by given note model.

func (*LocalService) Cut added in v0.1.5

func (l *LocalService) Cut(note models.Note) (*models.Note, error)

Cut, copies note data to machine's clipboard and removes it instantly.

func (*LocalService) Edit

func (l *LocalService) Edit(note models.Note) (*models.Note, error)

Edit overwrites exiting file's content-body.

func (*LocalService) Fetch added in v0.1.4

func (l *LocalService) Fetch(remote ServiceRepo) ([]models.Node, []error)

Fetch creates a clone of nodes(that doesn't exists on [l](local-service)) from given [remote] service.

func (*LocalService) GeneratePath added in v0.1.3

func (l *LocalService) GeneratePath(n models.Node) (string, error)

GeneratePath returns non-zero-valuable string path from given additional sub-path(title of node).

func (*LocalService) GetAll

func (l *LocalService) GetAll(additional string, ignore []string) ([]models.Node, []string, error)

GetAll gets all node [names], and returns it as array list.

func (*LocalService) Init

func (l *LocalService) Init() error

Init creates notya working directory into current machine.

func (*LocalService) IsNodeExists added in v0.1.4

func (l *LocalService) IsNodeExists(node models.Node) (bool, error)

IsNodeExists checks for a file or folder at [node.Path] or at generated path from [node.Title]. Note: rather than remote services, error checking is not required.

func (*LocalService) Migrate added in v0.1.5

func (l *LocalService) Migrate(remote ServiceRepo) ([]models.Node, []error)

Migrate overwrites all notes of given [remote] service with [l](current-service).

func (*LocalService) Mkdir added in v0.1.3

func (l *LocalService) Mkdir(dir models.Folder) (*models.Folder, error)

Mkdir creates a new working directory.

func (*LocalService) MoveNotes added in v0.1.2

func (l *LocalService) MoveNotes(settings models.Settings) error

MoveNote moves all notes from "CURRENT" path to new path(given by settings parameter).

func (*LocalService) Open

func (l *LocalService) Open(node models.Node) error

Open opens given node(file or folder) via editor.

func (*LocalService) OpenSettings added in v0.1.4

func (l *LocalService) OpenSettings(settings models.Settings) error

OpenSettings opens given settings via editor.

func (*LocalService) Path added in v0.1.3

func (l *LocalService) Path() string

Path returns current service's base working directory.

func (*LocalService) Push added in v0.1.4

func (l *LocalService) Push(remote ServiceRepo) ([]models.Node, []error)

Push uploads nodes(that doesn't exists on given remote) from [l](current) to given [remote].

func (*LocalService) Remove

func (l *LocalService) Remove(node models.Node) error

Remove deletes given node.

func (*LocalService) Rename

func (l *LocalService) Rename(editNode models.EditNode) error

Rename changes given note's name.

func (*LocalService) Settings added in v0.1.2

func (l *LocalService) Settings(p *string) (*models.Settings, error)

Settings gets and returns current settings state data.

func (*LocalService) StateConfig added in v0.1.4

func (l *LocalService) StateConfig() models.Settings

StateConfig returns current configuration of state i.e [l.Config].

func (*LocalService) Type added in v0.1.4

func (l *LocalService) Type() string

Type returns type of LocalService - LOCAL

func (*LocalService) View

func (l *LocalService) View(note models.Note) (*models.Note, error)

View opens note-file from given [note.Name], then takes it body, and returns new fully-filled note.

func (*LocalService) WriteSettings added in v0.1.2

func (l *LocalService) WriteSettings(settings models.Settings) error

WriteSettings overwrites settings data by given settings model.

type ServiceRepo

type ServiceRepo interface {
	// Type returns the current implementation's type.
	// - LOCAL, if it's local service implementation.
	// - FIRE, if it's firebase service implementation.
	// and etc ...
	Type() string

	// Path returns the path of current base service.
	// In case of local storage implementation, path would be the folder path of the notes.
	Path() string

	// Current config data of service implementation.
	StateConfig() models.Settings

	// Init setups all kinda minimal services for application.
	Init() error
	Settings(p *string) (*models.Settings, error)
	WriteSettings(settings models.Settings) error
	OpenSettings(settings models.Settings) error

	// General functions that used for both [Note]s and [Folder]s
	IsNodeExists(node models.Node) (bool, error)
	Open(node models.Node) error
	Remove(node models.Node) error
	Rename(editNode models.EditNode) error
	ClearNodes() ([]models.Node, []error)

	// Note(file) related functions.
	GetAll(additional string, ignore []string) ([]models.Node, []string, error)
	Create(note models.Note) (*models.Note, error)
	View(note models.Note) (*models.Note, error)
	Edit(note models.Note) (*models.Note, error)
	Copy(note models.Note) error
	Cut(note models.Note) (*models.Note, error)

	// Folder(directory) related functions.
	Mkdir(dir models.Folder) (*models.Folder, error)

	// MoveNotes moves all exiting notes from CURRENT directory
	// to new one, appropriate by settings which comes from arguments.
	MoveNotes(settings models.Settings) error

	// Fetch fetches nodes(that doesn't exists
	// on current service) from remote service to local service.
	Fetch(remote ServiceRepo) ([]models.Node, []error)

	// Push uploads all notes from local service to provided remote.
	Push(remote ServiceRepo) ([]models.Node, []error)

	// Migrate clones current service data to [remote] service data.
	// [remote] service data would be cleared and replaced with current service data.
	Migrate(remote ServiceRepo) ([]models.Node, []error)
}

ServiceRepo is a abstract class for all service implementations.

╭──────╮     ╭────────────────────╮

... │ User │ ──▶ │ Interface Commands │

╰──────╯     ╰────────────────────╯
                       │
           ╭───────────────────────╮
           ▼                       ▼
   ╭───────────────╮       ╭────────────────╮
   │ Local Service │       │ Remote Service │
   ╰───────────────╯       ╰────────────────╯
   Connected to local       Connected to user defined
   storage, and uses        key-store remote database, and uses
   ~notya/ as main root     notya/ as base root key map.
   folder for notes.

type ServiceType added in v0.1.4

type ServiceType string

Custom string struct to define type of services

var (
	LOCAL ServiceType = "LOCAL"
	FIRE  ServiceType = "FIREBASE"

	Services []string = []string{
		LOCAL.ToStr(),
		FIRE.ToStr(),
	}
)

func (*ServiceType) ToStr added in v0.1.4

func (s *ServiceType) ToStr() string

ToStr returns exact key value of ServiceType.

Jump to

Keyboard shortcuts

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