eco-helpers 1.0.10 → 1.0.11

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
2
  SHA256:
3
- metadata.gz: 6f4a253f64d4c39f9140714f310dbf8f7c5ef50f73eec612ee3e28287fd5d8f7
4
- data.tar.gz: c33abac6439f5ceb17cf3a74b4e5482b0f181d9ac65bea4aa92d9f1588f9dbfe
3
+ metadata.gz: b3d434c6d214ef71d15aa9c2d334b9e5545c057f8fd9cb702f27080ad7b96a57
4
+ data.tar.gz: 35d9e89911c0aee5f0550eaabcaa6aecdcfd5a6bf97f6d8a53db416fcc957535
5
5
  SHA512:
6
- metadata.gz: 786f4e1d4d76ca83034210e73de8db11b3c0288362badb5a2befeba88f81fbc259e4176c956400a96bfe08367b8f17c8465ff8c8f828b1a9ada50a7e43a1b081
7
- data.tar.gz: 29929079f265c83762e35da551996a2600d1baad9c3b512da1192c2ee87f83972a43cd1d2b0cd4ab77581550914965d1d33f0248316bf73b6c507cf55b04143f
6
+ metadata.gz: 24eb7ad2d08a96c2a171e1b5bd41d988f561bbafc764f91df3152a36dec887c456600356fab112d7b95f476eccd742f187a9f3adca19fc05464a85cf34e95a74
7
+ data.tar.gz: 05a8af94fcf4e966868c447d0e907424c9e615ad942126fc50e6ed53abb7025098edbaea922c060b2e87cadde1e0296dc54f51ed6d71a1198fece5e1753c0766
@@ -27,6 +27,9 @@ module Eco
27
27
  DateParser.new(self).process
28
28
  MultiParser.new(self).process
29
29
 
30
+ # ALWAYS PRESENT FIELDS
31
+ SendInvitesParser.new(self).process
32
+
30
33
  # FORMAT PARSER
31
34
  CSVParser.new(self).process
32
35
  end
@@ -42,4 +45,5 @@ require_relative 'default_parsers/boolean_parser'
42
45
  require_relative 'default_parsers/numeric_parser'
43
46
  require_relative 'default_parsers/date_parser'
44
47
  require_relative 'default_parsers/multi_parser'
48
+ require_relative 'default_parsers/send_invites_parser'
45
49
  require_relative 'default_parsers/csv_parser'
@@ -0,0 +1,29 @@
1
+ module Eco
2
+ module API
3
+ module Common
4
+ module People
5
+ class DefaultParsers
6
+ class SendInvitesParser < People::BaseParser
7
+
8
+ def process
9
+ @parsers.define_attribute("send_invites") do |parser|
10
+ parser.def_parser do |hash|
11
+ value = hash["send_invites"]
12
+ value.is_a?(Array) ? value.map { |v| truthy(v) } : truthy(value)
13
+ end.def_serializer do |person|
14
+ person.account && person.account.send_invites&.to_s
15
+ end
16
+ end
17
+ end
18
+
19
+ private
20
+
21
+ def truthy (value)
22
+ %w[true y yes x].include?(value.to_s&.downcase)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -27,6 +27,17 @@ module Eco
27
27
  attr('external_id', *args).first
28
28
  end
29
29
 
30
+ def export(filename)
31
+ CSV.open(filename, "w") do |csv|
32
+ entry = self.first
33
+ header = entry.internal_entry.keys
34
+ csv << header
35
+ self.each do |entry|
36
+ csv << entry.internal_entry.values
37
+ end
38
+ end
39
+ end
40
+
30
41
  def entry(id: nil, external_id: nil, email: nil)
31
42
  init_caches
32
43
  pers = nil
@@ -234,7 +234,7 @@ module Eco
234
234
 
235
235
  def _set_to_account(person, attr, value)
236
236
  return if !person.account
237
- multiple = ["policy_group_ids"].include?(attr)
237
+ multiple = ["policy_group_ids", "login_provider_ids"].include?(attr)
238
238
  if multiple
239
239
  value = @person_parser.parse(:multiple, value)
240
240
  # preserve previous order
@@ -10,7 +10,7 @@ module Eco
10
10
  # @attr_reader all_attrs [Array<String>] all the internal name attributes, including _core_, _account_ and _details_.
11
11
  class PersonParser
12
12
  CORE_ATTRS = ["id", "external_id", "email", "name", "supervisor_id", "filter_tags"]
13
- ACCOUNT_ATTRS = ["policy_group_ids", "default_tag"]
13
+ ACCOUNT_ATTRS = ["policy_group_ids", "default_tag", "send_invites", "landing_page_id", "login_provider_ids"]
14
14
  TYPE = [:select, :text, :date, :number, :phone_number, :boolean, :multiple]
15
15
  FORMAT = [:csv, :xml, :json]
16
16
 
@@ -18,7 +18,7 @@ module Eco
18
18
  attr_reader :details_attrs, :all_attrs
19
19
  attr_reader :defined_attrs
20
20
  attr_reader :patch_version
21
-
21
+
22
22
  # @example Example of usage:
23
23
  # person_parser = PersonParser.new(schema: schema)
24
24
  # person_parser.define_attribute("example") do |parser|
@@ -9,6 +9,7 @@ module Eco
9
9
  attr_reader :config, :session
10
10
  attr_reader :api #, :host, :version
11
11
  attr_reader :file_manager, :logger
12
+ attr_reader :mailer, :s3uploader
12
13
 
13
14
  alias_method :fm, :file_manager
14
15
 
@@ -22,9 +23,18 @@ module Eco
22
23
  @session = session
23
24
  @file_manager = Eco::API::Common::Session::FileManager.new(enviro: self)
24
25
  @logger = Eco::API::Common::Session::Logger.new(enviro: self)
26
+
25
27
  new_api
26
28
  end
27
29
 
30
+ def mailer
31
+ @mailer ||= Eco::API::Common::Session::Mailer.new(enviro: self)
32
+ end
33
+
34
+ def s3upoader
35
+ @s3uploader ||= Eco::API::Common::Session::S3Uploader.new(enviro: self)
36
+ end
37
+
28
38
  def new_api
29
39
  return nil unless config.apis.active_api
30
40
 
@@ -40,18 +40,16 @@ module Eco
40
40
  end
41
41
 
42
42
  def mail_to(**kargs)
43
- @mailer ||= Eco::API::Common::Session::Mailer.new(enviro: enviro)
44
- @mailer.mail(**kargs)
43
+ mail.mail(**kargs)
45
44
  end
46
45
 
47
46
  def s3upload(content: nil, file: nil, directory: nil)
48
- @s3uploader ||= Eco::API::Common::Session::S3Uploader.new(enviro: enviro)
49
47
  if content && file
50
- @s3uploader.upload(file, content)
48
+ s3uploader.upload(file, content)
51
49
  elsif file
52
- @s3uploader.upload_file(file)
50
+ s3uploader.upload_file(file)
53
51
  elsif directory
54
- @s3uploader.upload_directory(directory)
52
+ s3uploader.upload_directory(directory)
55
53
  else
56
54
  logger.error("To use Session.s3upload, you must specify either directory, file or content and file name")
57
55
  end
@@ -1,3 +1,3 @@
1
1
  module Eco
2
- VERSION = "1.0.10"
2
+ VERSION = "1.0.11"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eco-helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.10
4
+ version: 1.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Segura
@@ -245,6 +245,7 @@ files:
245
245
  - lib/eco/api/common/people/default_parsers/multi_parser.rb
246
246
  - lib/eco/api/common/people/default_parsers/numeric_parser.rb
247
247
  - lib/eco/api/common/people/default_parsers/select_parser.rb
248
+ - lib/eco/api/common/people/default_parsers/send_invites_parser.rb
248
249
  - lib/eco/api/common/people/entries.rb
249
250
  - lib/eco/api/common/people/entry_factory.rb
250
251
  - lib/eco/api/common/people/person_attribute_parser.rb