iaa 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cbfdc4c99664b9240ec86476fe451d3b31908463
4
- data.tar.gz: fcbf2bc976782fd71608493c588d484fb9993ca0
3
+ metadata.gz: 005ba6a20dff1422fdea89b8494f77d6ad29d4a5
4
+ data.tar.gz: 48686644bc8ef965d8640617aed3e5c989d7e459
5
5
  SHA512:
6
- metadata.gz: 0879a001ae584ff43a4fa34abd8cbd4d410dad31d7a3d781c04651e3db8e9d388a3c4f76569734badfa4a2e9e2a16129119f60b7567795d6552a54f9b91647ae
7
- data.tar.gz: 442210b053b480f0614cca0055da3df30386ca682aa5038f37dfb1e7a0c2b626a0ab57a89c780488702d1641473b5979d41e2f5f69f215ed81dc3d6c6ca2770b
6
+ metadata.gz: b5bf4dfd816e1a569e8536d20daae82d7e2fab57cd7f957fcc418bb7006fcecf65a699b17d4a8f5813c1967128f94f6868ea9b79128585b727dfd19c04ed3171
7
+ data.tar.gz: 51933649d694db24e526c481cf92b00b3beb3e6519fc216981822f2e9826c074ad702ab9a06a028d7b2385fa929cd3e0c663f4792546cb61664d8f2a941179f8
data/.gitignore CHANGED
@@ -6,5 +6,4 @@
6
6
  /doc/
7
7
  /pkg/
8
8
  /spec/reports/
9
- /tmp/*
10
9
  !/tmp/humans.txt
data/README.md CHANGED
@@ -78,6 +78,44 @@ You could also use these JSON files to create IAA form fillers in other language
78
78
 
79
79
  The PDFs in `lib/pdfs` have been modified somewhat from their originals. Visually, nothing has changed, but a few of the underlying form field names have been changed. For example, one field, "GT & C #" caused a lot of trouble because of that pesky ampersand. So, the field value in the PDF was changed to "gt_and_c_number".
80
80
 
81
+ ### API Server
82
+
83
+ This gem includes an API server! It's just a small, mountable Sinatra application.
84
+
85
+ To set up, just mount the server inside of a Rails app, for example--or just run it standalone:
86
+
87
+ Create a `Gemfile`:
88
+
89
+ ```ruby
90
+ source 'https://rubygems.org'
91
+
92
+ gem 'iaa'
93
+ gem 'thin'
94
+ ```
95
+
96
+ Run `bundle`.
97
+
98
+ Create a `config.ru`:
99
+
100
+ ```ruby
101
+ require 'bundler/setup'
102
+ require 'iaa'
103
+
104
+ run Rack::URLMap.new(
105
+ '/iaa' => IAA::Server
106
+ )
107
+ ```
108
+
109
+ And run with:
110
+
111
+ ```sh
112
+ $ bundle exec thin start
113
+ ```
114
+
115
+ #### POST /7600a
116
+
117
+ POST some JSON of keys and values that match the attributes in `lib/mappings/7600a.json` and get back a PDF response.
118
+
81
119
  ## Docker Compose Usage
82
120
 
83
121
  1. Make sure that [Docker Compose](https://docs.docker.com/compose/install/) is installed.
data/iaa.gemspec CHANGED
@@ -29,8 +29,11 @@ Gem::Specification.new do |spec|
29
29
  spec.add_runtime_dependency "pdf-forms"
30
30
  spec.add_runtime_dependency "cliver"
31
31
  spec.add_runtime_dependency "pry"
32
+ spec.add_runtime_dependency "sinatra"
32
33
 
33
34
  spec.add_development_dependency "bundler", "~> 1.10"
34
35
  spec.add_development_dependency "rake", "~> 10.0"
35
36
  spec.add_development_dependency "rspec"
37
+ spec.add_development_dependency "rack-test"
38
+ spec.add_development_dependency "webmock"
36
39
  end
data/lib/iaa/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module IAA
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
data/lib/iaa.rb CHANGED
@@ -6,6 +6,7 @@ require 'pry'
6
6
  require 'base_form'
7
7
  require 'form_7600a'
8
8
  require 'form_7600b'
9
+ require 'server'
9
10
 
10
11
  module IAA
11
12
  module Util
@@ -132,7 +132,7 @@
132
132
  },
133
133
  {
134
134
  "name": "Cumulative Funding Changes3",
135
- "attribute_name": "cumulative_funding_changes1",
135
+ "attribute_name": "cumulative_funding_changes3",
136
136
  "type": "Text",
137
137
  "value": null,
138
138
  "options": null
@@ -202,7 +202,7 @@
202
202
  },
203
203
  {
204
204
  "name": "Total Modified Obligation3",
205
- "attribute_name": "total_modified_obligation2",
205
+ "attribute_name": "total_modified_obligation3",
206
206
  "type": "Text",
207
207
  "value": null,
208
208
  "options": null
@@ -1247,7 +1247,7 @@
1247
1247
  },
1248
1248
  {
1249
1249
  "name": "Additional POC Requesting Agency Name1",
1250
- "attribute_name": "additional_point_of_contact_requesting_agency_name2",
1250
+ "attribute_name": "additional_point_of_contact_requesting_agency_name1",
1251
1251
  "type": "Text",
1252
1252
  "value": null,
1253
1253
  "options": null
data/lib/server.rb ADDED
@@ -0,0 +1,34 @@
1
+ require 'sinatra'
2
+ require 'json'
3
+ require 'tempfile'
4
+
5
+ module IAA
6
+ class Server < Sinatra::Base
7
+ post '/7600a' do
8
+ # Get the params
9
+ json_params = JSON.parse(request.body.read)
10
+
11
+ # Create and fill the form
12
+ form = IAA::Form7600A.new
13
+ json_params.each_pair do |key, value|
14
+ form.send("#{key}=", value)
15
+ end
16
+
17
+ # Save the form
18
+ file = form.save
19
+
20
+ # Get the bytes
21
+ bytes = File.read(file)
22
+
23
+ # Delete the file
24
+ File.delete(file)
25
+
26
+ # Put the bytes in a tempfile
27
+ tmpfile = Tempfile.new('response.pdf')
28
+ tmpfile.write(bytes)
29
+
30
+ # Let the user download the file
31
+ send_file(tmpfile)
32
+ end
33
+ end
34
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iaa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alan deLevie
@@ -53,6 +53,20 @@ dependencies:
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
55
  version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: sinatra
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
56
70
  - !ruby/object:Gem::Dependency
57
71
  name: bundler
58
72
  requirement: !ruby/object:Gem::Requirement
@@ -95,6 +109,34 @@ dependencies:
95
109
  - - ">="
96
110
  - !ruby/object:Gem::Version
97
111
  version: '0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: rack-test
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: webmock
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
98
140
  description: Helps you create IAAs
99
141
  email:
100
142
  - alan.delevie@gsa.gov
@@ -124,7 +166,8 @@ files:
124
166
  - lib/mappings/7600B.json
125
167
  - lib/pdfs/7600A.pdf
126
168
  - lib/pdfs/7600B.pdf
127
- - tmp/humans.txt
169
+ - lib/server.rb
170
+ - tmp/7600A_1435792676.pdf
128
171
  homepage: https://github.com/18f/iaa-gem
129
172
  licenses:
130
173
  - See LICENSE.md
File without changes