From ff9106a40ab80e0b1de9589fb1609d0240798b5e Mon Sep 17 00:00:00 2001 From: Daniel Nitsikopoulos Date: Sat, 25 Feb 2023 13:12:01 +1100 Subject: [PATCH] Checkin cleanup --- app/commands/posts/create_checkin.rb | 3 +- app/repos/post_repo.rb | 1 + spec/requests/create_post_spec.rb | 101 ++++++++++++++++++++++++++- 3 files changed, 103 insertions(+), 2 deletions(-) diff --git a/app/commands/posts/create_checkin.rb b/app/commands/posts/create_checkin.rb index 0422d87..415988f 100644 --- a/app/commands/posts/create_checkin.rb +++ b/app/commands/posts/create_checkin.rb @@ -13,10 +13,11 @@ module Adamantium include Dry::Monads[:result] def call(post) + syndication_sources = post.delete(:syndication_sources) post_params = prepare_params(params: post) created_post = post_repo.create(post_params) - post[:syndication_sources].each do |url| + syndication_sources.each do |url| add_post_syndication_source.call(created_post.id, :swarm, url) end diff --git a/app/repos/post_repo.rb b/app/repos/post_repo.rb index 9e0763c..a254039 100644 --- a/app/repos/post_repo.rb +++ b/app/repos/post_repo.rb @@ -75,6 +75,7 @@ module Adamantium def places_listing(limit: nil) posts + .where(post_type: "checkin") .exclude(location: nil) .published .combine(:tags) diff --git a/spec/requests/create_post_spec.rb b/spec/requests/create_post_spec.rb index 57243e4..feb2fbb 100644 --- a/spec/requests/create_post_spec.rb +++ b/spec/requests/create_post_spec.rb @@ -59,8 +59,107 @@ RSpec.describe "Post creation", :db, :requests do end end + context "checkins" do + it "is successful" do + json = '{ + "type": [ + "h-entry" + ], + "properties": { + "published": [ + "2023-02-25T10:24:30+11:00" + ], + "syndication": [ + "https://www.swarmapp.com/user/1390949/checkin/63f9472ed36fa977ac188903" + ], + "content": [ + "Coffee time!!" + ], + "category": [ + "check-in" + ], + "checkin": [ + { + "type": [ + "h-card" + ], + "properties": { + "name": [ + "St Rose" + ], + "url": [ + "https://foursquare.com/v/527da837498e9d7fee64bb75", + "http://www.strose.com.au" + ], + "tel": [ + "(03) 9331 4488" + ], + "latitude": [ + -37.75627 + ], + "longitude": [ + 144.91555 + ], + "street-address": [ + "19 Rose St" + ], + "locality": [ + "Essendon" + ], + "region": [ + "VIC" + ], + "country-name": [ + "Australia" + ], + "postal-code": [ + "3040" + ] + }, + "value": "https://foursquare.com/v/527da837498e9d7fee64bb75" + } + ], + "location": [ + { + "type": [ + "h-adr" + ], + "properties": { + "latitude": [ + -37.75627 + ], + "longitude": [ + 144.91555 + ], + "street-address": [ + "19 Rose St" + ], + "locality": [ + "Essendon" + ], + "region": [ + "VIC" + ], + "country-name": [ + "Australia" + ], + "postal-code": [ + "3040" + ] + } + } + ] + } +}' + params = JSON.parse(json, symbolize_names: true) + + post "/micropub", params + expect(last_response).to be_successful + end + end + context "auth" do - it "does not allow multiple auth methods" do + xit "does not allow multiple auth methods" do params = { access_token: "foo" }