package models import ( "basic.com/valib/logc.git" "basic.com/valib/logger.git" "encoding/json" "errors" ) func PersistentWrapper(topic string, payloads []byte) { if err := unmarshal(topic, payloads); err != nil { logger.Error("handleSubMsg failed to persistent:", topic, string(payloads), err.Error()) } else { logger.Debug("handleSubMsg succeeded to persistent:", topic, string(payloads)) } } func unmarshal(topic string, payloads []byte) error { switch topic { case logc.OperationLogTopic: var log OperationLog if err := json.Unmarshal(payloads, &log); nil != err { return err } opChan <- &log return nil case logc.ScheduleLogTopic: var log ScheduleLog if err := json.Unmarshal(payloads, &log); nil != err { return err } scheduleChan <- &log return nil case logc.RuleServerLogTopic: var logOp logc.RuleServerPushLog if err := json.Unmarshal(payloads, &logOp); nil != err { return err } ruleServerChan <- &logOp return nil case logc.VaSystemLogTopic: var logOp logc.VaSystemLog if err := json.Unmarshal(payloads, &logOp); nil != err { return err } vaSystemChan <- &logOp return nil } return errors.New("unsupported topic") }