本文整理汇总了Golang中github.com/corestoreio/csfw/config.ScopeStore函数的典型用法代码示例。如果您正苦于以下问题:Golang ScopeStore函数的具体用法?Golang ScopeStore怎么用?Golang ScopeStore使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ScopeStore函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: SetMandrill
// SetMandrill sets the Mandrill API for sending emails. This function is not
// recursive and returns nil. @todo
func SetMandrill(opts ...MandrillOptions) DaemonOption {
return func(da *Daemon) DaemonOption {
// this whole func is just a quick write down. no idea if it's working
// and refactor ... 8-)
apiKey := da.Config.GetString(config.ScopeStore(da.ScopeID), config.Path(PathSmtpMandrillAPIKey))
if apiKey == "" {
da.lastErrs = append(da.lastErrs, errors.New("Mandrill API Key is empty."))
return nil
}
md, err := gochimp.NewMandrill(apiKey)
if err != nil {
da.lastErrs = append(da.lastErrs, err)
return nil
}
for _, o := range opts {
o(md)
}
da.sendFunc = func(from string, to []string, msg io.WriterTo) error {
// @todo figure out if "to" contains To, CC and BCC addresses.
addr, err := mail.ParseAddress(from)
if err != nil {
return log.Error("mail.daemon.Mandrill.ParseAddress", "err", err, "from", from, "to", to)
}
r := gochimp.Recipient{
Name: addr.Name,
Email: addr.Address,
}
var buf bytes.Buffer
if _, err := msg.WriteTo(&buf); err != nil {
return log.Error("mail.daemon.Mandrill.MessageWriteTo", "err", err, "from", from, "to", to, "msg", buf.String())
}
resp, err := md.MessageSendRaw(buf.String(), to, r, false)
if err != nil {
return log.Error("mail.daemon.Mandrill.MessageSendRaw", "err", err, "from", from, "to", to, "msg", buf.String())
}
if log.IsDebug() {
log.Debug("mail.daemon.Mandrill.MessageSendRaw", "resp", resp, "from", from, "to", to, "msg", buf.String())
}
// The last arg in MessageSendRaw means async in the Mandrill API:
// Async: enable a background sending mode that is optimized for bulk sending.
// In async mode, messages/send will immediately return a status of "queued"
// for every recipient. To handle rejections when sending in async mode, set
// up a webhook for the 'reject' event. Defaults to false for messages with
// no more than 10 recipients; messages with more than 10 recipients are
// always sent asynchronously, regardless of the value of async.
return nil
}
da.dialer = nil
return nil
}
}
示例2: getHost
func (dm *Daemon) getHost() string {
h := dm.config.GetString(config.Path(PathSmtpHost), config.ScopeStore(dm.scopeID))
if h == "" {
h = defaultHost
}
return h
}
示例3: ConfigString
// ConfigString tries to get a value from the scopeStore if empty
// falls back to default global scope.
// If using etcd or consul maybe this can lead to round trip times because of network access.
func (s *Store) ConfigString(path ...string) string {
val := s.cr.GetString(config.ScopeStore(s.StoreID()), config.Path(path...)) // TODO(cs) check for not bubbeling
if val == "" {
val = s.cr.GetString(config.Path(path...))
}
return val
}
示例4: getPort
func (dm *Daemon) getPort() int {
p := dm.config.GetInt(config.Path(PathSmtpPort), config.ScopeStore(dm.scopeID))
if p < 1 {
p = defaultPort
}
return p
}
示例5: getHost
func (u *uniqueID) getHost() string {
h := u.config.GetString(config.Path(PathSmtpHost), config.ScopeStore(u.scopeID))
if h == "" {
h = defaultHost
}
return h
}
示例6: ConfigString
// ConfigString tries to get a value from the scopeStore if empty
// falls back to default global scope.
// If using etcd or consul maybe this can lead to round trip times because of network access.
func (s *Store) ConfigString(path ...string) string {
val := s.cr.GetString(config.ScopeStore(s), config.Path(path...))
if val == "" {
val = s.cr.GetString(config.Path(path...))
}
return val
}
示例7: getHost
func (c *emailConfig) getHost(s config.ScopeIDer) string {
h := c.Config.GetString(config.Path(PathSmtpHost), config.ScopeStore(s))
if h == "" {
h = defaultHost
}
return h
}
示例8: getPort
func (c *emailConfig) getPort(s config.ScopeIDer) int {
p := c.Config.GetInt(config.Path(PathSmtpPort), config.ScopeStore(s))
if p < 1 {
p = defaultPort
}
return p
}
示例9: getPort
func (u *uniqueID) getPort() int {
p := u.config.GetInt(config.Path(PathSmtpPort), config.ScopeStore(u.scopeID))
if p < 1 {
p = defaultPort
}
return p
}
示例10: TestPubSubEvict
func TestPubSubEvict(t *testing.T) {
defer debugLogBuf.Reset()
levelCall := new(levelCalls)
var pErr = errors.New("WTF Eviction? Panic!")
s := config.NewService()
subID, err := s.Subscribe("x/y", &testSubscriber{
f: func(path string, sg scope.Scope, id int64) error {
assert.Contains(t, path, "x/y")
// this function gets called 3 times
levelCall.Lock()
levelCall.level2Calls++
levelCall.Unlock()
return nil
},
})
assert.NoError(t, err)
assert.Equal(t, 1, subID)
subID, err = s.Subscribe("x/y/z", &testSubscriber{
f: func(path string, sg scope.Scope, id int64) error {
levelCall.Lock()
levelCall.level3Calls++
levelCall.Unlock()
// this function gets called 1 times and then gets removed
panic(pErr)
},
})
assert.NoError(t, err)
assert.Equal(t, 2, subID)
assert.NoError(t, s.Write(config.Value(321), config.Path("x/y/z"), config.ScopeStore(123)))
assert.NoError(t, s.Write(config.Value(321), config.Path("x/y/a"), config.ScopeStore(123)))
assert.NoError(t, s.Write(config.Value(321), config.Path("x/y/z"), config.ScopeStore(123)))
assert.NoError(t, s.Close())
assert.Contains(t, debugLogBuf.String(), "config.pubSub.publish.recover.err err: WTF Eviction? Panic!")
levelCall.Lock()
assert.Equal(t, 3, levelCall.level2Calls)
assert.Equal(t, 1, levelCall.level3Calls)
levelCall.Unlock()
assert.EqualError(t, s.Close(), config.ErrPublisherClosed.Error())
}
示例11: Options
func (sca *SourceCurrencyAll) Options() config.ValueLabelSlice {
// Magento\Framework\Locale\Resolver
// grep locale from general/locale/code scope::store for the current store ID
// the store locale greps the currencies from http://php.net/manual/en/class.resourcebundle.php
// in the correct language
storeLocale := sca.mc.ConfigReader.GetString(config.Path(PathDefaultLocale), config.ScopeStore(sca.mc.Scope))
fmt.Printf("\nstoreLocale: %s\n", storeLocale)
return nil
}
示例12: TestPubSubEvict
func TestPubSubEvict(t *testing.T) {
defer errLogBuf.Reset()
var level2Calls int
var level3Calls int
var pErr = errors.New("WTF Eviction? Panic!")
m := config.NewManager()
subID, err := m.Subscribe("x/y", &testSubscriber{
f: func(path string, sg scope.Scope, id int64) error {
assert.Contains(t, path, "x/y")
// this function gets called 3 times
level2Calls++
return nil
},
})
assert.NoError(t, err)
assert.Equal(t, 1, subID)
subID, err = m.Subscribe("x/y/z", &testSubscriber{
f: func(path string, sg scope.Scope, id int64) error {
level3Calls++
// this function gets called 1 times and then gets removed
panic(pErr)
return nil
},
})
assert.NoError(t, err)
assert.Equal(t, 2, subID)
m.Write(config.Value(321), config.Path("x/y/z"), config.ScopeStore(123), config.NoBubble())
m.Write(config.Value(321), config.Path("x/y/a"), config.ScopeStore(123), config.NoBubble())
m.Write(config.Value(321), config.Path("x/y/z"), config.ScopeStore(123), config.NoBubble())
time.Sleep(time.Millisecond * 20) // wait for goroutine ...
assert.Contains(t, errLogBuf.String(), "testErr: stdLib.go:228: config.pubSub.publish.recover.err err: WTF Eviction? Panic!")
assert.Equal(t, 3, level2Calls)
assert.Equal(t, 1, level3Calls)
}
示例13: Options
func (sca *SourceCurrencyAll) Options() valuelabel.Slice {
// Magento\Framework\Locale\Resolver
// 1. get all allowed currencies from the config
// 2. get slice of currency code and currency name and filter out all not-allowed currencies
// grep locale from general/locale/code scope::store for the current store ID
// the store locale greps the currencies from http://php.net/manual/en/class.resourcebundle.php
// in the correct language
storeLocale, err := sca.mc.ConfigReader.GetString(config.Path(PathDefaultLocale), config.ScopeStore(sca.mc.ScopeStore.StoreID()))
fmt.Printf("\nstoreLocale: %s\n Err %s\n", storeLocale, err)
return nil
}
示例14: TestPubSubPanicSimple
func TestPubSubPanicSimple(t *testing.T) {
defer debugLogBuf.Reset()
testPath := "x/y/z"
s := config.NewService()
subID, err := s.Subscribe(testPath, &testSubscriber{
f: func(path string, sg scope.Scope, id int64) error {
panic("Don't panic!")
},
})
assert.NoError(t, err)
assert.Equal(t, 1, subID, "The very first subscription ID should be 1")
assert.NoError(t, s.Write(config.Value(321), config.Path(testPath), config.ScopeStore(123)))
assert.NoError(t, s.Close())
assert.Contains(t, debugLogBuf.String(), `config.pubSub.publish.recover.r recover: "Don't panic!"`)
}
示例15: TestPubSubUnsubscribe
func TestPubSubUnsubscribe(t *testing.T) {
defer errLogBuf.Reset()
var pErr = errors.New("WTF? Panic!")
m := config.NewManager()
subID, err := m.Subscribe("x/y/z", &testSubscriber{
f: func(path string, sg scope.Scope, id int64) error {
panic(pErr)
},
})
assert.NoError(t, err)
assert.Equal(t, 1, subID, "The very first subscription ID should be 1")
assert.NoError(t, m.Unsubscribe(subID))
assert.NoError(t, m.Write(config.Value(321), config.Path("x/y/z"), config.ScopeStore(123)))
time.Sleep(time.Millisecond) // wait for goroutine ...
assert.Contains(t, errLogBuf.String(), `config.Manager.Write path: "stores/123/x/y/z" val: 321`)
}