func (ur *UserOracleRepository) CreateUser(user models.User) error {
	user.Id = bson.NewObjectId()
	_, err := ur.Tx.Exec(INSERT_USER_ORACLE,
		user.Id.Hex(), user.Username, user.Password, user.Email, utils.BoolToInt(user.IsAdmin),
	)
	return err
}
CreateUser create a new user
package providers
import (
	"database/sql"
	"github.com/Glintt/gAPI/api/database"
	"github.com/Glintt/gAPI/api/utils"
	"github.com/Glintt/gAPI/api/users/models"
	"gopkg.in/mgo.v2/bson"
)
type UserOracleRepository struct {
	Db      *sql.DB
	DbError error
	Tx      *sql.Tx
}
const (
	FIND_BY_EMAIL_OR_USERNAME = `select id, username, password, email, isadmin from gapi_users where email like :email or username like :username`
	FIND_BY_USERNAME = `select id, username, password, email, isadmin from gapi_users where username = :username`
	UPDATE_USER_ORACLE = `UPDATE gapi_users
	SET 
		username = :username, 
		password = :password,
		email = :email, 
		isadmin = :isadmin
	WHERE id = :id
	`
	INSERT_USER_ORACLE = `insert into gapi_users (id, username, password, email, isadmin) values (:id, :username, :password, :email, :isadmin)`
)
func (agmr *UserOracleRepository) InitUsers() {}
func (agmr *UserOracleRepository) OpenTransaction() error {
	tx, err := agmr.Db.Begin()
	agmr.Tx = tx
	return err
}
func (agmr *UserOracleRepository) CommitTransaction() {
	agmr.Tx.Commit()
}
func (agmr *UserOracleRepository) RollbackTransaction() {
	agmr.Tx.Rollback()
}
func (agmr *UserOracleRepository) Release() {
	database.CloseOracleConnection(agmr.Db)
}