gogjango/gjango

View on GitHub
repository/role.go

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
package repository

import (
    "github.com/go-pg/pg/v9"
    "github.com/gogjango/gjango/model"
    "go.uber.org/zap"
)

// NewRoleRepo returns a Role Repo instance
func NewRoleRepo(db *pg.DB, log *zap.Logger) *RoleRepo {
    return &RoleRepo{db, log}
}

// RoleRepo represents the client for the role table
type RoleRepo struct {
    db  *pg.DB
    log *zap.Logger
}

// CreateRoles creates role objects in our database
func (r *RoleRepo) CreateRoles() error {
    role := new(model.Role)
    sql := `INSERT INTO roles (id, access_level, name) VALUES (?, ?, ?) ON CONFLICT DO NOTHING`
    r.db.Query(role, sql, 1, model.SuperAdminRole, "superadmin")
    r.db.Query(role, sql, 2, model.AdminRole, "admin")
    r.db.Query(role, sql, 3, model.CompanyAdminRole, "companyadmin")
    r.db.Query(role, sql, 4, model.LocationAdminRole, "locationadmin")
    r.db.Query(role, sql, 5, model.UserRole, "user")
    return nil
}