Initial cloud-services repo - gateway service + pkg modules
This commit is contained in:
92
pkg/db/queries/supplier_organizations.go
Normal file
92
pkg/db/queries/supplier_organizations.go
Normal file
@@ -0,0 +1,92 @@
|
||||
package queries
|
||||
|
||||
import (
|
||||
"fiskerinc.com/modules/common"
|
||||
s "fiskerinc.com/modules/security"
|
||||
"github.com/go-pg/pg/v10/orm"
|
||||
)
|
||||
|
||||
type SupplierOrganizationsInterface interface {
|
||||
Count(account *common.SupplierOrganization) (int, error)
|
||||
Insert(supplierOrganization *common.SupplierOrganization) (orm.Result, error)
|
||||
Select(account *common.SupplierOrganization, paging *PageQueryOptions) ([]common.SupplierOrganization, error)
|
||||
}
|
||||
|
||||
type SupplierOrganization struct {
|
||||
QueryBase
|
||||
}
|
||||
|
||||
func (so *SupplierOrganization) Count(supplierOrganization *common.SupplierOrganization) (int, error) {
|
||||
return so.count(supplierOrganization)
|
||||
}
|
||||
|
||||
func (so *SupplierOrganization) Insert(supplierOrganization *common.SupplierOrganization) (orm.Result, error) {
|
||||
enc := s.Encrypt{}
|
||||
encryptor, err := enc.GetEncryptor()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
supplierOrganization.PubKey.SetBytes(encryptor.EncryptChunk(supplierOrganization.PubKey.Bytes()))
|
||||
supplierOrganization.PrivKey.SetBytes(encryptor.EncryptChunk(supplierOrganization.PrivKey.Bytes()))
|
||||
|
||||
return so.GetDBConn().Model(supplierOrganization).Insert()
|
||||
}
|
||||
|
||||
func (so *SupplierOrganization) Select(filter *common.SupplierOrganization, paging *PageQueryOptions) ([]common.SupplierOrganization, error) {
|
||||
supplierOrganizations := []common.SupplierOrganization{}
|
||||
query := so.GetDBConn().Model(&supplierOrganizations)
|
||||
|
||||
so.selectFilter(query, filter)
|
||||
|
||||
if paging != nil {
|
||||
so.pageQuery(query, paging)
|
||||
}
|
||||
|
||||
err := query.Select()
|
||||
|
||||
for _, supplierOrganization := range supplierOrganizations {
|
||||
err = so.decryptSupplierOrganization(&supplierOrganization)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
return supplierOrganizations, err
|
||||
}
|
||||
|
||||
func (sf *SupplierOrganization) selectFilter(query *orm.Query, filter *common.SupplierOrganization) {
|
||||
if filter.DomainName != "" {
|
||||
query.Where("domain_name = ?", filter.DomainName)
|
||||
}
|
||||
|
||||
if filter.SupplierOrganizationID != 0 {
|
||||
query.Where("supplier_organization_id = ?", filter.SupplierOrganizationID)
|
||||
}
|
||||
}
|
||||
|
||||
func (si *SupplierOrganization) decryptSupplierOrganization(supplierOrganization *common.SupplierOrganization) error {
|
||||
enc := s.Encrypt{}
|
||||
encryptor, err := enc.GetEncryptor()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if supplierOrganization.PubKey != nil {
|
||||
key, err := encryptor.DecryptChunk(supplierOrganization.PubKey.Bytes())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
supplierOrganization.PubKey.SetBytes(key)
|
||||
}
|
||||
|
||||
if supplierOrganization.PrivKey != nil {
|
||||
key, err := encryptor.DecryptChunk(supplierOrganization.PrivKey.Bytes())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
supplierOrganization.PrivKey.SetBytes(key)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user