apipie-postman 0.0.5 → 0.0.9

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/apipie-postman.rb +31 -31
  3. metadata +29 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 12051d09a70a9da8044d2588c92f6cdb985fcd4b99e382ebc36ab71728341338
4
- data.tar.gz: 9a9be297c53fb5123ffdfafa0a9ba6ad87b543e397b52b46e4bac7c64d4ecea0
3
+ metadata.gz: 0dfa2e61723b3482b30e8c84f3959337683b0ffce10f01503b264c6f46829b89
4
+ data.tar.gz: b7f56bb490b953d318b999d34c3c19336ea0635a1689ca90479ae9d682291b28
5
5
  SHA512:
6
- metadata.gz: 66a0c66df3b0640e36d6fc1bfa674c187ca2cb48f87faa491c7da71611bb71664c74f9f4852f0ab258703f936ece6b69b9c71d2813945feb9a3c0283b8c88947
7
- data.tar.gz: 487e84dfe614518edf4c9a316be590d958e4e1308839798feac32c00f69972e7694f92bada97c2b09d92b0e560370b89a3cbe19535da30936ef21ca29b7c2787
6
+ metadata.gz: f46c44589d2af56f51e09cd31a06a012c3c15ac7bb773fa0f5502a9f5f0b40cf2051e3c238eb54f12b865f4983274479db9c11edfe7da40f0fa338dfabf62712
7
+ data.tar.gz: 97466a90c239c70be1a844e320af7f27e16f602eda28be93887786432beee804969b43a81de6237b7b2d55df27eb614b69b11c73b8cb32c5ec1d078e36e376be
@@ -3,7 +3,6 @@
3
3
  require 'json'
4
4
  require 'faraday'
5
5
 
6
- # General module for gem
7
6
  module ApipiePostman
8
7
  class << self
9
8
  attr_accessor :configuration
@@ -39,26 +38,7 @@ module ApipiePostman
39
38
 
40
39
  docs_hashes.each do |doc_hash|
41
40
  doc_hash.each do |endpoint|
42
- req_body = if endpoint['request_data'].nil?
43
- {}
44
- else
45
- endpoint['request_data']
46
- end
47
-
48
- endpoints_hashes << {
49
- name: endpoint['title'],
50
- request: {
51
- url: "#{self.configuration.base_url}#{endpoint['path']}",
52
- method: endpoint['verb'],
53
- header: [],
54
- body: {
55
- mode: 'raw',
56
- raw: req_body.to_json
57
- },
58
- description: endpoint['title']
59
- },
60
- response: []
61
- }
41
+ endpoints_hashes << create_endpoint_hash(endpoint, endpoint['request_data'] || {})
62
42
  end
63
43
  end
64
44
 
@@ -72,22 +52,42 @@ module ApipiePostman
72
52
  item: endpoints_hashes
73
53
  }
74
54
  }.to_json
55
+
75
56
  headers = {
76
57
  'X-Api-Key': self.configuration.postman_api_key,
77
58
  'Content-Type': 'application/json'
78
59
  }
79
60
 
80
- Faraday.public_send(:post, 'https://api.getpostman.com/collections/', body, headers)
61
+ collection_uid = check_collection_uid_by_name(headers)
62
+
63
+ if collection_uid.nil?
64
+ Faraday.public_send(:post, 'https://api.getpostman.com/collections/', body, headers)
65
+ else
66
+ Faraday.public_send(:put, "https://api.getpostman.com/collections/#{collection_uid['uid']}", body, headers)
67
+ end
68
+ end
81
69
 
82
- # if Object.const_defined?('POSTMAN_COLLECTION_UID') && Object.const_defined?('POSTMAN_COLLECTION_ID')
83
- # Faraday.public_send(:put, "https://api.getpostman.com/collections/#{Object.const_get('POSTMAN_COLLECTION_UID')}", body, headers)
84
- # else
85
- # response = Faraday.public_send(:post, 'https://api.getpostman.com/collections/', body, headers)
70
+ def self.check_collection_uid_by_name(headers)
71
+ response = Faraday.public_send(:get, 'https://api.getpostman.com/collections/', {}, headers)
72
+ JSON.parse(response.body)['collections'].select do |col|
73
+ col['name'] == self.configuration.postman_collection_name
74
+ end.last
75
+ end
86
76
 
87
- # if response.status == 200
88
- # Object.const_set('POSTMAN_COLLECTION_UID', JSON.parse(response.body)['collection']['uid'])
89
- # Object.const_set('POSTMAN_COLLECTION_ID', JSON.parse(response.body)['collection']['id'])
90
- # end
91
- # end
77
+ def self.create_endpoint_hash(endpoint, req_body)
78
+ {
79
+ name: endpoint['title'] == 'Default' ? "#{endpoint['verb']} #{endpoint['path']}" : endpoint['title'],
80
+ request: {
81
+ url: "#{self.configuration.base_url}#{endpoint['path']}",
82
+ method: endpoint['verb'],
83
+ header: [],
84
+ body: {
85
+ mode: 'raw',
86
+ raw: req_body.to_json
87
+ },
88
+ description: endpoint['title']
89
+ },
90
+ response: []
91
+ }
92
92
  end
93
93
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apipie-postman
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Motogna
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-23 00:00:00.000000000 Z
11
+ date: 2021-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -17,6 +17,9 @@ dependencies:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 1.0.0
20
+ - - "~>"
21
+ - !ruby/object:Gem::Version
22
+ version: '1.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -24,6 +27,9 @@ dependencies:
24
27
  - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: 1.0.0
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '1.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: pry
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -52,8 +58,28 @@ dependencies:
52
58
  - - "~>"
53
59
  - !ruby/object:Gem::Version
54
60
  version: '3.10'
61
+ - !ruby/object:Gem::Dependency
62
+ name: rubocop
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '1.22'
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: 1.22.1
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: '1.22'
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: 1.22.1
55
81
  description: Use 'bundle exec apipie-postman' and 'rake apipie_postman' to generate
56
- the docs! More details on https://github.com/VictorMotogna/apipie-postman
82
+ the docs!
57
83
  email: vmotogna@gmail.com
58
84
  executables:
59
85
  - apipie-postman