bmc 1.0.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -0
- data/app/helpers/bmc/bootstrap_helper.rb +1 -1
- data/app/helpers/bmc/form_helper.rb +1 -1
- data/app/helpers/bmc/text_helper.rb +1 -1
- data/app/jobs/bmc/application_job.rb +2 -0
- data/app/sms/bmc/sms/deliver_job.rb +5 -0
- data/app/sms/bmc/sms/message.rb +2 -12
- data/app/sms/bmc/sms/strategies/amazon.rb +38 -0
- data/app/sms/bmc/sms/strategies/test.rb +2 -2
- data/app/sms/bmc/sms.rb +1 -25
- data/config/locales/actions.en.yml +0 -3
- data/config/locales/actions.fr.yml +1 -4
- data/config/locales/attributes.en.yml +0 -5
- data/config/locales/attributes.fr.yml +0 -5
- data/config/locales/common.en.yml +0 -2
- data/config/locales/common.fr.yml +0 -2
- data/lib/bmc/config.rb +9 -0
- data/lib/bmc/engine.rb +0 -2
- data/lib/bmc/version.rb +1 -1
- metadata +7 -8
- data/app/libs/bmc/fcm/notifier.rb +0 -32
- data/app/libs/bmc/fcm/request.rb +0 -54
- data/app/sms/bmc/sms/strategies/amazon_sns.rb +0 -48
- data/app/sms/bmc/sms/strategies/base.rb +0 -15
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: a59bab32c76657e73db1aaef5bb4e81c1ed6aa9543b94e5dc85f5054eec729a8
         | 
| 4 | 
            +
              data.tar.gz: 4df9be0caa78db86d8a62cc8398defd99524e5b57db38c5ce9aa8f710db89053
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 77820c96a79cb697a80fa0d75d64820faa8e2af8d1a194286abfb7894cb32dbc1fcc1b5a194cb43d6910408ca882b1b52a0fdde30b777d1c92e160ca3217a3c2
         | 
| 7 | 
            +
              data.tar.gz: '038cb8ed69f9e6790c08d01ea3f706ef1a22b1372b51ca5ab315d821d01cddf90b4663798e5f48d3c96e6db952d19e8d9638ed3084daafc0ecff86aa085d7e1a'
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    
| @@ -102,7 +102,7 @@ module BMC::TextHelper | |
| 102 102 | 
             
                container_css_class = ["info", ("blank" if value.blank?)]
         | 
| 103 103 |  | 
| 104 104 | 
             
                content_tag(tag, class: container_css_class) do
         | 
| 105 | 
            -
                  [html_label, separator_html, html_value].sum
         | 
| 105 | 
            +
                  [html_label, separator_html, html_value].sum("".html_safe)
         | 
| 106 106 | 
             
                end
         | 
| 107 107 | 
             
              end # def info
         | 
| 108 108 |  | 
    
        data/app/sms/bmc/sms/message.rb
    CHANGED
    
    | @@ -5,21 +5,11 @@ class BMC::SMS::Message | |
| 5 5 | 
             
                @data = data
         | 
| 6 6 | 
             
              end
         | 
| 7 7 |  | 
| 8 | 
            -
              def strategy=(value)
         | 
| 9 | 
            -
                @strategy = BMC::SMS.parse_strategy(value)
         | 
| 10 | 
            -
              end
         | 
| 11 | 
            -
             | 
| 12 | 
            -
              def strategy(value = :no_argument)
         | 
| 13 | 
            -
                self.strategy = value unless value == :no_argument
         | 
| 14 | 
            -
                @strategy || BMC::SMS.strategy
         | 
| 15 | 
            -
              end
         | 
| 16 | 
            -
             | 
| 17 8 | 
             
              def deliver_now
         | 
| 18 | 
            -
                 | 
| 9 | 
            +
                BMC::SMS::DeliverJob.perform_now(data)
         | 
| 19 10 | 
             
              end
         | 
| 20 11 |  | 
| 21 | 
            -
              # TODO : Delay
         | 
| 22 12 | 
             
              def deliver_later
         | 
| 23 | 
            -
                 | 
| 13 | 
            +
                BMC::SMS::DeliverJob.perform_later(data)
         | 
| 24 14 | 
             
              end
         | 
| 25 15 | 
             
            end
         | 
| @@ -0,0 +1,38 @@ | |
| 1 | 
            +
            class BMC::SMS::Strategies::Amazon
         | 
| 2 | 
            +
              attr_reader :region, :access_key_id, :secret_access_key
         | 
| 3 | 
            +
             | 
| 4 | 
            +
              # rubocop:disable Layout/LineLength
         | 
| 5 | 
            +
              def initialize(region: nil, access_key_id: nil, secret_access_key: nil)
         | 
| 6 | 
            +
                @region            = region            || ENV["SNS_REGION"]            || ENV["AWS_REGION"]
         | 
| 7 | 
            +
                @access_key_id     = access_key_id     || ENV["SNS_ACCESS_KEY_ID"]     || ENV["AWS_ACCESS_KEY_ID"]
         | 
| 8 | 
            +
                @secret_access_key = secret_access_key || ENV["SNS_SECRET_ACCESS_KEY"] || ENV["AWS_SECRET_ACCESS_KEY"]
         | 
| 9 | 
            +
              end
         | 
| 10 | 
            +
              # rubocop:enable Layout/LineLength
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              def client
         | 
| 13 | 
            +
                @client ||= Aws::SNS::Client.new(
         | 
| 14 | 
            +
                  :region            => region,
         | 
| 15 | 
            +
                  :access_key_id     => access_key_id,
         | 
| 16 | 
            +
                  :secret_access_key => secret_access_key,
         | 
| 17 | 
            +
                )
         | 
| 18 | 
            +
              end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
              def call(data)
         | 
| 21 | 
            +
                from = data[:from] || BMC::SMS.default_from
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                client.publish(
         | 
| 24 | 
            +
                  :phone_number => data[:to],
         | 
| 25 | 
            +
                  :message => data[:body],
         | 
| 26 | 
            +
                  :message_attributes => {
         | 
| 27 | 
            +
                    "AWS.SNS.SMS.SenderID" => {
         | 
| 28 | 
            +
                      :data_type    => "String",
         | 
| 29 | 
            +
                      :string_value => from,
         | 
| 30 | 
            +
                    },
         | 
| 31 | 
            +
                    "AWS.SNS.SMS.SMSType" => {
         | 
| 32 | 
            +
                      :data_type => "String",
         | 
| 33 | 
            +
                      :string_value => "Transactional",
         | 
| 34 | 
            +
                    },
         | 
| 35 | 
            +
                  },
         | 
| 36 | 
            +
                )
         | 
| 37 | 
            +
              end
         | 
| 38 | 
            +
            end
         | 
| @@ -1,9 +1,9 @@ | |
| 1 | 
            -
            class BMC::SMS::Strategies::Test | 
| 1 | 
            +
            class BMC::SMS::Strategies::Test
         | 
| 2 2 | 
             
              def self.deliveries
         | 
| 3 3 | 
             
                @deliveries ||= []
         | 
| 4 4 | 
             
              end
         | 
| 5 5 |  | 
| 6 | 
            -
              def call
         | 
| 6 | 
            +
              def call(data)
         | 
| 7 7 | 
             
                self.class.deliveries << data
         | 
| 8 8 | 
             
                Rails.logger.info "New SMS sent : #{data.inspect}"
         | 
| 9 9 | 
             
              end
         | 
    
        data/app/sms/bmc/sms.rb
    CHANGED
    
    | @@ -1,35 +1,11 @@ | |
| 1 1 | 
             
            module BMC::SMS
         | 
| 2 2 | 
             
              class << self
         | 
| 3 | 
            -
                 | 
| 4 | 
            -
                  @strategy = parse_strategy(value)
         | 
| 5 | 
            -
                end
         | 
| 6 | 
            -
             | 
| 7 | 
            -
                def strategy
         | 
| 8 | 
            -
                  @strategy ||= default_strategy
         | 
| 9 | 
            -
                end
         | 
| 3 | 
            +
                attr_accessor :strategy
         | 
| 10 4 |  | 
| 11 5 | 
             
                attr_writer :default_from
         | 
| 12 6 |  | 
| 13 7 | 
             
                def default_from
         | 
| 14 8 | 
             
                  @default_from ||= Rails.application.class.to_s.chomp("::Application")
         | 
| 15 9 | 
             
                end
         | 
| 16 | 
            -
             | 
| 17 | 
            -
                def parse_strategy(value)
         | 
| 18 | 
            -
                  if value.is_a?(Symbol)
         | 
| 19 | 
            -
                    "BMC::SMS::Strategies::#{value.to_s.camelcase}".constantize
         | 
| 20 | 
            -
                  else
         | 
| 21 | 
            -
                    value
         | 
| 22 | 
            -
                  end
         | 
| 23 | 
            -
                end
         | 
| 24 | 
            -
             | 
| 25 | 
            -
                private
         | 
| 26 | 
            -
             | 
| 27 | 
            -
                def default_strategy
         | 
| 28 | 
            -
                  if Rails.env.development? || Rails.env.test?
         | 
| 29 | 
            -
                    BMC::SMS::Strategies::Test
         | 
| 30 | 
            -
                  else
         | 
| 31 | 
            -
                    BMC::SMS::Strategies::AmazonSNS
         | 
| 32 | 
            -
                  end
         | 
| 33 | 
            -
                end
         | 
| 34 10 | 
             
              end # class << self
         | 
| 35 11 | 
             
            end
         | 
| @@ -24,7 +24,6 @@ en: | |
| 24 24 | 
             
                close      : "Close"
         | 
| 25 25 | 
             
                lock       : "Lock"
         | 
| 26 26 | 
             
                unlock     : "Unlock"
         | 
| 27 | 
            -
                snooze     : "Snooze"
         | 
| 28 27 | 
             
                alert      : "Alert"
         | 
| 29 28 | 
             
                complete   : "Complete"
         | 
| 30 29 | 
             
                done       : "Done"
         | 
| @@ -63,8 +62,6 @@ en: | |
| 63 62 | 
             
                comment    : "Comment"
         | 
| 64 63 | 
             
                add_line   : "Add line"
         | 
| 65 64 | 
             
                remove_line: "Remove line"
         | 
| 66 | 
            -
                pay        : "Pay"
         | 
| 67 | 
            -
                paid       : "Payd"
         | 
| 68 65 | 
             
                continue   : "Continue"
         | 
| 69 66 | 
             
                rename     : "Rename"
         | 
| 70 67 | 
             
                email      : "Send by email"
         | 
| @@ -3,7 +3,7 @@ fr: | |
| 3 3 | 
             
                actions    : "Actions"
         | 
| 4 4 | 
             
                index      : "Liste"
         | 
| 5 5 | 
             
                list       : "Liste"
         | 
| 6 | 
            -
                new        : " | 
| 6 | 
            +
                new        : "Créer"
         | 
| 7 7 | 
             
                create     : "Créer"
         | 
| 8 8 | 
             
                read       : "Afficher"
         | 
| 9 9 | 
             
                show       : "Afficher"
         | 
| @@ -24,7 +24,6 @@ fr: | |
| 24 24 | 
             
                close      : "Fermer"
         | 
| 25 25 | 
             
                lock       : "Fermer"
         | 
| 26 26 | 
             
                unlock     : "Ouvrir"
         | 
| 27 | 
            -
                snooze     : "Reporter"
         | 
| 28 27 | 
             
                alert      : "Alerter"
         | 
| 29 28 | 
             
                complete   : "Marquer terminé"
         | 
| 30 29 | 
             
                done       : "Terminer"
         | 
| @@ -63,8 +62,6 @@ fr: | |
| 63 62 | 
             
                comment    : "Commenter"
         | 
| 64 63 | 
             
                add_line   : "Ajouter une ligne"
         | 
| 65 64 | 
             
                remove_line: "Supprimer la ligne"
         | 
| 66 | 
            -
                pay        : "Payer"
         | 
| 67 | 
            -
                paid       : "Payée"
         | 
| 68 65 | 
             
                continue   : "Continuer"
         | 
| 69 66 | 
             
                rename     : "Renommer"
         | 
| 70 67 | 
             
                email      : "Envoyer par email"
         | 
| @@ -6,7 +6,6 @@ en: | |
| 6 6 | 
             
                address               : "Address"
         | 
| 7 7 | 
             
                address1              : "Address"
         | 
| 8 8 | 
             
                address2              : "Address (rest)"
         | 
| 9 | 
            -
                addressable           : "Origin"
         | 
| 10 9 | 
             
                amount                : "Amount"
         | 
| 11 10 | 
             
                attachable            : "Origin"
         | 
| 12 11 | 
             
                attachment            : "Attachment"
         | 
| @@ -21,13 +20,11 @@ en: | |
| 21 20 | 
             
                comment               : "Comment"
         | 
| 22 21 | 
             
                commentable           : "Origin"
         | 
| 23 22 | 
             
                comments              : "Comments"
         | 
| 24 | 
            -
                corporation_name      : "Name"
         | 
| 25 23 | 
             
                count                 : "Number"
         | 
| 26 24 | 
             
                country               : "Country"
         | 
| 27 25 | 
             
                created_at            : "Created at"
         | 
| 28 26 | 
             
                current_avatar        : "Current avatar"
         | 
| 29 27 | 
             
                customer              : "Customer"
         | 
| 30 | 
            -
                customer_guid         : "Customer"
         | 
| 31 28 | 
             
                data                  : "Data"
         | 
| 32 29 | 
             
                date                  : "Date"
         | 
| 33 30 | 
             
                date_begin            : "Date begin"
         | 
| @@ -44,7 +41,6 @@ en: | |
| 44 41 | 
             
                email_subject         : "Subject"
         | 
| 45 42 | 
             
                email_to              : "Recipient"
         | 
| 46 43 | 
             
                facebook              : "Facebook"
         | 
| 47 | 
            -
                fax                   : "Fax"
         | 
| 48 44 | 
             
                file                  : "File"
         | 
| 49 45 | 
             
                first_name            : "First name"
         | 
| 50 46 | 
             
                id                    : "Id"
         | 
| @@ -59,7 +55,6 @@ en: | |
| 59 55 | 
             
                month                 : "Month"
         | 
| 60 56 | 
             
                name                  : "Name"
         | 
| 61 57 | 
             
                number                : "Number"
         | 
| 62 | 
            -
                paid                  : "Paid ?"
         | 
| 63 58 | 
             
                password              : "Password"
         | 
| 64 59 | 
             
                password_confirmation : "Password (confirm)"
         | 
| 65 60 | 
             
                phone                 : "Phone"
         | 
| @@ -6,7 +6,6 @@ fr: | |
| 6 6 | 
             
                address               : "Adresse"
         | 
| 7 7 | 
             
                address1              : "Adresse"
         | 
| 8 8 | 
             
                address2              : "Adresse (suite)"
         | 
| 9 | 
            -
                addressable           : "Origine"
         | 
| 10 9 | 
             
                amount                : "Montant"
         | 
| 11 10 | 
             
                attachable            : "Origine"
         | 
| 12 11 | 
             
                attachment            : "Pièce jointe"
         | 
| @@ -21,13 +20,11 @@ fr: | |
| 21 20 | 
             
                comment               : "Commentaire"
         | 
| 22 21 | 
             
                commentable           : "Origine"
         | 
| 23 22 | 
             
                comments              : "Commentaires"
         | 
| 24 | 
            -
                corporation_name      : "Nom"
         | 
| 25 23 | 
             
                count                 : "Nombre"
         | 
| 26 24 | 
             
                country               : "Pays"
         | 
| 27 25 | 
             
                created_at            : "Créé le"
         | 
| 28 26 | 
             
                current_avatar        : "Avatar actuel"
         | 
| 29 27 | 
             
                customer              : "Client"
         | 
| 30 | 
            -
                customer_guid         : "Client"
         | 
| 31 28 | 
             
                data                  : "Informations"
         | 
| 32 29 | 
             
                date                  : "Date"
         | 
| 33 30 | 
             
                date_begin            : "Date de début"
         | 
| @@ -44,7 +41,6 @@ fr: | |
| 44 41 | 
             
                email_subject         : "Object"
         | 
| 45 42 | 
             
                email_to              : "Destinataire"
         | 
| 46 43 | 
             
                facebook              : "Facebook"
         | 
| 47 | 
            -
                fax                   : "Fax"
         | 
| 48 44 | 
             
                file                  : "Fichier"
         | 
| 49 45 | 
             
                first_name            : "Prénom"
         | 
| 50 46 | 
             
                id                    : "Id"
         | 
| @@ -59,7 +55,6 @@ fr: | |
| 59 55 | 
             
                month                 : "Mois"
         | 
| 60 56 | 
             
                name                  : "Nom"
         | 
| 61 57 | 
             
                number                : "Nombre"
         | 
| 62 | 
            -
                paid                  : "Payée ?"
         | 
| 63 58 | 
             
                password              : "Mot de passe"
         | 
| 64 59 | 
             
                password_confirmation : "Mot de passe (confirmer)"
         | 
| 65 60 | 
             
                phone                 : "Téléphone"
         | 
    
        data/lib/bmc/config.rb
    CHANGED
    
    | @@ -8,6 +8,15 @@ class << BMC | |
| 8 8 | 
             
                ].map(&:safe_constantize).compact.first
         | 
| 9 9 | 
             
              end
         | 
| 10 10 |  | 
| 11 | 
            +
              attr_writer :parent_job
         | 
| 12 | 
            +
             | 
| 13 | 
            +
              def parent_job
         | 
| 14 | 
            +
                @parent_job ||= [
         | 
| 15 | 
            +
                  "ApplicationJob",
         | 
| 16 | 
            +
                  "ActiveJob::Base",
         | 
| 17 | 
            +
                ].map(&:safe_constantize).compact.first
         | 
| 18 | 
            +
              end
         | 
| 19 | 
            +
             | 
| 11 20 | 
             
              attr_writer :parent_mailer
         | 
| 12 21 |  | 
| 13 22 | 
             
              def parent_mailer
         | 
    
        data/lib/bmc/engine.rb
    CHANGED
    
    | @@ -12,9 +12,7 @@ module BMC | |
| 12 12 | 
             
                initializer "inflections" do
         | 
| 13 13 | 
             
                  ActiveSupport::Inflector.inflections(:en) do |inflect|
         | 
| 14 14 | 
             
                    inflect.acronym "BMC"
         | 
| 15 | 
            -
                    inflect.acronym "FCM"
         | 
| 16 15 | 
             
                    inflect.acronym "SMS"
         | 
| 17 | 
            -
                    inflect.acronym "SNS"
         | 
| 18 16 | 
             
                    inflect.acronym "UUID"
         | 
| 19 17 | 
             
                    inflect.acronym "XLSX"
         | 
| 20 18 | 
             
                  end
         | 
    
        data/lib/bmc/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: bmc
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.2.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 | 
            -
            -  | 
| 7 | 
            +
            - Benoit MARTIN-CHAVE
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2022-01-19 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rails-i18n
         | 
| @@ -147,10 +147,9 @@ files: | |
| 147 147 | 
             
            - app/helpers/bmc/sorting_helper.rb
         | 
| 148 148 | 
             
            - app/helpers/bmc/text_helper.rb
         | 
| 149 149 | 
             
            - app/helpers/h.rb
         | 
| 150 | 
            +
            - app/jobs/bmc/application_job.rb
         | 
| 150 151 | 
             
            - app/jobs/concerns/bmc/setup_job_concern.rb
         | 
| 151 152 | 
             
            - app/libs/bmc/collection_update.rb
         | 
| 152 | 
            -
            - app/libs/bmc/fcm/notifier.rb
         | 
| 153 | 
            -
            - app/libs/bmc/fcm/request.rb
         | 
| 154 153 | 
             
            - app/libs/bmc/mini_model_serializer/serialize.rb
         | 
| 155 154 | 
             
            - app/libs/bmc/mini_model_serializer/serializer.rb
         | 
| 156 155 | 
             
            - app/libs/bmc/monkey.rb
         | 
| @@ -172,9 +171,9 @@ files: | |
| 172 171 | 
             
            - app/serializers/bmc/serializers/xlsx.rb
         | 
| 173 172 | 
             
            - app/sms/bmc/sms.rb
         | 
| 174 173 | 
             
            - app/sms/bmc/sms/application_sms.rb
         | 
| 174 | 
            +
            - app/sms/bmc/sms/deliver_job.rb
         | 
| 175 175 | 
             
            - app/sms/bmc/sms/message.rb
         | 
| 176 | 
            -
            - app/sms/bmc/sms/strategies/ | 
| 177 | 
            -
            - app/sms/bmc/sms/strategies/base.rb
         | 
| 176 | 
            +
            - app/sms/bmc/sms/strategies/amazon.rb
         | 
| 178 177 | 
             
            - app/sms/bmc/sms/strategies/test.rb
         | 
| 179 178 | 
             
            - app/sorters/bmc/sorter.rb
         | 
| 180 179 | 
             
            - app/views/bmc/search/_form.html.slim
         | 
| @@ -229,7 +228,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 229 228 | 
             
                - !ruby/object:Gem::Version
         | 
| 230 229 | 
             
                  version: '0'
         | 
| 231 230 | 
             
            requirements: []
         | 
| 232 | 
            -
            rubygems_version: 3. | 
| 231 | 
            +
            rubygems_version: 3.3.3
         | 
| 233 232 | 
             
            signing_key:
         | 
| 234 233 | 
             
            specification_version: 4
         | 
| 235 234 | 
             
            summary: BMC
         | 
| @@ -1,32 +0,0 @@ | |
| 1 | 
            -
            class BMC::FCM::Notifier
         | 
| 2 | 
            -
              attr_reader :to, :title, :body, :badge, :sound, :data
         | 
| 3 | 
            -
             | 
| 4 | 
            -
              # rubocop:disable Metrics/ParameterLists
         | 
| 5 | 
            -
              def initialize(to:, title: nil, body:, badge: 0, sound: "default", data: {})
         | 
| 6 | 
            -
                super()
         | 
| 7 | 
            -
                @to    = to
         | 
| 8 | 
            -
                @title = title
         | 
| 9 | 
            -
                @body  = body
         | 
| 10 | 
            -
                @badge = badge
         | 
| 11 | 
            -
                @sound = sound
         | 
| 12 | 
            -
                @data  = data
         | 
| 13 | 
            -
              end
         | 
| 14 | 
            -
              # rubocop:enable Metrics/ParameterLists
         | 
| 15 | 
            -
             | 
| 16 | 
            -
              def call
         | 
| 17 | 
            -
                BMC::FCM::Request.call(
         | 
| 18 | 
            -
                  :to => to,
         | 
| 19 | 
            -
                  :notification => {
         | 
| 20 | 
            -
                    :title => title,
         | 
| 21 | 
            -
                    :body  => body,
         | 
| 22 | 
            -
                    :badge => badge,
         | 
| 23 | 
            -
                    :sound => sound,
         | 
| 24 | 
            -
                  },
         | 
| 25 | 
            -
                  :data => data,
         | 
| 26 | 
            -
                )
         | 
| 27 | 
            -
              end
         | 
| 28 | 
            -
             | 
| 29 | 
            -
              def self.call(...)
         | 
| 30 | 
            -
                new(...).call
         | 
| 31 | 
            -
              end
         | 
| 32 | 
            -
            end
         | 
    
        data/app/libs/bmc/fcm/request.rb
    DELETED
    
    | @@ -1,54 +0,0 @@ | |
| 1 | 
            -
            class BMC::FCM::Request
         | 
| 2 | 
            -
              extend AttrExtras.mixin
         | 
| 3 | 
            -
             | 
| 4 | 
            -
              URL = "https://fcm.googleapis.com/fcm/send"
         | 
| 5 | 
            -
             | 
| 6 | 
            -
              class << self
         | 
| 7 | 
            -
                attr_writer :api_key
         | 
| 8 | 
            -
             | 
| 9 | 
            -
                def api_key
         | 
| 10 | 
            -
                  @api_key ||= ENV["FCM_API_KEY"]
         | 
| 11 | 
            -
                end
         | 
| 12 | 
            -
              end
         | 
| 13 | 
            -
             | 
| 14 | 
            -
              attr_reader_initialize :request_body
         | 
| 15 | 
            -
             | 
| 16 | 
            -
              attr_reader :response_json
         | 
| 17 | 
            -
             | 
| 18 | 
            -
              def self.call(...)
         | 
| 19 | 
            -
                new(...).call
         | 
| 20 | 
            -
              end
         | 
| 21 | 
            -
             | 
| 22 | 
            -
              def call
         | 
| 23 | 
            -
                response_body = HTTParty.post(URL,
         | 
| 24 | 
            -
                  :body    => request_body.to_json,
         | 
| 25 | 
            -
                  :headers => {
         | 
| 26 | 
            -
                    "Content-Type"  => "application/json",
         | 
| 27 | 
            -
                    "Authorization" => "key=#{self.class.api_key}",
         | 
| 28 | 
            -
                  },
         | 
| 29 | 
            -
                ).body
         | 
| 30 | 
            -
             | 
| 31 | 
            -
                @response_json = JSON.parse(response_body).deep_symbolize_keys
         | 
| 32 | 
            -
             | 
| 33 | 
            -
                self
         | 
| 34 | 
            -
              rescue JSON::ParserError
         | 
| 35 | 
            -
                @response_json = {success: 0, failure: 1, results: [{:error => "InvalidJsonResponse"}]}
         | 
| 36 | 
            -
                self
         | 
| 37 | 
            -
              end
         | 
| 38 | 
            -
             | 
| 39 | 
            -
              def ok?
         | 
| 40 | 
            -
                response_json[:success].positive? && response_json[:failure].zero?
         | 
| 41 | 
            -
              end
         | 
| 42 | 
            -
             | 
| 43 | 
            -
              def error?
         | 
| 44 | 
            -
                !ok?
         | 
| 45 | 
            -
              end
         | 
| 46 | 
            -
             | 
| 47 | 
            -
              def errors
         | 
| 48 | 
            -
                response_json[:results].pluck(:error).compact
         | 
| 49 | 
            -
              end
         | 
| 50 | 
            -
             | 
| 51 | 
            -
              def invalid_token?
         | 
| 52 | 
            -
                errors.include?("NotRegistered") || errors.include?("InvalidRegistration")
         | 
| 53 | 
            -
              end
         | 
| 54 | 
            -
            end
         | 
| @@ -1,48 +0,0 @@ | |
| 1 | 
            -
            class BMC::SMS::Strategies::AmazonSNS < BMC::SMS::Strategies::Base
         | 
| 2 | 
            -
              class << self
         | 
| 3 | 
            -
                attr_writer :sns_region
         | 
| 4 | 
            -
             | 
| 5 | 
            -
                def sns_region
         | 
| 6 | 
            -
                  @sns_region ||= (ENV["SNS_REGION"] || ENV["AWS_REGION"])
         | 
| 7 | 
            -
                end
         | 
| 8 | 
            -
             | 
| 9 | 
            -
                attr_writer :sns_access_key_id
         | 
| 10 | 
            -
             | 
| 11 | 
            -
                def sns_access_key_id
         | 
| 12 | 
            -
                  @sns_access_key_id ||= (ENV["SNS_ACCESS_KEY_ID"] || ENV["AWS_ACCESS_KEY_ID"])
         | 
| 13 | 
            -
                end
         | 
| 14 | 
            -
             | 
| 15 | 
            -
                attr_writer :sns_secret_access_key
         | 
| 16 | 
            -
             | 
| 17 | 
            -
                def sns_secret_access_key
         | 
| 18 | 
            -
                  @sns_secret_access_key ||= (ENV["SNS_SECRET_ACCESS_KEY"] || ENV["AWS_SECRET_ACCESS_KEY"])
         | 
| 19 | 
            -
                end
         | 
| 20 | 
            -
              end # class << self
         | 
| 21 | 
            -
             | 
| 22 | 
            -
              def client
         | 
| 23 | 
            -
                @client ||= Aws::SNS::Client.new(
         | 
| 24 | 
            -
                  :region            => self.class.sns_region,
         | 
| 25 | 
            -
                  :access_key_id     => self.class.sns_access_key_id,
         | 
| 26 | 
            -
                  :secret_access_key => self.class.sns_secret_access_key,
         | 
| 27 | 
            -
                )
         | 
| 28 | 
            -
              end
         | 
| 29 | 
            -
             | 
| 30 | 
            -
              def call
         | 
| 31 | 
            -
                from = data[:from] || BMC::SMS.default_from
         | 
| 32 | 
            -
             | 
| 33 | 
            -
                client.publish(
         | 
| 34 | 
            -
                  :phone_number       => data[:to],
         | 
| 35 | 
            -
                  :message            => data[:body],
         | 
| 36 | 
            -
                  :message_attributes => {
         | 
| 37 | 
            -
                    "AWS.SNS.SMS.SenderID" => {
         | 
| 38 | 
            -
                      :data_type    => "String",
         | 
| 39 | 
            -
                      :string_value => from,
         | 
| 40 | 
            -
                    },
         | 
| 41 | 
            -
                    "AWS.SNS.SMS.SMSType"  => {
         | 
| 42 | 
            -
                      :data_type    => "String",
         | 
| 43 | 
            -
                      :string_value => "Transactional",
         | 
| 44 | 
            -
                    },
         | 
| 45 | 
            -
                  },
         | 
| 46 | 
            -
                )
         | 
| 47 | 
            -
              end
         | 
| 48 | 
            -
            end
         |