in pkg/admin/services/mock_rule_service_impl.go [34:64]
func (m *MockRuleServiceImpl) CreateOrUpdateMockRule(mockRule *model.MockRule) error {
if mockRule.ServiceName == "" || mockRule.MethodName == "" || mockRule.Rule == "" {
return nil
}
existRule, err := m.MockRuleMapper.FindByServiceNameAndMethodName(context.TODO(), mockRule.ServiceName, mockRule.MethodName)
if err != nil {
m.Logger.Error(err.Error())
return err
}
isExist := existRule.ID != 0
// check if we can save or update the rule, we need keep the serviceName + methodName is unique.
if isExist {
if mockRule.ID != existRule.ID {
err := errors.New("service name and method name must be unique")
m.Logger.Error(err.Error())
return err
}
if err := m.MockRuleMapper.Update(mockRule.ToMockRuleEntity()); err != nil {
m.Logger.Error(err.Error())
return err
}
} else {
if err := m.MockRuleMapper.Create(mockRule.ToMockRuleEntity()); err != nil {
m.Logger.Error(err.Error())
return err
}
}
return nil
}