package system import ( "github.com/zitadel/zitadel/internal/command" "github.com/zitadel/zitadel/pkg/grpc/quota" "github.com/zitadel/zitadel/pkg/grpc/system" ) func instanceQuotaPbToCommand(req *system.AddQuotaRequest) *command.AddQuota { return &command.AddQuota{ Unit: instanceQuotaUnitPbToCommand(req.Unit), From: req.From.AsTime(), ResetInterval: req.ResetInterval.AsDuration(), Amount: req.Amount, Limit: req.Limit, Notifications: instanceQuotaNotificationsPbToCommand(req.Notifications), } } func instanceQuotaUnitPbToCommand(unit quota.Unit) command.QuotaUnit { switch unit { case quota.Unit_UNIT_REQUESTS_ALL_AUTHENTICATED: return command.QuotaRequestsAllAuthenticated case quota.Unit_UNIT_ACTIONS_ALL_RUN_SECONDS: return command.QuotaActionsAllRunsSeconds case quota.Unit_UNIT_UNIMPLEMENTED: fallthrough default: return command.QuotaUnit(unit.String()) } } func instanceQuotaNotificationsPbToCommand(req []*quota.Notification) command.QuotaNotifications { notifications := make([]*command.QuotaNotification, len(req)) for idx, item := range req { notifications[idx] = &command.QuotaNotification{ Percent: uint16(item.Percent), Repeat: item.Repeat, CallURL: item.CallUrl, } } return notifications }