| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- // Copyright 2019 Yunion
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- package notify
- import (
- "yunion.io/x/onecloud/cmd/climc/shell"
- identity_api "yunion.io/x/onecloud/pkg/apis/identity"
- "yunion.io/x/onecloud/pkg/mcclient"
- identity_modules "yunion.io/x/onecloud/pkg/mcclient/modules/identity"
- modules "yunion.io/x/onecloud/pkg/mcclient/modules/notify"
- options "yunion.io/x/onecloud/pkg/mcclient/options/notify"
- )
- func init() {
- cmd := shell.NewResourceCmd(&modules.NotifyReceiver).WithKeyword("notify-receiver")
- cmd.List(new(options.ReceiverListOptions))
- cmd.Create(new(options.ReceiverCreateOptions))
- cmd.Update(new(options.ReceiverUpdateOptions))
- cmd.Show(new(options.ReceiverOptions))
- cmd.Delete(new(options.ReceiverOptions))
- cmd.Perform("enable", new(options.ReceiverOptions))
- cmd.Perform("disable", new(options.ReceiverOptions))
- cmd.Perform("trigger-verify", new(options.ReceiverTriggerVerifyOptions))
- cmd.Perform("verify", new(options.ReceiverVerifyOptions))
- cmd.Perform("enable-contact-type", new(options.ReceiverEnableContactTypeInput))
- cmd.PerformClass("intellij-get", new(options.ReceiverIntellijGetOptions))
- cmd.PerformClass("get-types", new(options.ReceiverGetTypeOptions))
- cmd.Perform("get-subscription", new(options.ReceiverGetSubscriptionOptions))
- cmd.GetProperty(new(options.SReceiverRoleContactType))
- type SyncUserContactOptions struct {
- USERID string `json:"user_id"`
- Mobile string `json:"mobile"`
- Email string `json:"email"`
- }
- R(&SyncUserContactOptions{}, "sync-user-contacts", "Sync user contact", func(s *mcclient.ClientSession, args *SyncUserContactOptions) error {
- userObj, err := identity_modules.UsersV3.Get(s, args.USERID, nil)
- if err != nil {
- return err
- }
- user := identity_api.UserDetails{}
- err = userObj.Unmarshal(&user)
- if err != nil {
- return err
- }
- if len(args.Mobile) == 0 {
- args.Mobile = user.Mobile
- }
- if len(args.Email) == 0 {
- args.Email = user.Email
- }
- err = modules.NotifyReceiver.SyncUserContact(s, user.Id, args.Mobile, args.Email)
- if err != nil {
- return err
- }
- return nil
- })
- }
|