services

package
v0.0.0-...-4d78421 Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2024 License: MIT Imports: 63 Imported by: 0

README

Trenova CRUD Service Documentation

This document provides a detailed guide for creating a new CRUD service within the Trenova backend infrastructure.

Step 1: Model Creation

First, define the ExampleModel struct in Go, incorporating necessary fields and validation rules:

type ExampleModel struct {
	BaseModel
	Organization     Organization         `json:"-" validate:"omitempty"`
	BusinessUnit     BusinessUnit         `json:"-" validate:"omitempty"`
	OrganizationID   uuid.UUID            `gorm:"type:uuid;not null;uniqueIndex:idx_rev_code_organization_id" json:"organizationId" validate:"required"`
	BusinessUnitID   uuid.UUID            `gorm:"type:uuid;not null;index"                                    json:"businessUnitId" validate:"required"`
	Code             string               `gorm:"type:varchar(4);not null;uniqueIndex:idx_rev_code_organization_id,expression:lower(code)" json:"code" validate:"required,max=4"`
}

// Setters for organization and business unit IDs are essential for service operations.
func (em *ExampleModel) SetOrgID(orgID uuid.UUID) {
	em.OrganizationID = orgID
}

func (em *ExampleModel) SetBuID(buID uuid.UUID) {
	em.BusinessUnitID = buID
}

Step 2: Handler Implementation

Implement the ExampleModelHandler in the handlers directory as example_model.handler.go:

type ExampleModelHandler struct {
	DB *gorm.DB
}

func (s *ExampleModelHandler) GetAll(orgID, buID uuid.UUID, offset, limit int) ([]models.ExampleModel, int64, error) {
	var em models.ExampleModel
	return em.FetchRevenueCodesForOrg(s.DB, orgID, buID, offset, limit)
}

func (s *ExampleModelHandler) GetByID(orgID, buID uuid.UUID, id string) (models.ExampleModel, error) {
	var em models.ExampleModel
	return em.FetchRevenueCodeDetails(s.DB, orgID, buID, id)
}

func (s *ExampleModelHandler) Create(orgID, buID uuid.UUID, example models.ExampleModel) error {
	example.BusinessUnitID = buID
	example.OrganizationID = orgID
	return s.DB.Create(&example).Error
}

func (s *ExampleModelHandler) Update(orgID, buID uuid.UUID, id string, example models.ExampleModel) error {
	example.BusinessUnitID = buID
	example.OrganizationID = orgID
	return s.DB.Model(&example).Where("id = ? AND organization_id = ? AND business_unit_id = ?", id, orgID, buID).Updates(&example).Error
}

Step 3: Router Configuration

Configure the router within the routes directory as example_model.routes.go:

func ExampleModelRoutes(r *mux.Router, db *gorm.DB, validator *utils.Validator) {
	exService := &handlers.RevenueCodeHandler{DB: db}
	exRouter := r.PathPrefix("/examples").Subrouter()
	exRouter.HandleFunc("/", services.GetEntityHandler[models.RevenueCode](exService)).Methods("GET")
	exRouter.HandleFunc("/{entityID}/", services.GetEntityByIDHandler[models.RevenueCode](exService)).Methods("GET")
	exRouter.HandleFunc("/", services.CreateEntityHandler[models.RevenueCode](exService, validator)).Methods("POST")
	exRouter.HandleFunc("/{entityID}/", services.UpdateEntityHandler[models.RevenueCode](exService, validator)).Methods("PUT")
}

This guide outlines the essential steps to integrate a new CRUD service, focusing on model definition, handler implementation, and router configuration.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateEntityHandler

func CreateEntityHandler[T any](service CRUDService[T], validator *tools.Validator) http.HandlerFunc

func GetEntityByIDHandler

func GetEntityByIDHandler[T any](service CRUDService[T]) http.HandlerFunc

func UpdateEntityHandler

func UpdateEntityHandler[T any](service CRUDService[T], validator *tools.Validator) http.HandlerFunc

Types

type AccessorialChargeOps

type AccessorialChargeOps struct {
	Client *ent.Client
	Logger *logrus.Logger
}

func NewAccessorialChargeOps

func NewAccessorialChargeOps() *AccessorialChargeOps

NewAccessorialChargeOps creates a new accessorial charge service.

func (*AccessorialChargeOps) CreateAccessorialCharge

func (r *AccessorialChargeOps) CreateAccessorialCharge(ctx context.Context, newEntity ent.AccessorialCharge) (*ent.AccessorialCharge, error)

CreateAccessorialCharge creates a new accessorial charge.

func (*AccessorialChargeOps) GetAccessorialCharges

func (r *AccessorialChargeOps) GetAccessorialCharges(ctx context.Context, limit, offset int, orgID, buID uuid.UUID) ([]*ent.AccessorialCharge, int, error)

GetAccessorialCharges gets the accessorial charges for an organization.

func (*AccessorialChargeOps) UpdateAccessorialCharge

func (r *AccessorialChargeOps) UpdateAccessorialCharge(ctx context.Context, entity ent.AccessorialCharge) (*ent.AccessorialCharge, error)

UpdateAccessorialCharge updates a accessorial charge.

type AccountingControlOps

type AccountingControlOps struct {
	Client *ent.Client
}

AccountingControlOps is the service for accounting control settings.

func NewAccountingControlOps

func NewAccountingControlOps() *AccountingControlOps

NewAccountingControlOps creates a new accounting control service.

func (*AccountingControlOps) GetAccountingControl

func (r *AccountingControlOps) GetAccountingControl(ctx context.Context, orgID, buID uuid.UUID) (*ent.AccountingControl, error)

GetAccountingControl gets the accounting control settings for an organization.

func (*AccountingControlOps) UpdateAccountingControl

func (r *AccountingControlOps) UpdateAccountingControl(ctx context.Context, ac ent.AccountingControl) (*ent.AccountingControl, error)

UpdateAccountingControl updates the accounting control settings for an organization.

type BillingControlOps

type BillingControlOps struct {
	// contains filtered or unexported fields
}

BillingControlOps is the service for billing control settings.

func NewBillingControlOps

func NewBillingControlOps() *BillingControlOps

NewBillingControlOps creates a new billing control service.

func (*BillingControlOps) GetBillingControl

func (r *BillingControlOps) GetBillingControl(ctx context.Context, orgID, buID uuid.UUID) (*ent.BillingControl, error)

GetBillingControl gets the billing control settings for an organization.

func (*BillingControlOps) UpdateBillingControl

func (r *BillingControlOps) UpdateBillingControl(ctx context.Context, bc ent.BillingControl) (*ent.BillingControl, error)

UpdateBillingControl updates the billing control settings for an organization.

type CRUDService

type CRUDService[T any] interface {
	GetAll(orgID, buID uuid.UUID, offset, limit int) ([]T, int64, error)
	GetByID(orgID, buID uuid.UUID, id string) (T, error)
	Create(orgID, buID uuid.UUID, entity T) error
	Update(orgID, buID uuid.UUID, id string, entity T) error
}

type ChargeTypeOps

type ChargeTypeOps struct {
	// contains filtered or unexported fields
}

func NewChargeTypeOps

func NewChargeTypeOps() *ChargeTypeOps

NewChargeTypeOps creates a new commodity service.

func (*ChargeTypeOps) CreateChargeType

func (r *ChargeTypeOps) CreateChargeType(ctx context.Context, newChargeType ent.ChargeType) (*ent.ChargeType, error)

CreateChargeType creates a new charge type.

func (*ChargeTypeOps) GetChargeTypes

func (r *ChargeTypeOps) GetChargeTypes(ctx context.Context, limit, offset int, orgID, buID uuid.UUID) ([]*ent.ChargeType, int, error)

GetChargeTypes gets the charge types for an organization.

func (*ChargeTypeOps) UpdateChargeType

func (r *ChargeTypeOps) UpdateChargeType(ctx context.Context, entity ent.ChargeType) (*ent.ChargeType, error)

UpdateChargeType updates a charge type.

type CommentTypeOps

type CommentTypeOps struct {
	// contains filtered or unexported fields
}

func NewCommentTypeOps

func NewCommentTypeOps() *CommentTypeOps

NewCommentTypeOps creates a new comment type service.

func (*CommentTypeOps) CreateCommentType

func (r *CommentTypeOps) CreateCommentType(ctx context.Context, newEntity ent.CommentType) (*ent.CommentType, error)

CreateCommentType creates a new comment type.

func (*CommentTypeOps) GetCommentTypes

func (r *CommentTypeOps) GetCommentTypes(ctx context.Context, limit, offset int, orgID, buID uuid.UUID) ([]*ent.CommentType, int, error)

GetCommentTypes gets the comment type for an organization.

func (*CommentTypeOps) UpdateCommentType

func (r *CommentTypeOps) UpdateCommentType(ctx context.Context, entity ent.CommentType) (*ent.CommentType, error)

UpdateCommentType updates a comment type.

type CommodityOps

type CommodityOps struct {
	// contains filtered or unexported fields
}

func NewCommodityOps

func NewCommodityOps() *CommodityOps

NewCommodityOps creates a new commodity service.

func (*CommodityOps) CreateCommodity

func (r *CommodityOps) CreateCommodity(ctx context.Context, newEntity ent.Commodity) (*ent.Commodity, error)

CreateCommodity creates a new commodity.

func (*CommodityOps) GetCommodities

func (r *CommodityOps) GetCommodities(ctx context.Context, limit, offset int, orgID, buID uuid.UUID) ([]*ent.Commodity, int, error)

GetCommodities gets the commodities for an organization.

func (*CommodityOps) UpdateCommodity

func (r *CommodityOps) UpdateCommodity(ctx context.Context, entity ent.Commodity) (*ent.Commodity, error)

type CustomerOps

type CustomerOps struct {
	// contains filtered or unexported fields
}

func NewCustomerOps

func NewCustomerOps() *CustomerOps

NewCustomerOps creates a new customer service.

func (*CustomerOps) CreateCustomer

func (r *CustomerOps) CreateCustomer(ctx context.Context, newEntity ent.Customer) (*ent.Customer, error)

CreateCustomer creates a new customer.

func (*CustomerOps) GetCustomers

func (r *CustomerOps) GetCustomers(ctx context.Context, limit, offset int, orgID, buID uuid.UUID) ([]*ent.Customer, int, error)

GetCustomers gets the customer for an organization.

func (*CustomerOps) UpdateCustomer

func (r *CustomerOps) UpdateCustomer(ctx context.Context, entity ent.Customer) (*ent.Customer, error)

UpdateCustomer updates a customer.

type DelayCodeOps

type DelayCodeOps struct {
	// contains filtered or unexported fields
}

func NewDelayCodeOps

func NewDelayCodeOps() *DelayCodeOps

NewDelayCodeOps creates a new delay code service.

func (*DelayCodeOps) CreateDelayCode

func (r *DelayCodeOps) CreateDelayCode(ctx context.Context, newEntity ent.DelayCode) (*ent.DelayCode, error)

CreateDelayCode creates a new delay code.

func (*DelayCodeOps) GetDelayCodes

func (r *DelayCodeOps) GetDelayCodes(ctx context.Context, limit, offset int, orgID, buID uuid.UUID) ([]*ent.DelayCode, int, error)

GetDelayCodes gets the delay code for an organization.

func (*DelayCodeOps) UpdateDelayCode

func (r *DelayCodeOps) UpdateDelayCode(ctx context.Context, entity ent.DelayCode) (*ent.DelayCode, error)

UpdateDelayCode updates a delay code.

type DispatchControlOps

type DispatchControlOps struct {
	// contains filtered or unexported fields
}

DispatchControlOps is the service for dispatch control settings.

func NewDispatchControlOps

func NewDispatchControlOps() *DispatchControlOps

NewDispatchControlOps creates a new dispatch control service.

func (*DispatchControlOps) GetDispatchControl

func (r *DispatchControlOps) GetDispatchControl(ctx context.Context, orgID, buID uuid.UUID) (*ent.DispatchControl, error)

GetDispatchControl gets the dispatch control settings for an organization.

func (*DispatchControlOps) UpdateDispatchControl

func (r *DispatchControlOps) UpdateDispatchControl(ctx context.Context, dc ent.DispatchControl) (*ent.DispatchControl, error)

UpdateDispatchControl updates the dispatch control settings for an organization.

type DivisionCodeOps

type DivisionCodeOps struct {
	// contains filtered or unexported fields
}

func NewDivisionCodeOps

func NewDivisionCodeOps() *DivisionCodeOps

NewDivisionCodeOps creates a new division code service.

func (*DivisionCodeOps) CreateDivisionCode

func (r *DivisionCodeOps) CreateDivisionCode(ctx context.Context, newEntity ent.DivisionCode) (*ent.DivisionCode, error)

CreateDivisionCode creates a new division code.

func (*DivisionCodeOps) GetDivisionCodes

func (r *DivisionCodeOps) GetDivisionCodes(ctx context.Context, limit, offset int, orgID, buID uuid.UUID) ([]*ent.DivisionCode, int, error)

GetDivisionCodes gets the division codes for an organization.

func (*DivisionCodeOps) UpdateDivisionCode

func (r *DivisionCodeOps) UpdateDivisionCode(ctx context.Context, entity ent.DivisionCode) (*ent.DivisionCode, error)

UpdateDivisionCode updates a division code.

type DocumentClassificationOps

type DocumentClassificationOps struct {
	// contains filtered or unexported fields
}

func NewDocumentClassificationOps

func NewDocumentClassificationOps() *DocumentClassificationOps

NewDocumentClassificationOps creates a new document classification service.

func (*DocumentClassificationOps) CreateDocumentClassification

func (r *DocumentClassificationOps) CreateDocumentClassification(ctx context.Context, newEntity ent.DocumentClassification) (*ent.DocumentClassification, error)

CreateDocumentClassification creates a new document classification.

func (*DocumentClassificationOps) GetDocumentClassification

func (r *DocumentClassificationOps) GetDocumentClassification(ctx context.Context, limit, offset int, orgID, buID uuid.UUID) ([]*ent.DocumentClassification, int, error)

GetDocumentClassification gets the document classification for an organization.

func (*DocumentClassificationOps) UpdateDocumentClassification

func (r *DocumentClassificationOps) UpdateDocumentClassification(ctx context.Context, entity ent.DocumentClassification) (*ent.DocumentClassification, error)

UpdateDocumentClassification updates a document classification.

type EmailControlOps

type EmailControlOps struct {
	// contains filtered or unexported fields
}

EmailControlOps is the service for email control settings.

func NewEmailControlOps

func NewEmailControlOps() *EmailControlOps

NewEmailControlOps creates a new email control service.

func (*EmailControlOps) GetEmailControl

func (r *EmailControlOps) GetEmailControl(ctx context.Context, orgID, buID uuid.UUID) (*ent.EmailControl, error)

GetEmailControl gets the email control settings for an organization.

func (*EmailControlOps) UpdateEmailControl

func (r *EmailControlOps) UpdateEmailControl(ctx context.Context, emailControl ent.EmailControl) (*ent.EmailControl, error)

UpdateEmailControl updates the email control settings for an organization.

type EmailProfileOps

type EmailProfileOps struct {
	// contains filtered or unexported fields
}

EmailProfileOps is the service for email profiles.

func NewEmailProfileOps

func NewEmailProfileOps() *EmailProfileOps

NewEmailProfileOps creates a new email profiles service.

func (*EmailProfileOps) CreateEmailProfile

func (r *EmailProfileOps) CreateEmailProfile(ctx context.Context, newEntity ent.EmailProfile) (*ent.EmailProfile, error)

CreateEmailProfile creates a new email profile for an organization.

func (*EmailProfileOps) GetEmailProfiles

func (r *EmailProfileOps) GetEmailProfiles(ctx context.Context, limit, offset int, orgID, buID uuid.UUID) ([]*ent.EmailProfile, int, error)

GetEmailProfiles gets the email profiles for an organization.

func (*EmailProfileOps) UpdateEmailProfile

func (r *EmailProfileOps) UpdateEmailProfile(ctx context.Context, entity ent.EmailProfile) (*ent.EmailProfile, error)

UpdateEmailProfile updates an email profile for an organization.

type EquipmentManufactuerOps

type EquipmentManufactuerOps struct {
	// contains filtered or unexported fields
}

func NewEquipmentManufactuerOps

func NewEquipmentManufactuerOps() *EquipmentManufactuerOps

NewEquipmentManufactuerOps creates a new equipment manufacturer service.

func (*EquipmentManufactuerOps) CreateEquipmentManufacturer

func (r *EquipmentManufactuerOps) CreateEquipmentManufacturer(
	ctx context.Context, newEntity ent.EquipmentManufactuer,
) (*ent.EquipmentManufactuer, error)

CreateEquipmentManufacturer creates a new equipment manufacturer.

func (*EquipmentManufactuerOps) GetEquipmentManufacturers

func (r *EquipmentManufactuerOps) GetEquipmentManufacturers(
	ctx context.Context, limit, offset int, orgID, buID uuid.UUID,
) ([]*ent.EquipmentManufactuer, int, error)

GetEquipmentManufacturers gets the equipment manufacturer for an organization.

func (*EquipmentManufactuerOps) UpdateEquipmentManufacturer

func (r *EquipmentManufactuerOps) UpdateEquipmentManufacturer(
	ctx context.Context, entity ent.EquipmentManufactuer,
) (*ent.EquipmentManufactuer, error)

UpdateEquipmentManufacturer updates a equipment manufacturer.

type EquipmentTypeOps

type EquipmentTypeOps struct {
	// contains filtered or unexported fields
}

func NewEquipmentTypeOps

func NewEquipmentTypeOps() *EquipmentTypeOps

NewEquipmentTypeOps creates a new equipment type service.

func (*EquipmentTypeOps) CreateEquipmentType

func (r *EquipmentTypeOps) CreateEquipmentType(
	ctx context.Context, newEntity ent.EquipmentType,
) (*ent.EquipmentType, error)

CreateEquipmentType creates a new equipment type.

func (*EquipmentTypeOps) GetEquipmentTypes

func (r *EquipmentTypeOps) GetEquipmentTypes(
	ctx context.Context, limit, offset int, orgID, buID uuid.UUID,
) ([]*ent.EquipmentType, int, error)

GetEquipmentTypes gets the equipment type for an organization.

func (*EquipmentTypeOps) UpdateEquipmentType

func (r *EquipmentTypeOps) UpdateEquipmentType(
	ctx context.Context, entity ent.EquipmentType,
) (*ent.EquipmentType, error)

UpdateEquipmentType updates a equipment type.

type FeasibilityControlOps

type FeasibilityControlOps struct {
	// contains filtered or unexported fields
}

FeasibilityControlOps is the service for feasibility tool control settings.

func NewFeasibilityControlOps

func NewFeasibilityControlOps() *FeasibilityControlOps

NewFeasibilityControlOps creates a new feasibility tool control service.

func (*FeasibilityControlOps) GetFeasibilityToolControl

func (r *FeasibilityControlOps) GetFeasibilityToolControl(ctx context.Context, orgID, buID uuid.UUID) (*ent.FeasibilityToolControl, error)

GetFeasibilityToolControl gets the feasibility tool control settings for an organization.

func (*FeasibilityControlOps) UpdateFeasibilityToolControl

func (r *FeasibilityControlOps) UpdateFeasibilityToolControl(ctx context.Context, ftc ent.FeasibilityToolControl) (*ent.FeasibilityToolControl, error)

UpdateFeasibilityToolControl updates the feasibility tool control settings for an organization.

type FleetCodeOps

type FleetCodeOps struct {
	// contains filtered or unexported fields
}

func NewFleetCodeOps

func NewFleetCodeOps() *FleetCodeOps

NewFleetCodeOps creates a new fleet code service.

func (*FleetCodeOps) CreateFleetCode

func (r *FleetCodeOps) CreateFleetCode(
	ctx context.Context, newEntity ent.FleetCode,
) (*ent.FleetCode, error)

CreateFleetCode creates a new fleet code.

func (*FleetCodeOps) GetFleetCodes

func (r *FleetCodeOps) GetFleetCodes(
	ctx context.Context, limit, offset int, orgID, buID uuid.UUID,
) ([]*ent.FleetCode, int, error)

GetFleetCodes gets the fleet code for an organization.

func (*FleetCodeOps) UpdateFleetCode

func (r *FleetCodeOps) UpdateFleetCode(ctx context.Context, entity ent.FleetCode) (*ent.FleetCode, error)

UpdateFleetCode updates a fleet code.

type GeneralLedgerAccountOps

type GeneralLedgerAccountOps struct {
	// contains filtered or unexported fields
}

GeneralLedgerAccountOps is the service for general ledger account.

func NewGeneralLedgerAccountOps

func NewGeneralLedgerAccountOps() *GeneralLedgerAccountOps

NewGeneralLedgerAccountOps creates a new general ledger account service.

func (*GeneralLedgerAccountOps) CreateGeneralLedgerAccount

func (r *GeneralLedgerAccountOps) CreateGeneralLedgerAccount(
	ctx context.Context, newEntity GeneralLedgerAccountRequest,
) (*ent.GeneralLedgerAccount, error)

CreateGeneralLedgerAccount creates a new general ledger account for an organization.

func (*GeneralLedgerAccountOps) GetGeneralLedgerAccounts

func (r *GeneralLedgerAccountOps) GetGeneralLedgerAccounts(ctx context.Context, limit, offset int, orgID, buID uuid.UUID) ([]*ent.GeneralLedgerAccount, int, error)

GetGeneralLedgerAccounts gets the general ledger accounts for an organization.

func (*GeneralLedgerAccountOps) UpdateGeneralLedgerAccount

UpdateGeneralLedgerAccount updates a general ledger account.

type GeneralLedgerAccountRequest

type GeneralLedgerAccountRequest struct {
	BusinessUnitID uuid.UUID                        `json:"businessUnitId"`
	OrganizationID uuid.UUID                        `json:"organizationId"`
	Status         generalledgeraccount.Status      `json:"status" validate:"required,oneof=A I"`
	AccountNumber  string                           `json:"accountNumber" validate:"required,max=7"`
	AccountType    generalledgeraccount.AccountType `json:"accountType" validate:"required"`
	CashFlowType   string                           `json:"cashFlowType" validate:"omitempty"`
	AccountSubType string                           `json:"accountSubType" validate:"omitempty"`
	AccountClass   string                           `json:"accountClass" validate:"omitempty"`
	Balance        float64                          `json:"balance" validate:"omitempty"`
	InterestRate   float64                          `json:"interestRate" validate:"omitempty"`
	DateOpened     *pgtype.Date                     `json:"dateOpened" validate:"omitempty"`
	DateClosed     *pgtype.Date                     `json:"dateClosed" validate:"omitempty"`
	Notes          string                           `json:"notes,omitempty"`
	IsTaxRelevant  bool                             `json:"isTaxRelevant" validate:"omitempty"`
	IsReconciled   bool                             `json:"isReconciled" validate:"omitempty"`
	Version        int                              `json:"version" validate:"omitempty"`
	TagIDs         []uuid.UUID                      `json:"tagIds,omitempty"`
}

type GeneralLedgerAccountUpdateRequest

type GeneralLedgerAccountUpdateRequest struct {
	ID uuid.UUID `json:"id,omitempty"`
	GeneralLedgerAccountRequest
}

type GoogleAPIOps

type GoogleAPIOps struct {
	// contains filtered or unexported fields
}

GoogleAPIOps is the service for google api settings.

func NewGoogleAPIOps

func NewGoogleAPIOps() *GoogleAPIOps

NewGoogleAPIOps creates a new google api service.

func (*GoogleAPIOps) GetGoogleAPI

func (r *GoogleAPIOps) GetGoogleAPI(ctx context.Context, orgID, buID uuid.UUID) (*ent.GoogleApi, error)

GetGoogleAPI gets the google api settings for an organization.

func (*GoogleAPIOps) UpdateGoogleAPI

func (r *GoogleAPIOps) UpdateGoogleAPI(ctx context.Context, googleAPI ent.GoogleApi) (*ent.GoogleApi, error)

UpdateGoogleAPI updates the google api settings for an organization.

type HazardousMaterialOps

type HazardousMaterialOps struct {
	// contains filtered or unexported fields
}

HazardousMaterialOps is the service for hazardous material.

func NewHazardousMaterialOps

func NewHazardousMaterialOps() *HazardousMaterialOps

NewHazardousMaterialOps creates a new hazardous material service.

func (*HazardousMaterialOps) CreateHazardousMaterial

func (r *HazardousMaterialOps) CreateHazardousMaterial(
	ctx context.Context, newEntity ent.HazardousMaterial,
) (*ent.HazardousMaterial, error)

CreateHazardousMaterial creates a new hazardous material for an organization.

func (*HazardousMaterialOps) GetHazardousMaterials

func (r *HazardousMaterialOps) GetHazardousMaterials(
	ctx context.Context, limit, offset int, orgID, buID uuid.UUID,
) ([]*ent.HazardousMaterial, int, error)

GetHazardousMaterials gets the hazardous material for an organization.

func (*HazardousMaterialOps) UpdateHazardousMaterial

func (r *HazardousMaterialOps) UpdateHazardousMaterial(
	ctx context.Context, entity ent.HazardousMaterial,
) (*ent.HazardousMaterial, error)

UpdateHazardousMaterial updates an hazardous material for an organization.

type HazardousMaterialSegregationOps

type HazardousMaterialSegregationOps struct {
	// contains filtered or unexported fields
}

func NewHazardousMaterialSegregationOps

func NewHazardousMaterialSegregationOps() *HazardousMaterialSegregationOps

NewHazardousMaterialSegregationOps creates a new fleet code service.

func (*HazardousMaterialSegregationOps) CreateHazmatSegRule

CreateHazmatSegRule creates a new accessorial charge.

func (*HazardousMaterialSegregationOps) GetHazmatSegRules

func (r *HazardousMaterialSegregationOps) GetHazmatSegRules(
	ctx context.Context, limit, offset int, orgID, buID uuid.UUID,
) ([]*ent.HazardousMaterialSegregation, int, error)

GetHazmatSegRules gets the fleet code for an organization.

func (*HazardousMaterialSegregationOps) UpdateHazmatSegRule

UpdateHazmatSegRule updates a fleet code.

type InvoiceControlOps

type InvoiceControlOps struct {
	// contains filtered or unexported fields
}

InvoiceControlOps is the service for invoice control settings.

func NewInvoiceControlOps

func NewInvoiceControlOps() *InvoiceControlOps

NewInvoiceControlOps creates a new invoice control service.

func (*InvoiceControlOps) GetInvoiceControlByOrgID

func (r *InvoiceControlOps) GetInvoiceControlByOrgID(ctx context.Context, orgID, buID uuid.UUID) (*ent.InvoiceControl, error)

GetInvoiceControlByOrgID creates a new invoice control settings for an organization.

func (*InvoiceControlOps) UpdateInvoiceControl

func (r *InvoiceControlOps) UpdateInvoiceControl(ctx context.Context, ic ent.InvoiceControl) (*ent.InvoiceControl, error)

UpdateInvoiceControl updates the invoice control settings for an organization.

type LocationCategoryOps

type LocationCategoryOps struct {
	// contains filtered or unexported fields
}

LocationCategoryOps is the service for location category.

func NewLocationCategoryOps

func NewLocationCategoryOps() *LocationCategoryOps

NewLocationCategoryOps creates a new location category service.

func (*LocationCategoryOps) CreateLocationCategory

func (r *LocationCategoryOps) CreateLocationCategory(
	ctx context.Context, newEntity ent.LocationCategory,
) (*ent.LocationCategory, error)

CreateLocationCategory creates a new location category for an organization.

func (*LocationCategoryOps) GetLocationCategories

func (r *LocationCategoryOps) GetLocationCategories(
	ctx context.Context, limit, offset int, orgID, buID uuid.UUID,
) ([]*ent.LocationCategory, int, error)

GetLocationCategories gets the location category for an organization.

func (*LocationCategoryOps) UpdateLocationCategory

func (r *LocationCategoryOps) UpdateLocationCategory(
	ctx context.Context, entity ent.LocationCategory,
) (*ent.LocationCategory, error)

UpdateLocationCategory updates an location category for an organization.

type LocationOps

type LocationOps struct {
	Client *ent.Client
	Logger *logrus.Logger
}

func NewLocationOps

func NewLocationOps() *LocationOps

NewLocationOps creates a new locations service.

func (*LocationOps) CreateLocation

func (r *LocationOps) CreateLocation(
	ctx context.Context, newEntity LocationRequest,
) (*ent.Location, error)

CreateLocation creates a new location.

func (*LocationOps) GetLocations

func (r *LocationOps) GetLocations(
	ctx context.Context, limit, offset int, orgID, buID uuid.UUID,
) ([]*ent.Location, int, error)

GetLocations gets the locations for an organization.

func (*LocationOps) UpdateLocation

func (r *LocationOps) UpdateLocation(ctx context.Context, entity LocationUpdateRequest) (*ent.Location, error)

UpdateLocation updates a location and its associated comments.

type LocationRequest

type LocationRequest struct {
	BusinessUnitID     uuid.UUID             `json:"businessUnitId"`
	OrganizationID     uuid.UUID             `json:"organizationId"`
	CreatedAt          time.Time             `json:"createdAt"`
	UpdatedAt          time.Time             `json:"updatedAt"`
	Version            int                   `json:"version" validate:"omitempty"`
	Status             location.Status       `json:"status" validate:"required,oneof=A I"`
	Code               string                `json:"code" validate:"required,max=10"`
	LocationCategoryID *uuid.UUID            `json:"locationCategoryId" validate:"omitempty"`
	Name               string                `json:"name" validate:"required"`
	Description        string                `json:"description" validate:"omitempty"`
	AddressLine1       string                `json:"addressLine1" validate:"required,max=150"`
	AddressLine2       string                `json:"addressLine2" validate:"omitempty,max=150"`
	City               string                `json:"city" validate:"required,max=150"`
	StateID            uuid.UUID             `json:"stateId" validate:"omitempty,uuid"`
	PostalCode         string                `json:"postalCode" validate:"required,max=10"`
	Longitude          float64               `json:"longitude" validate:"omitempty"`
	Latitude           float64               `json:"latitude" validate:"omitempty"`
	PlaceID            string                `json:"placeId" validate:"omitempty,max=255"`
	IsGeocoded         bool                  `json:"isGeocoded"`
	Comments           []ent.LocationComment `json:"comments" validate:"omitempty,dive"`
	Contacts           []ent.LocationContact `json:"contacts" validate:"omitempty,dive"`
}

type LocationUpdateRequest

type LocationUpdateRequest struct {
	ID uuid.UUID `json:"id,omitempty"`
	LocationRequest
}

type LoginOps

type LoginOps struct {
	// contains filtered or unexported fields
}

LoginOps is the service for login.

func NewLoginOps

func NewLoginOps() *LoginOps

NewLoginOps returns a new instance of LoginOps.

func (*LoginOps) AuthenticateUser

func (r *LoginOps) AuthenticateUser(ctx context.Context, username, password string) (*ent.User, error)

AuthenticateUser returns back the user if the username and password are correct.

type OrgBuSetter

type OrgBuSetter interface {
	SetOrgID(uuid.UUID)
	SetBuID(uuid.UUID)
}

type OrganizatinOps

type OrganizatinOps struct {
	// contains filtered or unexported fields
}

OrganizationOps is the service for organization.

func NewOrganizationOps

func NewOrganizationOps() *OrganizatinOps

NewOrganizationOps creates a new organization service.

func (*OrganizatinOps) GetUserOrganization

func (r *OrganizatinOps) GetUserOrganization(ctx context.Context, buID, orgID uuid.UUID) (*ent.Organization, error)

GetUserOrganization returns the organization of the user.

type OrganizationFeatureFlagOps

type OrganizationFeatureFlagOps struct {
	// contains filtered or unexported fields
}

func NewOrganizationFeatureFlagOps

func NewOrganizationFeatureFlagOps() *OrganizationFeatureFlagOps

NewOrganizationFeatureFlagOps creates a new organization feature flag service.

func (*OrganizationFeatureFlagOps) GetOrganizationFeatureFlags

func (r *OrganizationFeatureFlagOps) GetOrganizationFeatureFlags(
	ctx context.Context, limit, offset int, orgID uuid.UUID,
) ([]*ent.OrganizationFeatureFlag, int, error)

GetOrganizationFeatureFlags gets the feature flags for assigned to an organization.

type QualifierCodeOps

type QualifierCodeOps struct {
	// contains filtered or unexported fields
}

func NewQualifierCodeOps

func NewQualifierCodeOps() *QualifierCodeOps

NewQualifierCodeOps creates a new qualifier code service.

func (*QualifierCodeOps) CreateQualifierCode

func (r *QualifierCodeOps) CreateQualifierCode(
	ctx context.Context, newEntity ent.QualifierCode,
) (*ent.QualifierCode, error)

CreateQualifierCode creates a new qualifier code.

func (*QualifierCodeOps) GetQualifierCodes

func (r *QualifierCodeOps) GetQualifierCodes(
	ctx context.Context, limit, offset int, orgID, buID uuid.UUID,
) ([]*ent.QualifierCode, int, error)

GetQualifierCodes gets the qualifier code for an organization.

func (*QualifierCodeOps) UpdateQualifierCode

func (r *QualifierCodeOps) UpdateQualifierCode(
	ctx context.Context, entity ent.QualifierCode,
) (*ent.QualifierCode, error)

UpdateQualifierCode updates a qualifier code.

type ReasonCodeOps

type ReasonCodeOps struct {
	// contains filtered or unexported fields
}

func NewReasonCodeOps

func NewReasonCodeOps() *ReasonCodeOps

NewReasonCodeOps creates a new reason code service.

func (*ReasonCodeOps) CreateReasonCode

func (r *ReasonCodeOps) CreateReasonCode(
	ctx context.Context, newEntity ent.ReasonCode,
) (*ent.ReasonCode, error)

CreateReasonCode creates a new reason code.

func (*ReasonCodeOps) GetReasonCode

func (r *ReasonCodeOps) GetReasonCode(
	ctx context.Context, limit, offset int, orgID, buID uuid.UUID,
) ([]*ent.ReasonCode, int, error)

GetReasonCode gets the reason code for an organization.

func (*ReasonCodeOps) UpdateReasonCode

func (r *ReasonCodeOps) UpdateReasonCode(
	ctx context.Context, entity ent.ReasonCode,
) (*ent.ReasonCode, error)

UpdateReasonCode updates a reason code.

type RevenueCodeOps

type RevenueCodeOps struct {
	// contains filtered or unexported fields
}

RevenueCodeOps is the service for revenue code.

func NewRevenueCodeOps

func NewRevenueCodeOps() *RevenueCodeOps

NewRevenueCodeOps creates a new revenue code service.

func (*RevenueCodeOps) CreateRevenueCode

func (r *RevenueCodeOps) CreateRevenueCode(ctx context.Context, newEntity ent.RevenueCode) (*ent.RevenueCode, error)

CreateRevenueCode creates a new revenue code.

func (*RevenueCodeOps) GetRevenueCodes

func (r *RevenueCodeOps) GetRevenueCodes(
	ctx context.Context, limit, offset int, orgID, buID uuid.UUID,
) ([]*ent.RevenueCode, int, error)

GetRevenueCodes gets the revenue codes for an organization.

func (*RevenueCodeOps) UpdateRevenueCode

func (r *RevenueCodeOps) UpdateRevenueCode(
	ctx context.Context, entity ent.RevenueCode,
) (*ent.RevenueCode, error)

UpdateRevenueCode updates a revenue code.

type RouteControlOps

type RouteControlOps struct {
	// contains filtered or unexported fields
}

RouteControlOps is the service for route control settings.

func NewRouteControlOps

func NewRouteControlOps() *RouteControlOps

NewRouteControlOps creates a new route control service.

func (*RouteControlOps) GetRouteControl

func (r *RouteControlOps) GetRouteControl(ctx context.Context, orgID, buID uuid.UUID) (*ent.RouteControl, error)

GetRouteControl creates a new route control settings for an organization.

func (*RouteControlOps) UpdateRouteControl

func (r *RouteControlOps) UpdateRouteControl(ctx context.Context, rc ent.RouteControl) (*ent.RouteControl, error)

UpdateRouteControl updates the route control settings for an organization.

type ServiceTypeOps

type ServiceTypeOps struct {
	// contains filtered or unexported fields
}

func NewServiceTypeOps

func NewServiceTypeOps() *ServiceTypeOps

NewServiceTypeOps creates a new service type service.

func (*ServiceTypeOps) CreateServiceType

func (r *ServiceTypeOps) CreateServiceType(
	ctx context.Context, newEntity ent.ServiceType,
) (*ent.ServiceType, error)

CreateServiceType creates a new service type.

func (*ServiceTypeOps) GetServiceTypes

func (r *ServiceTypeOps) GetServiceTypes(
	ctx context.Context, limit, offset int, orgID, buID uuid.UUID,
) ([]*ent.ServiceType, int, error)

GetServiceTypes gets the service type for an organization.

func (*ServiceTypeOps) UpdateServiceType

func (r *ServiceTypeOps) UpdateServiceType(
	ctx context.Context, entity ent.ServiceType,
) (*ent.ServiceType, error)

UpdateServiceType updates a service type.

type ShipmentControlOps

type ShipmentControlOps struct {
	// contains filtered or unexported fields
}

ShipmentControlOps is the service for shipment control settings.

func NewShipmentControlOps

func NewShipmentControlOps() *ShipmentControlOps

NewShipmentControlOps creates a new shipment control service.

func (*ShipmentControlOps) GetShipmentControl

func (r *ShipmentControlOps) GetShipmentControl(ctx context.Context, orgID, buID uuid.UUID) (*ent.ShipmentControl, error)

GetShipmentControl creates a new shipment control settings for an organization.

func (*ShipmentControlOps) UpdateShipmentControl

func (r *ShipmentControlOps) UpdateShipmentControl(ctx context.Context, sc ent.ShipmentControl) (*ent.ShipmentControl, error)

UpdateShipmentControl updates the shipment control settings for an organization.

type ShipmentTypeOps

type ShipmentTypeOps struct {
	// contains filtered or unexported fields
}

func NewShipmentTypeOps

func NewShipmentTypeOps() *ShipmentTypeOps

NewShipmentTypeOps creates a new shipment type service.

func (*ShipmentTypeOps) CreateShipmentType

func (r *ShipmentTypeOps) CreateShipmentType(
	ctx context.Context, newEntity ent.ShipmentType,
) (*ent.ShipmentType, error)

CreateShipmentType creates a new shipment type.

func (*ShipmentTypeOps) GetShipmentTypes

func (r *ShipmentTypeOps) GetShipmentTypes(
	ctx context.Context, limit, offset int, orgID, buID uuid.UUID,
) ([]*ent.ShipmentType, int, error)

GetShipmentTypes gets the shipment type for an organization.

func (*ShipmentTypeOps) UpdateShipmentType

func (r *ShipmentTypeOps) UpdateShipmentType(
	ctx context.Context, entity ent.ShipmentType,
) (*ent.ShipmentType, error)

UpdateShipmentType updates a shipment type.

type TableChangeAlertOps

type TableChangeAlertOps struct {
	// contains filtered or unexported fields
}

func NewTableChangeAlertOps

func NewTableChangeAlertOps() *TableChangeAlertOps

NewTableChangeAlertOps creates a new table change alert service.

func (*TableChangeAlertOps) CreateTableChangeAlert

func (r *TableChangeAlertOps) CreateTableChangeAlert(
	ctx context.Context, newEntity ent.TableChangeAlert,
) (*ent.TableChangeAlert, error)

CreateTableChangeAlert creates a new table change alert.

func (*TableChangeAlertOps) GetTableChangeAlerts

func (r *TableChangeAlertOps) GetTableChangeAlerts(
	ctx context.Context, limit, offset int, orgID, buID uuid.UUID,
) ([]*ent.TableChangeAlert, int, error)

GetTableChangeAlerts gets the table change alert for an organization.

func (*TableChangeAlertOps) GetTableNames

func (r *TableChangeAlertOps) GetTableNames(ctx context.Context) ([]TableName, int, error)

func (*TableChangeAlertOps) GetTopicNames

func (r *TableChangeAlertOps) GetTopicNames() ([]TopicName, int, error)

func (*TableChangeAlertOps) UpdateTableChangeAlert

func (r *TableChangeAlertOps) UpdateTableChangeAlert(
	ctx context.Context, entity ent.TableChangeAlert,
) (*ent.TableChangeAlert, error)

UpdateTableChangeAlert updates a table change alert.

type TableName

type TableName struct {
	Value string `json:"value"`
	Label string `json:"label"`
}

type TagOps

type TagOps struct {
	// contains filtered or unexported fields
}

func NewTagOps

func NewTagOps() *TagOps

NewTagOps creates a new tag service.

func (*TagOps) CreateTag

func (r *TagOps) CreateTag(
	ctx context.Context, newEntity ent.Tag,
) (*ent.Tag, error)

CreateTag creates a new tag.

func (*TagOps) GetTags

func (r *TagOps) GetTags(
	ctx context.Context, limit, offset int, orgID, buID uuid.UUID,
) ([]*ent.Tag, int, error)

GetTags gets the tags for an organization.

func (*TagOps) UpdateTag

func (r *TagOps) UpdateTag(
	ctx context.Context, entity ent.Tag,
) (*ent.Tag, error)

UpdateTag updates a tag.

type TopicName

type TopicName struct {
	Value string `json:"value"`
	Label string `json:"label"`
}

type TractorOps

type TractorOps struct {
	// contains filtered or unexported fields
}

func NewTractorOps

func NewTractorOps() *TractorOps

NewTractorOps creates a new tractor service.

func (*TractorOps) CreateTractor

func (r *TractorOps) CreateTractor(
	ctx context.Context, newEntity ent.Tractor,
) (*ent.Tractor, error)

CreateTractor creates a new tractor.

func (*TractorOps) GetTractors

func (r *TractorOps) GetTractors(
	ctx context.Context, limit, offset int, orgID, buID uuid.UUID,
) ([]*ent.Tractor, int, error)

GetTractors gets the tractor for an organization.

func (*TractorOps) UpdateTractor

func (r *TractorOps) UpdateTractor(
	ctx context.Context, entity ent.Tractor,
) (*ent.Tractor, error)

UpdateTractor updates a tractor.

type TrailerOps

type TrailerOps struct {
	// contains filtered or unexported fields
}

func NewTrailerOps

func NewTrailerOps() *TrailerOps

NewTrailerOps creates a new trailer service.

func (*TrailerOps) CreateTrailer

func (r *TrailerOps) CreateTrailer(
	ctx context.Context, newEntity ent.Trailer,
) (*ent.Trailer, error)

CreateTrailer creates a new trailer.

func (*TrailerOps) GetTrailers

func (r *TrailerOps) GetTrailers(
	ctx context.Context, limit, offset int, orgID, buID uuid.UUID,
) ([]*ent.Trailer, int, error)

GetTrailers gets the trailer for an organization.

func (*TrailerOps) UpdateTrailer

func (r *TrailerOps) UpdateTrailer(
	ctx context.Context, entity ent.Trailer,
) (*ent.Trailer, error)

UpdateTrailer updates a trailer.

type UsStateOps

type UsStateOps struct {
	// contains filtered or unexported fields
}

func NewUsStateOps

func NewUsStateOps() *UsStateOps

NewUsStateOps creates a new US State service.

func (*UsStateOps) GetUsStates

func (r *UsStateOps) GetUsStates(ctx context.Context) ([]*ent.UsState, error)

GetUsStates gets the accessorial charges for an organization.

type UserFavoriteOps

type UserFavoriteOps struct {
	// contains filtered or unexported fields
}

UserFavoriteOps is the service for user.

func NewUserFavoriteOps

func NewUserFavoriteOps() *UserFavoriteOps

NewFavoriteOps creates a new user favorite service.

func (*UserFavoriteOps) GetUserFavorites

func (r *UserFavoriteOps) GetUserFavorites(ctx context.Context, userID uuid.UUID) ([]*ent.UserFavorite, int, error)

GetUserFavorites returns all the favorites for a user along with the count of favorites.

func (*UserFavoriteOps) UserFavoriteCreate

func (r *UserFavoriteOps) UserFavoriteCreate(ctx context.Context, userFavorite ent.UserFavorite) (*ent.UserFavorite, error)

UserFavoriteCreate creates a new user favorite.

func (*UserFavoriteOps) UserFavoriteDelete

func (r *UserFavoriteOps) UserFavoriteDelete(ctx context.Context, userID uuid.UUID, pageLink string) error

UserFavoriteDelete deletes a user favorite.

type UserOps

type UserOps struct {
	// contains filtered or unexported fields
}

UserOps is the service for user.

func NewUserOps

func NewUserOps() *UserOps

NewUserOps creates a new user service.

func (*UserOps) GetAuthenticatedUser

func (r *UserOps) GetAuthenticatedUser(ctx context.Context, userID uuid.UUID) (*ent.User, error)

GetAuthenticatedUser returns the user if the user ID is correct.

type WorkerOps

type WorkerOps struct {
	// contains filtered or unexported fields
}

func NewWorkerOps

func NewWorkerOps() *WorkerOps

NewWorkerOps creates a new tractor service.

func (*WorkerOps) CreateWorker

func (r *WorkerOps) CreateWorker(ctx context.Context, newEntity WorkerRequest) (*ent.Worker, error)

CreateWorker creates a new worker.

func (*WorkerOps) GetWorkers

func (r *WorkerOps) GetWorkers(
	ctx context.Context, limit, offset int, orgID, buID uuid.UUID,
) ([]*ent.Worker, int, error)

GetWorkers gets the workers for an organization.

func (*WorkerOps) UpdateWorker

func (r *WorkerOps) UpdateWorker(ctx context.Context, entity WorkerUpdateRequest) (*ent.Worker, error)

UpdateWorker updates a worker.

type WorkerRequest

type WorkerRequest struct {
	BusinessUnitID    uuid.UUID         `json:"businessUnitId"`
	OrganizationID    uuid.UUID         `json:"organizationId"`
	Status            worker.Status     `json:"status" validate:"required,oneof=A I"`
	Code              string            `json:"code" validate:"required,max=10"`
	ProfilePictureURL string            `json:"profilePictureUrl"`
	WorkerType        worker.WorkerType `json:"workerType" validate:"required,oneof=Employee Contractor"`
	FirstName         string            `json:"firstName" validate:"required,max=255"`
	LastName          string            `json:"lastName" validate:"required,max=255"`
	AddressLine1      string            `json:"addressLine1" validate:"required,max=150"`
	AddressLine2      string            `json:"addressLine2" validate:"omitempty,max=150"`
	City              string            `json:"city" validate:"omitempty,max=255"`
	PostalCode        string            `json:"postalCode" validate:"omitempty,max=10"`
	StateID           *uuid.UUID        `json:"stateId" validate:"omitempty,uuid"`
	Version           int               `json:"version" validate:"omitempty"`
	FleetCodeID       *uuid.UUID        `json:"fleetCodeId" validate:"omitempty,uuid"`
	ManagerID         *uuid.UUID        `json:"managerId" validate:"omitempty,uuid"`
	Profile           ent.WorkerProfile
	Comments          []ent.WorkerComment `json:"comments" validate:"omitempty,dive"`
	Contacts          []ent.WorkerContact `json:"contacts" validate:"omitempty,dive"`
}

type WorkerUpdateRequest

type WorkerUpdateRequest struct {
	ID uuid.UUID `json:"id,omitempty"`
	WorkerRequest
}

Jump to

Keyboard shortcuts

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