fastlane-plugin-aws_sns 0.1.2 → 0.2.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: d51df83e65599d0b3776675c1b991c578c7ff795
4
- data.tar.gz: 2625cf56ad866473f768187cd1c7b4ba9fb8a8db
2
+ SHA256:
3
+ metadata.gz: 6351c19e2e89f7ec0eea828700d498ca257039d9daf43e3bc57bbe62e02436d6
4
+ data.tar.gz: 6f86d72e9b70ade835f3633a9f60a1004b0e26ae3ba3c8295f2b174c72d77b54
5
5
  SHA512:
6
- metadata.gz: b71387142dd5f00f3d9f387322cdfc671ebea39e06f1e56661881b85160eaee487383fd61bd2743a4c05b1392ff1062a8dd0dbc078af56ff19deee21bcd86cf5
7
- data.tar.gz: a4e30adca8be9347457db0628e595961d7d0561e9e33576993902259772ff7aefd985db781b3b1e892546f624ef9347db996fe47ec28150c3b01b4fcd769ddd0
6
+ metadata.gz: 2e3b9f85b2b69d528cd8ac2be15caa9bdc437904630350897e9e6cf006bf5e1e2bbf6f2178edd7e433c699b0f7ed73faaa0474227df74c81ad61750a971f3e4f
7
+ data.tar.gz: b5a6d85880e49188d181fd2fff16b3106d6690dab69bde9ad372d479eadb503a70a482a270b2bab3d3b7bcb8c2ea200d96830bb07d3661766aa7064ca4764b93
data/README.md CHANGED
@@ -31,6 +31,8 @@ aws_sns(
31
31
 
32
32
  # Optional private key password
33
33
  # platform_apns_private_key_password: 'joshissupercool'
34
+ # Optional: updating certificate if platform_name already exists
35
+ # update_if_exist: true
34
36
  )
35
37
  ```
36
38
 
@@ -40,6 +42,8 @@ aws_sns(
40
42
  platform: 'GCM',
41
43
  platform_name: 'your_awesome_android_app',
42
44
  platform_gcm_api_key: 'your_gcm_api_key'
45
+ # Optional: updating key if platform_name already exists
46
+ # update_if_exist: true
43
47
  )
44
48
  ```
45
49
 
@@ -86,7 +90,7 @@ For more information about how the `fastlane` plugin system works, check out the
86
90
 
87
91
  ## Author
88
92
 
89
- Josh Holtz, josh@rokkincat.com, [@joshdholtz](https://twitter.com/joshdholtz)
93
+ Josh Holtz, me@joshholtz.com, [@joshdholtz](https://twitter.com/joshdholtz)
90
94
 
91
95
  I'm available for freelance work (Fastlane, iOS, and Android development) :muscle:
92
96
  Feel free to contact me :rocket:
@@ -1,4 +1,4 @@
1
- require 'aws-sdk'
1
+ require 'aws-sdk-sns'
2
2
 
3
3
  module Fastlane
4
4
  module Actions
@@ -15,11 +15,12 @@ module Fastlane
15
15
 
16
16
  platform = params[:platform]
17
17
  platform_name = params[:platform_name]
18
-
18
+ update_attributes = params[:update_if_exists]
19
19
  platform_apns_private_key_path = params[:platform_apns_private_key_path]
20
20
  platform_apns_private_key_password = params[:platform_apns_private_key_password]
21
21
 
22
- platform_gcm_api_key = params[:platform_gcm_api_key]
22
+ platform_fcm_server_key = params[:platform_fcm_server_key]
23
+ platform_fcm_server_key ||= params[:platform_gcm_api_key]
23
24
 
24
25
  UI.user_error!("No S3 access key given, pass using `access_key: 'key'`") unless access_key.to_s.length > 0
25
26
  UI.user_error!("No S3 secret access key given, pass using `secret_access_key: 'secret key'`") unless secret_access_key.to_s.length > 0
@@ -50,9 +51,10 @@ module Fastlane
50
51
  'PlatformCredential': p12.key.to_s,
51
52
  'PlatformPrincipal': cert.to_s
52
53
  }
53
- elsif ['GCM'].include?(platform) && !platform_gcm_api_key.nil?
54
+ elsif ['GCM', 'FCM'].include?(platform) && !platform_fcm_server_key.nil?
55
+ platform = 'GCM'
54
56
  attributes = {
55
- 'PlatformCredential': platform_gcm_api_key
57
+ 'PlatformCredential': platform_fcm_server_key
56
58
  }
57
59
  end
58
60
 
@@ -61,12 +63,52 @@ module Fastlane
61
63
  #
62
64
  UI.crash!("Unable to create any attributes to create platform application") unless attributes
63
65
  begin
64
- resp = client.create_platform_application({
65
- name: platform_name,
66
- platform: platform,
67
- attributes: attributes,
68
- })
69
- arn = resp.platform_application_arn
66
+
67
+ arn = nil
68
+
69
+ #
70
+ # Try to find the arn for platform_name
71
+ #
72
+ if update_attributes
73
+
74
+ # Loop as long as list platform applications returns next_page or return the desired name
75
+ next_token = nil
76
+ loop do
77
+
78
+ resp = client.list_platform_applications({
79
+ next_token: next_token,
80
+ })
81
+
82
+ next_token = resp.next_token
83
+ # TODO: Must find a best search method !
84
+ platform_application = resp.platform_applications.find { |platform_application| platform_application.platform_application_arn.end_with? platform_name }
85
+
86
+ unless platform_application.nil?
87
+ arn = platform_application.platform_application_arn
88
+ break
89
+ end
90
+ break if next_token.nil?
91
+ end
92
+
93
+ end
94
+
95
+ # Not arn? OK, we create it !
96
+ if arn.nil?
97
+ resp = client.create_platform_application({
98
+ name: platform_name,
99
+ platform: platform,
100
+ attributes: attributes,
101
+ })
102
+ arn = resp.platform_application_arn
103
+ UI.important("Created #{arn}")
104
+ else
105
+ # else, updating
106
+ client.set_platform_application_attributes({
107
+ platform_application_arn: arn,
108
+ attributes: attributes,
109
+ })
110
+ UI.important("Updated #{arn}")
111
+ end
70
112
 
71
113
  Actions.lane_context[SharedValues::AWS_SNS_PLATFORM_APPLICATION_ARN] = arn
72
114
  ENV[SharedValues::AWS_SNS_PLATFORM_APPLICATION_ARN.to_s] = arn
@@ -115,7 +157,7 @@ module Fastlane
115
157
  description: "AWS Platform",
116
158
  optional: false,
117
159
  verify_block: proc do |value|
118
- UI.user_error!("Invalid platform #{value}") unless ['APNS', 'APNS_SANDBOX', 'GCM'].include?(value)
160
+ UI.user_error!("Invalid platform #{value}") unless ['APNS', 'APNS_SANDBOX', 'GCM', 'FCM'].include?(value)
119
161
  end),
120
162
  FastlaneCore::ConfigItem.new(key: :platform_name,
121
163
  env_name: "AWS_SNS_PLATFORM_NAME",
@@ -130,9 +172,20 @@ module Fastlane
130
172
  description: "AWS Platform APNS Private Key Password",
131
173
  optional: true,
132
174
  default_value: ""),
175
+ FastlaneCore::ConfigItem.new(key: :platform_fcm_server_key,
176
+ env_name: "AWS_SNS_PLATFORM_FCM_SERVER_KEY",
177
+ description: "AWS Platform FCM SERVER KEY",
178
+ optional: true),
133
179
  FastlaneCore::ConfigItem.new(key: :platform_gcm_api_key,
134
180
  env_name: "AWS_SNS_PLATFORM_GCM_API_KEY",
135
181
  description: "AWS Platform GCM API KEY",
182
+ deprecated: "Use :platform_fcm_server_key instead",
183
+ optional: true),
184
+ FastlaneCore::ConfigItem.new(key: :update_if_exists,
185
+ env_name: "AWS_SNS_UDPATE_IF_EXISTS",
186
+ description: "updating certificate/key if platform_name already exists",
187
+ default_value: false,
188
+ is_string: false,
136
189
  optional: true)
137
190
  ]
138
191
  end
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module AwsSns
3
- VERSION = "0.1.2"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-aws_sns
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Holtz
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-23 00:00:00.000000000 Z
11
+ date: 2021-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: aws-sdk
14
+ name: aws-sdk-sns
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.0'
19
+ version: '1.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2.0'
26
+ version: '1.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: pry
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -100,16 +100,16 @@ dependencies:
100
100
  requirements:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: 1.110.0
103
+ version: 2.144.0
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: 1.110.0
111
- description:
112
- email: josh@rokkincat.com
110
+ version: 2.144.0
111
+ description:
112
+ email: me@joshholtz.com
113
113
  executables: []
114
114
  extensions: []
115
115
  extra_rdoc_files: []
@@ -120,11 +120,11 @@ files:
120
120
  - lib/fastlane/plugin/aws_sns/actions/aws_sns_action.rb
121
121
  - lib/fastlane/plugin/aws_sns/helper/aws_sns_helper.rb
122
122
  - lib/fastlane/plugin/aws_sns/version.rb
123
- homepage: https://github.com/joshdholtz/fastlane-plugin-aws_sns
123
+ homepage: https://github.com/fastlane-community/fastlane-plugin-aws_sns
124
124
  licenses:
125
125
  - MIT
126
126
  metadata: {}
127
- post_install_message:
127
+ post_install_message:
128
128
  rdoc_options: []
129
129
  require_paths:
130
130
  - lib
@@ -139,10 +139,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
139
  - !ruby/object:Gem::Version
140
140
  version: '0'
141
141
  requirements: []
142
- rubyforge_project:
143
- rubygems_version: 2.5.2
144
- signing_key:
142
+ rubygems_version: 3.0.3
143
+ signing_key:
145
144
  specification_version: 4
146
145
  summary: Creates AWS SNS platform applications
147
146
  test_files: []
148
- has_rdoc: