Skip to content

Go library to perform CRUD operations on an Elemental model with multiple backend implementations

License

Notifications You must be signed in to change notification settings

PaloAltoNetworks/manipulate

Folders and files

NameName
Last commit message
Last commit date
Jun 10, 2019
Sep 10, 2019
Jul 29, 2019
Sep 13, 2019
Jun 10, 2019
Aug 10, 2019
Nov 8, 2018
Oct 30, 2018
May 1, 2019
Sep 13, 2019
May 1, 2019
May 31, 2019
Jun 10, 2019
May 1, 2019
May 1, 2019
May 1, 2019
May 2, 2019
May 31, 2019
Sep 9, 2019
Sep 9, 2019
Jun 6, 2019
Jun 6, 2019
May 1, 2019
Jun 10, 2019
Jun 10, 2019
May 31, 2019
May 31, 2019
May 1, 2019
May 1, 2019

Repository files navigation

Manipulate

codecov

README IS A WORK IN PROGRESS AS WE ARE WRITTING MORE DOCUMENTATION ABOUT THIS PACKAGE.

Package manipulate provides everything needed to perform CRUD operations on an elemental based data model.

The main interface is Manipulator. This interface provides various methods for creation, modification, retrieval and so on.

A Manipulator works with elemental.Identifiable.

The storage engine used by a Manipulator is abstracted. By default manipulate provides implementations for Mongo, ReST HTTP, Websocket and a Memory backed datastore. You can of course implement Your own storage implementation.

Each method of a Manipulator is taking a manipulate.Context as argument. The context is used to pass additional informations like a Filter, or some Parameters.

Example for creating an object

// Create a User from a generated Elemental model.
user := models.NewUser() // always use the initializer to get various default value correctly set.
user.FullName := "Antoine Mercadal"
user.Login := "primalmotion"

// Create Mongo Manipulator.
m := manipmongo.New("127.0.0.1", "test")

// Then create the User.
m.Create(nil, user)

Example for retreving an object

// Create a Context with a filter.
ctx := manipulate.NewContextWithFilter(manipulate.NewFilterComposer().
    WithKey("login").Equals("primalmotion").
    Done(),
)

// Retrieve the users matching the filter.
var users models.UserLists
m.RetrieveMany(ctx, &users)

About

Go library to perform CRUD operations on an Elemental model with multiple backend implementations

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published