Skip to content

Commit a2dd660

Browse files
authored
Merge pull request #437 from collectiveidea/remove-particle
Remove particle support
2 parents 69b04cd + 544e499 commit a2dd660

16 files changed

Lines changed: 79 additions & 181 deletions

Gemfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,8 @@ gem "rails", "~> 8.0.1"
77
gem "pg"
88

99
gem "bootsnap"
10+
gem "faraday"
1011
gem "honeybadger"
11-
gem "ostruct" # Required by particlerb
12-
gem "particlerb"
1312
gem "puma"
1413

1514
gem "importmap-rails"
@@ -32,4 +31,5 @@ end
3231

3332
group :test do
3433
gem "rspec-ontap", require: false
34+
gem "webmock"
3535
end

Gemfile.lock

Lines changed: 31 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ GEM
7272
securerandom (>= 0.3)
7373
tzinfo (~> 2.0, >= 2.0.5)
7474
uri (>= 0.13.1)
75+
addressable (2.8.9)
76+
public_suffix (>= 2.0.2, < 8.0)
7577
ansi (1.5.0)
7678
ast (2.4.3)
7779
base64 (0.3.0)
@@ -82,6 +84,9 @@ GEM
8284
builder (3.3.0)
8385
concurrent-ruby (1.3.6)
8486
connection_pool (3.0.2)
87+
crack (1.0.1)
88+
bigdecimal
89+
rexml
8590
crass (1.0.6)
8691
cssbundling-rails (1.4.3)
8792
railties (>= 6.0.0)
@@ -100,31 +105,17 @@ GEM
100105
factory_bot_rails (6.5.1)
101106
factory_bot (~> 6.5)
102107
railties (>= 6.1.0)
103-
faraday (1.8.0)
104-
faraday-em_http (~> 1.0)
105-
faraday-em_synchrony (~> 1.0)
106-
faraday-excon (~> 1.1)
107-
faraday-httpclient (~> 1.0.1)
108-
faraday-net_http (~> 1.0)
109-
faraday-net_http_persistent (~> 1.1)
110-
faraday-patron (~> 1.0)
111-
faraday-rack (~> 1.0)
112-
multipart-post (>= 1.2, < 3)
113-
ruby2_keywords (>= 0.0.4)
114-
faraday-em_http (1.0.0)
115-
faraday-em_synchrony (1.0.1)
116-
faraday-excon (1.1.0)
117-
faraday-httpclient (1.0.1)
118-
faraday-net_http (1.0.2)
119-
faraday-net_http_persistent (1.2.0)
120-
faraday-patron (1.0.0)
121-
faraday-rack (1.0.0)
122-
faraday_middleware (1.2.1)
123-
faraday (~> 1.0)
108+
faraday (2.14.1)
109+
faraday-net_http (>= 2.0, < 3.5)
110+
json
111+
logger
112+
faraday-net_http (3.4.2)
113+
net-http (~> 0.5)
124114
figaro (1.3.0)
125115
thor (>= 0.14.0, < 2)
126116
globalid (1.3.0)
127117
activesupport (>= 6.1)
118+
hashdiff (1.2.1)
128119
honeybadger (6.5.2)
129120
logger
130121
ostruct
@@ -155,12 +146,12 @@ GEM
155146
net-smtp
156147
marcel (1.1.0)
157148
mini_mime (1.1.5)
158-
mini_portile2 (2.8.9)
159149
minitest (6.0.2)
160150
drb (~> 2.0)
161151
prism (~> 1.5)
162152
msgpack (1.8.0)
163-
multipart-post (2.4.1)
153+
net-http (0.9.1)
154+
uri (>= 0.11.1)
164155
net-imap (0.6.3)
165156
date
166157
net-protocol
@@ -171,9 +162,6 @@ GEM
171162
net-smtp (0.5.1)
172163
net-protocol
173164
nio4r (2.7.5)
174-
nokogiri (1.19.1)
175-
mini_portile2 (~> 2.8.2)
176-
racc (~> 1.4)
177165
nokogiri (1.19.1-aarch64-linux-gnu)
178166
racc (~> 1.4)
179167
nokogiri (1.19.1-arm64-darwin)
@@ -187,9 +175,6 @@ GEM
187175
parser (3.3.10.2)
188176
ast (~> 2.4.1)
189177
racc
190-
particlerb (2.1.0)
191-
faraday (>= 0.9.0)
192-
faraday_middleware (>= 0.9.0)
193178
pg (1.6.3)
194179
pg (1.6.3-aarch64-linux)
195180
pg (1.6.3-arm64-darwin)
@@ -206,6 +191,7 @@ GEM
206191
psych (5.3.1)
207192
date
208193
stringio
194+
public_suffix (7.0.5)
209195
puma (7.2.0)
210196
nio4r (~> 2.0)
211197
racc (1.8.1)
@@ -256,6 +242,7 @@ GEM
256242
regexp_parser (2.11.3)
257243
reline (0.6.3)
258244
io-console (~> 0.5)
245+
rexml (3.4.4)
259246
rspec (3.13.2)
260247
rspec-core (~> 3.13.0)
261248
rspec-expectations (~> 3.13.0)
@@ -305,7 +292,6 @@ GEM
305292
rubocop (>= 1.75.0, < 2.0)
306293
rubocop-ast (>= 1.44.0, < 2.0)
307294
ruby-progressbar (1.13.0)
308-
ruby2_keywords (0.0.5)
309295
securerandom (0.4.1)
310296
standard (1.54.0)
311297
language_server-protocol (~> 3.17.0.2)
@@ -336,6 +322,10 @@ GEM
336322
unicode-emoji (4.2.0)
337323
uri (1.1.1)
338324
useragent (0.16.11)
325+
webmock (3.26.1)
326+
addressable (>= 2.8.0)
327+
crack (>= 0.3.2)
328+
hashdiff (>= 0.4.0, < 2.0.0)
339329
websocket-driver (0.8.0)
340330
base64
341331
websocket-extensions (>= 0.1.0)
@@ -345,7 +335,6 @@ GEM
345335
PLATFORMS
346336
aarch64-linux
347337
arm64-darwin
348-
ruby
349338
x86_64-linux
350339
x86_64-linux-musl
351340

@@ -355,11 +344,10 @@ DEPENDENCIES
355344
debug
356345
dockerfile-rails
357346
factory_bot_rails
347+
faraday
358348
figaro
359349
honeybadger
360350
importmap-rails
361-
ostruct
362-
particlerb
363351
pg
364352
propshaft
365353
puma
@@ -369,6 +357,7 @@ DEPENDENCIES
369357
standard
370358
standard-performance
371359
standard-rails
360+
webmock
372361

373362
CHECKSUMS
374363
actioncable (8.0.4) sha256=aadb2bf2977b666cfeaa7dee66fd50e147559f78a8d55f6169e913502475e09f
@@ -382,6 +371,7 @@ CHECKSUMS
382371
activerecord (8.0.4) sha256=bda32c171799e5ca5460447d3b7272ed14447244e2497abf2107f87fc44cbf32
383372
activestorage (8.0.4) sha256=47f312962fc898c1669f20cf7448d19668a5547f4a5f64e59a837d9d3f64a043
384373
activesupport (8.0.4) sha256=894a3a6c7733b5fae5a7df3acd76c4b563f38687df8a04fa3cbd25360f3fe95a
374+
addressable (2.8.9) sha256=cc154fcbe689711808a43601dee7b980238ce54368d23e127421753e46895485
385375
ansi (1.5.0) sha256=5408253274e33d9d27d4a98c46d2998266fd51cba58a7eb9d08f50e57ed23592
386376
ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
387377
base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
@@ -391,6 +381,7 @@ CHECKSUMS
391381
builder (3.3.0) sha256=497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f
392382
concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab
393383
connection_pool (3.0.2) sha256=33fff5ba71a12d2aa26cb72b1db8bba2a1a01823559fb01d29eb74c286e62e0a
384+
crack (1.0.1) sha256=ff4a10390cd31d66440b7524eb1841874db86201d5b70032028553130b6d4c7e
394385
crass (1.0.6) sha256=dc516022a56e7b3b156099abc81b6d2b08ea1ed12676ac7a5657617f012bd45d
395386
cssbundling-rails (1.4.3) sha256=53aecd5a7d24ac9c8fcd92975acd0e830fead4ee4583d3d3d49bb64651946e41
396387
date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0
@@ -402,18 +393,11 @@ CHECKSUMS
402393
erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
403394
factory_bot (6.5.6) sha256=12beb373214dccc086a7a63763d6718c49769d5606f0501e0a4442676917e077
404395
factory_bot_rails (6.5.1) sha256=d3cc4851eae4dea8a665ec4a4516895045e710554d2b5ac9e68b94d351bc6d68
405-
faraday (1.8.0) sha256=d1fb776cf25973b7f52a82b625bb0a009fe30ad6021ef838fb9109bf1ea6d029
406-
faraday-em_http (1.0.0) sha256=7a3d4c7079789121054f57e08cd4ef7e40ad1549b63101f38c7093a9d6c59689
407-
faraday-em_synchrony (1.0.1) sha256=bf3ce45dcf543088d319ab051f80985ea6d294930635b7a0b966563179f81750
408-
faraday-excon (1.1.0) sha256=b055c842376734d7f74350fe8611542ae2000c5387348d9ba9708109d6e40940
409-
faraday-httpclient (1.0.1) sha256=4c8ff1f0973ff835be8d043ef16aaf54f47f25b7578f6d916deee8399a04d33b
410-
faraday-net_http (1.0.2) sha256=63992efea42c925a20818cf3c0830947948541fdcf345842755510d266e4c682
411-
faraday-net_http_persistent (1.2.0) sha256=0b0cbc8f03dab943c3e1cc58d8b7beb142d9df068b39c718cd83e39260348335
412-
faraday-patron (1.0.0) sha256=dc2cd7b340bb3cc8e36bcb9e6e7eff43d134b6d526d5f3429c7a7680ddd38fa7
413-
faraday-rack (1.0.0) sha256=ef60ec969a2bb95b8dbf24400155aee64a00fc8ba6c6a4d3968562bcc92328c0
414-
faraday_middleware (1.2.1) sha256=d45b78c8ee864c4783fbc276f845243d4a7918a67301c052647bacabec0529e9
396+
faraday (2.14.1) sha256=a43cceedc1e39d188f4d2cdd360a8aaa6a11da0c407052e426ba8d3fb42ef61c
397+
faraday-net_http (3.4.2) sha256=f147758260d3526939bf57ecf911682f94926a3666502e24c69992765875906c
415398
figaro (1.3.0) sha256=3d44396f080255663f183572d7aefa419fd8936b6fb5cc30f962345a02781396
416399
globalid (1.3.0) sha256=05c639ad6eb4594522a0b07983022f04aa7254626ab69445a0e493aa3786ff11
400+
hashdiff (1.2.1) sha256=9c079dbc513dfc8833ab59c0c2d8f230fa28499cc5efb4b8dd276cf931457cd1
417401
honeybadger (6.5.2) sha256=b3a4893ced3cf38f63320c307022a4e4ae7106ee1495d1d6afdefc69ca387035
418402
i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
419403
importmap-rails (2.2.3) sha256=7101be2a4dc97cf1558fb8f573a718404c5f6bcfe94f304bf1f39e444feeb16a
@@ -427,24 +411,21 @@ CHECKSUMS
427411
mail (2.9.0) sha256=6fa6673ecd71c60c2d996260f9ee3dd387d4673b8169b502134659ece6d34941
428412
marcel (1.1.0) sha256=fdcfcfa33cc52e93c4308d40e4090a5d4ea279e160a7f6af988260fa970e0bee
429413
mini_mime (1.1.5) sha256=8681b7e2e4215f2a159f9400b5816d85e9d8c6c6b491e96a12797e798f8bccef
430-
mini_portile2 (2.8.9) sha256=0cd7c7f824e010c072e33f68bc02d85a00aeb6fce05bb4819c03dfd3c140c289
431414
minitest (6.0.2) sha256=db6e57956f6ecc6134683b4c87467d6dd792323c7f0eea7b93f66bd284adbc3d
432415
msgpack (1.8.0) sha256=e64ce0212000d016809f5048b48eb3a65ffb169db22238fb4b72472fecb2d732
433-
multipart-post (2.4.1) sha256=9872d03a8e552020ca096adadbf5e3cb1cd1cdd6acd3c161136b8a5737cdb4a8
416+
net-http (0.9.1) sha256=25ba0b67c63e89df626ed8fac771d0ad24ad151a858af2cc8e6a716ca4336996
434417
net-imap (0.6.3) sha256=9bab75f876596d09ee7bf911a291da478e0cd6badc54dfb82874855ccc82f2ad
435418
net-pop (0.1.2) sha256=848b4e982013c15b2f0382792268763b748cce91c9e91e36b0f27ed26420dff3
436419
net-protocol (0.2.2) sha256=aa73e0cba6a125369de9837b8d8ef82a61849360eba0521900e2c3713aa162a8
437420
net-smtp (0.5.1) sha256=ed96a0af63c524fceb4b29b0d352195c30d82dd916a42f03c62a3a70e5b70736
438421
nio4r (2.7.5) sha256=6c90168e48fb5f8e768419c93abb94ba2b892a1d0602cb06eef16d8b7df1dca1
439-
nokogiri (1.19.1) sha256=598b327f36df0b172abd57b68b18979a6e14219353bca87180c31a51a00d5ad3
440422
nokogiri (1.19.1-aarch64-linux-gnu) sha256=cfdb0eafd9a554a88f12ebcc688d2b9005f9fce42b00b970e3dc199587b27f32
441423
nokogiri (1.19.1-arm64-darwin) sha256=dfe2d337e6700eac47290407c289d56bcf85805d128c1b5a6434ddb79731cb9e
442424
nokogiri (1.19.1-x86_64-linux-gnu) sha256=1a4902842a186b4f901078e692d12257678e6133858d0566152fe29cdb98456a
443425
nokogiri (1.19.1-x86_64-linux-musl) sha256=4267f38ad4fc7e52a2e7ee28ed494e8f9d8eb4f4b3320901d55981c7b995fc23
444426
ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912
445427
parallel (1.27.0) sha256=4ac151e1806b755fb4e2dc2332cbf0e54f2e24ba821ff2d3dcf86bf6dc4ae130
446428
parser (3.3.10.2) sha256=6f60c84aa4bdcedb6d1a2434b738fe8a8136807b6adc8f7f53b97da9bc4e9357
447-
particlerb (2.1.0) sha256=3a644d14863e0c0cccb89bd5cacea60117ca6fdc058a7c01c7ba9bfa3bdd6859
448429
pg (1.6.3) sha256=1388d0563e13d2758c1089e35e973a3249e955c659592d10e5b77c468f628a99
449430
pg (1.6.3-aarch64-linux) sha256=0698ad563e02383c27510b76bf7d4cd2de19cd1d16a5013f375dd473e4be72ea
450431
pg (1.6.3-arm64-darwin) sha256=7240330b572e6355d7c75a7de535edb5dfcbd6295d9c7777df4d9dddfb8c0e5f
@@ -455,6 +436,7 @@ CHECKSUMS
455436
prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
456437
propshaft (1.3.1) sha256=9acc664ef67e819ffa3d95bd7ad4c3623ea799110c5f4dee67fa7e583e74c392
457438
psych (5.3.1) sha256=eb7a57cef10c9d70173ff74e739d843ac3b2c019a003de48447b2963d81b1974
439+
public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623
458440
puma (7.2.0) sha256=bf8ef4ab514a4e6d4554cb4326b2004eba5036ae05cf765cfe51aba9706a72a8
459441
racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
460442
rack (3.2.5) sha256=4cbd0974c0b79f7a139b4812004a62e4c60b145cba76422e288ee670601ed6d3
@@ -470,6 +452,7 @@ CHECKSUMS
470452
rdoc (7.2.0) sha256=8650f76cd4009c3b54955eb5d7e3a075c60a57276766ebf36f9085e8c9f23192
471453
regexp_parser (2.11.3) sha256=ca13f381a173b7a93450e53459075c9b76a10433caadcb2f1180f2c741fc55a4
472454
reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835
455+
rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142
473456
rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587
474457
rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d
475458
rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
@@ -482,7 +465,6 @@ CHECKSUMS
482465
rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834
483466
rubocop-rails (2.34.3) sha256=10d37989024865ecda8199f311f3faca990143fbac967de943f88aca11eb9ad2
484467
ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
485-
ruby2_keywords (0.0.5) sha256=ffd13740c573b7301cf7a2e61fc857b2a8e3d3aff32545d6f8300d8bae10e3ef
486468
securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
487469
standard (1.54.0) sha256=7a4b08f83d9893083c8f03bc486f0feeb6a84d48233b40829c03ef4767ea0100
488470
standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b
@@ -498,6 +480,7 @@ CHECKSUMS
498480
unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f
499481
uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6
500482
useragent (0.16.11) sha256=700e6413ad4bb954bb63547fa098dddf7b0ebe75b40cc6f93b8d54255b173844
483+
webmock (3.26.1) sha256=4f696fb57c90a827c20aadb2d4f9058bbff10f7f043bd0d4c3f58791143b1cd7
501484
websocket-driver (0.8.0) sha256=ed0dba4b943c22f17f9a734817e808bc84cdce6a7e22045f5315aa57676d4962
502485
websocket-extensions (0.1.5) sha256=1c6ba63092cda343eb53fc657110c71c754c56484aad42578495227d717a8241
503486
zeitwerk (2.7.5) sha256=d8da92128c09ea6ec62c949011b00ed4a20242b255293dd66bf41545398f73dd

app/interactors/trigger_particle.rb

Lines changed: 0 additions & 5 deletions
This file was deleted.

app/models/device.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,5 @@ def broadcast
4141

4242
def trigger
4343
TriggerWebhook.call(self) if webhook_url
44-
TriggerParticle.call(self) if identifier
4544
end
4645
end

config/application.example.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
# Add application configuration variables here, as shown below.
22
#
33
SECRET_TOKEN: something-random-and-at-least-30-characters
4-
PARTICLE_ACCESS_TOKEN: "abcd5c82f7a646d8337cb575c45d6f9bf2bf12e69"
54
HOST: locahost:3000

config/initializers/particle.rb

Lines changed: 0 additions & 3 deletions
This file was deleted.

particle/Build Light.fzz

-57.4 KB
Binary file not shown.

particle/buildlight.ino

Lines changed: 0 additions & 69 deletions
This file was deleted.

particle/printable-board.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

spec/controllers/api/devices_controller_spec.rb

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,18 @@
1313
end
1414

1515
describe "POST trigger" do
16-
before do
17-
FactoryBot.create(:device, identifier: "abc123")
18-
allow(Particle).to receive(:publish)
19-
end
16+
let!(:device) { FactoryBot.create(:device, identifier: "abc123", webhook_url: "https://localhost/fake/path") }
2017

21-
it "notifies Particle" do
22-
expect(Particle).to receive(:publish).with(name: "build_state", data: "passing", ttl: 3600, private: false)
18+
it "triggers a webhook" do
19+
stub = stub_request(:post, "https://localhost/fake/path")
2320
post :trigger, params: {name: "ready", data: "true", coreid: "abc123", published_at: "2016-06-14T22:06:10.976Z"}
21+
expect(stub).to have_been_requested
2422
end
2523

26-
it "does not notify if there is no device" do
27-
expect(Particle).not_to receive(:publish)
24+
it "does not trigger if there is no device" do
25+
stub = stub_request(:post, "https://localhost/fake/path")
2826
post :trigger, params: {name: "ready", data: "true", coreid: "FAKE", published_at: "2016-06-14T22:06:10.976Z"}
27+
expect(stub).not_to have_been_requested
2928
end
3029
end
3130
end

0 commit comments

Comments
 (0)