customer/internal/utils/transfer/privilege.go

56 lines
1.5 KiB
Go
Raw Normal View History

2023-07-07 01:57:06 +00:00
package transfer
import (
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/models"
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/proto/broker"
)
func PrivilegeProtoToModel(privilege *broker.PrivilegeMessage) *models.Privilege {
if privilege == nil {
return &models.Privilege{}
}
return &models.Privilege{
PrivilegeID: privilege.GetPrivilegeID(),
ServiceKey: privilege.GetServiceKey(),
2023-08-02 14:28:31 +00:00
Type: models.PrivilegeTypeMap[privilege.GetType()],
2023-07-07 01:57:06 +00:00
Value: privilege.GetValue(),
2023-08-02 14:28:31 +00:00
Amount: privilege.GetAmount(),
2023-07-07 01:57:06 +00:00
}
}
func PrivilegeArrayProtoToModel(privileges []*broker.PrivilegeMessage) []models.Privilege {
privilegesModel := make([]models.Privilege, len(privileges))
for index, privilege := range privileges {
privilegesModel[index] = *PrivilegeProtoToModel(privilege)
}
return privilegesModel
}
func PrivilegeModelToProto(privilege *models.Privilege) *broker.PrivilegeMessage {
if privilege == nil {
return &broker.PrivilegeMessage{}
}
return &broker.PrivilegeMessage{
PrivilegeID: privilege.PrivilegeID,
ServiceKey: privilege.ServiceKey,
2023-08-02 14:28:31 +00:00
Type: models.PrivilegeBrokerTypeMap[privilege.Type],
2023-07-07 01:57:06 +00:00
Value: privilege.Value,
2023-08-02 14:28:31 +00:00
Amount: privilege.Amount,
2023-07-07 01:57:06 +00:00
}
}
func PrivilegeArrayModelToProto(privileges []models.Privilege) []*broker.PrivilegeMessage {
privilegesProto := make([]*broker.PrivilegeMessage, len(privileges))
for index, privilege := range privileges {
privilegeCopy := privilege
privilegesProto[index] = PrivilegeModelToProto(&privilegeCopy)
}
return privilegesProto
}