ubiquity-envoi 1.0.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.
@@ -0,0 +1,33 @@
1
+ module Ubiquity::Envoi::API::Client::Requests
2
+
3
+ # @see http://www.envoi.io/api/documentation/media-files/media-files-file-add
4
+ class MediaFileAddFile < BaseRequest
5
+
6
+ HTTP_METHOD = :post
7
+ HTTP_PATH = '/media-files/media-file/#{path_arguments[:media_file_id]}/file'
8
+ DEFAULT_PARAMETER_SEND_IN_VALUE = :body
9
+
10
+ PARAMETERS = [
11
+ { :name => :media_file_id, :aliases => [ :id ], :required => true, :send_in => :path },
12
+ { :name => :shape_type, :aliases => [ :type ], :required => true },
13
+ { :name => :shape_label, :aliases => [ :label ], :required => true },
14
+ { :name => :name, :required => true },
15
+ { :name => :mime, :required => true },
16
+ { :name => :path },
17
+ { :name => :size, :required => true },
18
+ { :name => :width },
19
+ { :name => :height },
20
+ { :name => :duration },
21
+ { :name => :setting_id },
22
+ { :name => :storage_key },
23
+ { :name => :storage_info },
24
+ { :name => :uri, :aliases => [ :url ] }
25
+ ]
26
+
27
+ def after_process_parameters
28
+ # arguments.delete(:folderId) if arguments[:folderId].to_s == '0'
29
+ end
30
+
31
+ end
32
+
33
+ end
@@ -0,0 +1,24 @@
1
+ module Ubiquity::Envoi::API::Client::Requests
2
+
3
+ # @see http://www.envoi.io/api/documentation/media-files/media-files-add
4
+ class MediaFileCreate < BaseRequest
5
+
6
+ HTTP_METHOD = :post
7
+ HTTP_PATH = '/media-files/media-file'
8
+ DEFAULT_PARAMETER_SEND_IN_VALUE = :body
9
+
10
+ PARAMETERS = [
11
+ { :name => :name, :required => true },
12
+ { :name => :description, :required => true },
13
+ { :name => :file, :required => true },
14
+ { :name => :metadata },
15
+ { :name => :content_fieldset_id },
16
+ ]
17
+
18
+ def after_process_parameters
19
+ # arguments.delete(:folderId) if arguments[:folderId].to_s == '0'
20
+ end
21
+
22
+ end
23
+
24
+ end
@@ -0,0 +1,26 @@
1
+ module Ubiquity::Envoi::API::Client::Requests
2
+
3
+ # @see http://www.envoi.io/api/documentation/media-files/media-files-update
4
+ class MediaFileUpdate < BaseRequest
5
+
6
+ HTTP_METHOD = :put
7
+ HTTP_PATH = '/media-files/media-file/#{path_arguments[:media_file_id]}'
8
+ DEFAULT_PARAMETER_SEND_IN_VALUE = :body
9
+
10
+ PARAMETERS = [
11
+ { :name => :media_file_id, :aliases => [ :id ], :required => true, :send_in => :path },
12
+ { :name => :name },
13
+ { :name => :description },
14
+ { :name => :file, :required => true },
15
+ { :name => :metadata },
16
+ { :name => :content_fieldset_id },
17
+ { :name => :metadata }
18
+ ]
19
+
20
+ def after_process_parameters
21
+ # arguments.delete(:folderId) if arguments[:folderId].to_s == '0'
22
+ end
23
+
24
+ end
25
+
26
+ end
@@ -0,0 +1,167 @@
1
+ require 'ubiquity/envoi/api/client'
2
+
3
+ module Ubiquity
4
+ module Envoi
5
+ module API
6
+ class Utilities < Client
7
+
8
+ def content_details_metadata_simplify(content_details, options = { })
9
+ metadata = { }
10
+
11
+ groups = content_details['groups'] || [ ]
12
+ groups.each do |group|
13
+ group_label = group['label']
14
+ group_metadata = { }
15
+ values = group['values']
16
+ values.each do |value|
17
+
18
+ value_label = value['label']
19
+ value_value = value['value']
20
+ # display_value = value['display_value']
21
+ #
22
+ # value_field = value['field']
23
+ # value_field_id = value_field['id']
24
+ # value_field_uri = value_field['uri']
25
+
26
+ md_key = value_label
27
+ md_value = value_value
28
+
29
+ group_metadata[md_key] = md_value
30
+ end
31
+ metadata[group_label] = group_metadata
32
+ end
33
+
34
+ metadata
35
+ end
36
+
37
+ def content_fieldset_get_by_name(args = { }, options = { })
38
+ _name = args[:name]
39
+ _response = content_fieldsets
40
+ _results = _response['results']
41
+ _results.find { |fs| fs['name'] == _name }
42
+ end
43
+
44
+ def content_type_by_name(args = { }, options = { })
45
+ # return args.map { |a| content_type_by_name(a, options) } if args.is_a?(Array)
46
+
47
+ # _args = Requests::BaseRequest.process_parameters([ { :name => :name } ], args)
48
+ _args ||= args
49
+ _name = _args[:name]
50
+ _response = content_types_get
51
+ _results = _response['results']
52
+ _results.find { |ct| ct['name'] == _name }
53
+ end
54
+
55
+ def content_field_group_by(metadata_field_group, options = { })
56
+ if metadata_field_group.is_a?(Array)
57
+ return metadata_field_group.map { |mfg| content_field_group_by(mfg, options) }
58
+ end
59
+ md_field_type = options[:metadata_field_type] || 'label' # label, id | field_uri
60
+
61
+ md_out = { }
62
+
63
+ metadata_fieldgroup_values = metadata_field_group['values'] || [ ]
64
+
65
+ metadata_fieldgroup_values.each do |md_field|
66
+ # md_field_id = md_field['id']
67
+ # md_field_label = md_field['label']
68
+ md_field_value = md_field['value']
69
+ md_field_def = md_field['field']
70
+ # md_field_def_type = md_field_def['type']
71
+
72
+ md_field_key = case md_field_type
73
+ when 'id', 'label'
74
+ md_field[md_field_type]
75
+ when 'field_uri'
76
+ md_field_def['uri']
77
+ end
78
+
79
+ # puts %("#{md_field_id}" => "#{md_field_value}",)
80
+ # md_map[md_field_id] = { md_field_label => { :field_id => md_field_id, :group_id => metadata_fieldgroup_id, :field_type => md_field_def_type } }
81
+ md_out[md_field_key] = md_field_value
82
+ end
83
+
84
+ md_out
85
+ end
86
+
87
+ def metadata_by(args = { }, options = { })
88
+ entity = args[:entity] || args[:asset] || args[:project]
89
+ metadata_fieldset = args[:metadata] || entity['metadata'] || { }
90
+ md_field_type = args[:metadata_field_type] || 'label' # label, id | field_uri
91
+
92
+ md_out = { }
93
+
94
+
95
+ # metadata_fieldset_id = metadata_fieldset['fieldset_id']
96
+ metadata_fieldset_values = metadata_fieldset['values'] || { }
97
+ # metadata_fieldgroup = metadata_fieldset_values || { }
98
+ # metadata_fieldgroup_id = metadata_fieldgroup['fieldgroup_id']
99
+ metadata_fieldgroup_values = metadata_fieldset_values['values'] || [ ]
100
+
101
+ metadata_fieldgroup_values.each do |md_field|
102
+ # md_field_id = md_field['id']
103
+ # md_field_label = md_field['label']
104
+ md_field_value = md_field['value']
105
+ md_field_def = md_field['field']
106
+ # md_field_def_type = md_field_def['type']
107
+
108
+ md_field_key = case md_field_type
109
+ when 'id', 'label'
110
+ md_field[md_field_type]
111
+ when 'field_uri'
112
+ md_field_def['uri']
113
+ end
114
+
115
+ # puts %("#{md_field_id}" => "#{md_field_value}",)
116
+ # md_map[md_field_id] = { md_field_label => { :field_id => md_field_id, :group_id => metadata_fieldgroup_id, :field_type => md_field_def_type } }
117
+ md_out[md_field_key] = md_field_value
118
+ end
119
+
120
+ md_out
121
+ end
122
+
123
+
124
+ def self.content_fieldset_to_metadata_map(content_fieldset_details, options = { })
125
+ fieldset_form = content_fieldset_details['form'] || [ ]
126
+ metadata_map = { }
127
+
128
+ key_field_by = options[:key_field_by] || 'label'
129
+
130
+ fieldset_group = { }
131
+ fieldset_form.each do |fsf|
132
+ fieldset_group_id = fsf['id']
133
+ fieldset_group_name = fsf['name']
134
+
135
+ fieldset_group[fieldset_group_id] = fsf
136
+
137
+ field_group_fields = fsf['fields']
138
+ field_group_fields.each do |field|
139
+ field_label = field['label']
140
+ field_name = field['name']
141
+ field_required = field['required']
142
+ field_details = field['field']
143
+ field_type = field_details['type']
144
+
145
+ md_map_field_key = field[key_field_by]
146
+
147
+ metadata_map[md_map_field_key] = {
148
+ :field_name => field_name, :group_name => fieldset_group_name, :field_type => field_type,
149
+ :field_required => field_required, :field_label => field_label
150
+ }
151
+ end
152
+ end
153
+
154
+ return metadata_map
155
+ end
156
+
157
+ # Client
158
+ end
159
+
160
+ # API
161
+ end
162
+
163
+ # Envoi
164
+ end
165
+
166
+ # Ubiquity
167
+ end
@@ -0,0 +1,5 @@
1
+ module Ubiquity
2
+ module Envoi
3
+ VERSION = '1.0.0'
4
+ end
5
+ end
@@ -0,0 +1,35 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'ubiquity/envoi/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'ubiquity-envoi'
8
+ spec.version = Ubiquity::Envoi::VERSION
9
+ spec.authors = ['John Whitson']
10
+ spec.email = ['john.whitson@gmail.com']
11
+
12
+ spec.summary = %q{Gem and Utilities to interact with the Envoi.io platform.}
13
+ spec.description = %q{}
14
+ spec.homepage = "http://www.envoi.io"
15
+ spec.license = 'MIT'
16
+
17
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
18
+ # to allow pushing to a single host or delete this section to allow pushing to any host.
19
+ # if spec.respond_to?(:metadata)
20
+ # spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
21
+ # else
22
+ # raise 'RubyGems 2.0 or newer is required to protect against public gem pushes.'
23
+ # end
24
+
25
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
26
+ f.match(%r{^(test|spec|features)/})
27
+ end
28
+ spec.bindir = 'exe'
29
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
30
+ spec.require_paths = ['lib']
31
+
32
+ spec.add_development_dependency 'bundler', '~> 1.15'
33
+ spec.add_development_dependency 'rake', '~> 10.0'
34
+ spec.add_development_dependency 'minitest', '~> 5.0'
35
+ end
metadata ADDED
@@ -0,0 +1,111 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ubiquity-envoi
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - John Whitson
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2018-05-23 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.15'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.15'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '5.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '5.0'
55
+ description: ''
56
+ email:
57
+ - john.whitson@gmail.com
58
+ executables:
59
+ - ubiquity-envoi
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - ".gitignore"
64
+ - ".ruby-gemset"
65
+ - ".ruby-version"
66
+ - ".travis.yml"
67
+ - CODE_OF_CONDUCT.md
68
+ - Gemfile
69
+ - LICENSE.txt
70
+ - README.md
71
+ - Rakefile
72
+ - bin/console
73
+ - bin/setup
74
+ - exe/ubiquity-envoi
75
+ - lib/ubiquity/envoi.rb
76
+ - lib/ubiquity/envoi/api/client.rb
77
+ - lib/ubiquity/envoi/api/client/http_client.rb
78
+ - lib/ubiquity/envoi/api/client/paginator.rb
79
+ - lib/ubiquity/envoi/api/client/requests.rb
80
+ - lib/ubiquity/envoi/api/client/requests/base_request.rb
81
+ - lib/ubiquity/envoi/api/client/requests/media_file_add_file.rb
82
+ - lib/ubiquity/envoi/api/client/requests/media_file_create.rb
83
+ - lib/ubiquity/envoi/api/client/requests/media_file_update.rb
84
+ - lib/ubiquity/envoi/api/utilities.rb
85
+ - lib/ubiquity/envoi/version.rb
86
+ - ubiquity-envoi.gemspec
87
+ homepage: http://www.envoi.io
88
+ licenses:
89
+ - MIT
90
+ metadata: {}
91
+ post_install_message:
92
+ rdoc_options: []
93
+ require_paths:
94
+ - lib
95
+ required_ruby_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ required_rubygems_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ requirements: []
106
+ rubyforge_project:
107
+ rubygems_version: 2.7.6
108
+ signing_key:
109
+ specification_version: 4
110
+ summary: Gem and Utilities to interact with the Envoi.io platform.
111
+ test_files: []