neeto-data-sync 0.2.4

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 6eab8ec4c365903ffcc512eb3df7340e72fb9ccb03633f92f2c03179ba6c2031
4
+ data.tar.gz: bb59f2180fa6d8dca627c20e1675320cb7df2645c844d55f7d51392d1cd8515d
5
+ SHA512:
6
+ metadata.gz: 77ae8037b1c279326667c02cc2c2e63423dc7d27d2ede0f736f1bfc4d165a9f2a04ca634038131600f3ce95ad51bdde865270c7dd776c3c8e4eb1ef038fc7f33
7
+ data.tar.gz: 344f218e44d4225093d186af2c0732dd33bf147295a41567f1c3cfbc8b89e2195a76c6b713698f6b8d91c03bd03e62ccb58544cc50aedd01e1f48ed9dd6b8197
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module NeetoDataSync
4
+ VERSION = "0.2.4"
5
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module NeetoDataSync
4
+ class DataSyncProcessor < SQSProcessor::Processor
5
+ def handle_message(payload)
6
+ unless NeetoDataSync.configured? && NeetoDataSync.validate_configuration
7
+ logger.warn("NeetoDataSync is not properly configured. Skipping message processing.")
8
+ return { status: 'skipped', reason: 'configuration_missing' }
9
+ end
10
+
11
+ if payload['user']
12
+ Sync::UserProcessor.new(payload).process
13
+ else
14
+ Sync::OrganizationProcessor.new(payload).process
15
+ end
16
+
17
+ true
18
+ end
19
+
20
+ private
21
+
22
+ def logger
23
+ NeetoDataSync.configuration&.logger || Rails.logger
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "active_support"
4
+ require "sqs_processor"
5
+ require_relative "neeto_data_sync/version"
6
+ require_relative "neeto_data_sync/worker"
7
+
8
+
9
+ module NeetoDataSync
10
+ class Error < StandardError; end
11
+ class ConfigurationError < Error; end
12
+
13
+ def self.configure
14
+ yield(configuration)
15
+ validate_configuration
16
+ end
17
+
18
+ def self.configuration
19
+ @configuration ||= begin
20
+ Configuration.new
21
+ end
22
+ end
23
+
24
+ def self.configured?
25
+ !@configuration.nil?
26
+ end
27
+
28
+ def self.validate_configuration
29
+ return unless configured?
30
+
31
+ missing_configs = []
32
+ missing_configs << "AWS region" if configuration.aws_region.nil?
33
+ missing_configs << "AWS access key ID" if configuration.aws_access_key_id.nil?
34
+ missing_configs << "AWS secret access key" if configuration.aws_secret_access_key.nil?
35
+ missing_configs << "Queue URL" if configuration.queue_url.nil?
36
+
37
+ if missing_configs.any?
38
+ warning_message = "NeetoDataSync: Missing required configuration: #{missing_configs.join(', ')}. The gem will be disabled."
39
+ if defined?(Rails) && Rails.logger
40
+ Rails.logger.warn(warning_message)
41
+ end
42
+ return false
43
+ end
44
+
45
+ true
46
+ end
47
+
48
+ class Configuration
49
+ attr_accessor :aws_region, :aws_access_key_id, :aws_secret_access_key,
50
+ :queue_url, :logger
51
+
52
+ def initialize
53
+ # Configuration will be set via the configure block in Rails initializer
54
+ end
55
+ end
56
+ end
metadata ADDED
@@ -0,0 +1,117 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: neeto-data-sync
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.4
5
+ platform: ruby
6
+ authors:
7
+ - Neeto
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: sqs_processor
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: aws-sdk-sqs
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '1.0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '1.0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: activesupport
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '6.0'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '6.0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: rspec
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '3.0'
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '3.0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: rubocop
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '1.0'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '1.0'
82
+ description: A gem that provides data synchronization capabilities for Neeto products
83
+ using SQS
84
+ email:
85
+ - support@neeto.com
86
+ executables: []
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - lib/neeto_data_sync.rb
91
+ - lib/neeto_data_sync/version.rb
92
+ - lib/neeto_data_sync/worker.rb
93
+ homepage: https://github.com/bigbinary/neeto-data-sync
94
+ licenses:
95
+ - MIT
96
+ metadata:
97
+ homepage_uri: https://github.com/bigbinary/neeto-data-sync
98
+ source_code_uri: https://github.com/bigbinary/neeto-data-sync
99
+ changelog_uri: https://github.com/bigbinary/neeto-data-sync/blob/main/CHANGELOG.md
100
+ rdoc_options: []
101
+ require_paths:
102
+ - lib
103
+ required_ruby_version: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ version: 2.7.0
108
+ required_rubygems_version: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ requirements: []
114
+ rubygems_version: 3.6.9
115
+ specification_version: 4
116
+ summary: Data synchronization gem for Neeto products
117
+ test_files: []