flespi 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.
- checksums.yaml +7 -0
- data/lib/flespi.rb +108 -0
- metadata +44 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 895579e69090d2a8853cfb072c81e0898cb98f3308f695574540cd62c2f8e975
|
4
|
+
data.tar.gz: '053958a7c1cc6ba7d85e530d49b46241743f0d1bfc5b81e1d46469a774b53ab7'
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2721a6b0c1bc5ea23bc6f079ec48805ba996110fdae985b5498d58f47d891e3c00fe77569e9444727b81968cf1e0f356a6d20092e5e987c492ce5cf185058ee1
|
7
|
+
data.tar.gz: d39f9ba44279a4a33ad2cc0b3ebef59cadff0e70bbe533b3b29c184e15f708e229fc7e84914675ff8f5deec0b7bec0315fcccaa4de6d4588c18363cb7634ad8f
|
data/lib/flespi.rb
ADDED
@@ -0,0 +1,108 @@
|
|
1
|
+
class Flespi
|
2
|
+
require 'json'
|
3
|
+
require 'net/http'
|
4
|
+
require 'uri'
|
5
|
+
|
6
|
+
# Variables
|
7
|
+
attr_accessor :flespi_token, :debug
|
8
|
+
|
9
|
+
# Class constructor
|
10
|
+
def initialize(flespi_token, debug= false)
|
11
|
+
self.debug = debug
|
12
|
+
self.flespi_token = flespi_token
|
13
|
+
end
|
14
|
+
|
15
|
+
def get(url)
|
16
|
+
uri = URI.parse("https://flespi.io#{url}")
|
17
|
+
|
18
|
+
if self.debug
|
19
|
+
puts "================ FLESPI REQUEST ================"
|
20
|
+
puts "Request: GET https://flespi.io#{url}"
|
21
|
+
puts "================================================"
|
22
|
+
end
|
23
|
+
|
24
|
+
request = Net::HTTP::Get.new(uri)
|
25
|
+
|
26
|
+
return self.validate_response(self.make_request(request, uri))
|
27
|
+
end
|
28
|
+
|
29
|
+
def create(url, parameters)
|
30
|
+
uri = URI.parse("https://flespi.io#{url}")
|
31
|
+
|
32
|
+
if self.debug
|
33
|
+
puts "================ FLESPI REQUEST ================"
|
34
|
+
puts "Request: POST https://flespi.io#{url}"
|
35
|
+
puts "================================================"
|
36
|
+
end
|
37
|
+
|
38
|
+
request = Net::HTTP::Post.new(uri)
|
39
|
+
|
40
|
+
return self.validate_response(self.make_request(request, uri, parameters))
|
41
|
+
end
|
42
|
+
|
43
|
+
def update(url, parameters)
|
44
|
+
uri = URI.parse("https://flespi.io#{url}")
|
45
|
+
|
46
|
+
if self.debug
|
47
|
+
puts "================ FLESPI REQUEST ================"
|
48
|
+
puts "Request: PUT https://flespi.io#{url}"
|
49
|
+
puts "================================================"
|
50
|
+
end
|
51
|
+
|
52
|
+
request = Net::HTTP::Put.new(uri)
|
53
|
+
|
54
|
+
return self.validate_response(self.make_request(request, uri, parameters))
|
55
|
+
end
|
56
|
+
|
57
|
+
def delete(url)
|
58
|
+
uri = URI.parse("https://flespi.io#{url}")
|
59
|
+
|
60
|
+
if self.debug
|
61
|
+
puts "================ FLESPI REQUEST ================"
|
62
|
+
puts "Request: DELETE https://flespi.io#{url}"
|
63
|
+
puts "================================================"
|
64
|
+
end
|
65
|
+
|
66
|
+
request = Net::HTTP::Delete.new(uri)
|
67
|
+
|
68
|
+
return self.validate_response(self.make_request(request, uri))
|
69
|
+
end
|
70
|
+
|
71
|
+
protected
|
72
|
+
def make_request(request, uri, parameters = nil)
|
73
|
+
request["Accept"] = "application/json"
|
74
|
+
request["Authorization"] = "FlespiToken #{self.flespi_token}"
|
75
|
+
|
76
|
+
if !parameters.nil?
|
77
|
+
if self.debug
|
78
|
+
puts "================ FLESPI PARAMS ================"
|
79
|
+
puts "Parameters: #{parameters.inspect}"
|
80
|
+
puts "==============================================="
|
81
|
+
end
|
82
|
+
request.body = JSON.dump(parameters)
|
83
|
+
end
|
84
|
+
|
85
|
+
req_options = {
|
86
|
+
use_ssl: uri.scheme == "https",
|
87
|
+
}
|
88
|
+
|
89
|
+
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
90
|
+
http.request(request)
|
91
|
+
end
|
92
|
+
|
93
|
+
return response
|
94
|
+
end
|
95
|
+
|
96
|
+
def validate_response(response)
|
97
|
+
case response.code.to_i
|
98
|
+
when 200
|
99
|
+
return { error: false, message: JSON.parse(response.body) }
|
100
|
+
when 400
|
101
|
+
return { error: true, message: "Invalid parameters" }
|
102
|
+
when 401
|
103
|
+
return { error: true, message: "Invalid flespi token" }
|
104
|
+
else
|
105
|
+
return { error: true, message: "Flespi internal server error" }
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
metadata
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: flespi
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Golden M
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-08-26 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Flespi gem for REST API connection
|
14
|
+
email: developments@goldenmcorp.com
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/flespi.rb
|
20
|
+
homepage: http://rubygems.org/gems/flespi
|
21
|
+
licenses:
|
22
|
+
- CC-BY-NC-4.0
|
23
|
+
metadata: {}
|
24
|
+
post_install_message:
|
25
|
+
rdoc_options: []
|
26
|
+
require_paths:
|
27
|
+
- lib
|
28
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
34
|
+
requirements:
|
35
|
+
- - ">="
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
requirements: []
|
39
|
+
rubyforge_project:
|
40
|
+
rubygems_version: 2.7.7
|
41
|
+
signing_key:
|
42
|
+
specification_version: 4
|
43
|
+
summary: Flespi gem for REST API connection
|
44
|
+
test_files: []
|