diff --git a/app/models/bot/smooch.rb b/app/models/bot/smooch.rb index 765a8363c..136f065c1 100644 --- a/app/models/bot/smooch.rb +++ b/app/models/bot/smooch.rb @@ -835,7 +835,9 @@ def self.save_text_message(message) end else extra = { url: link.url } - pm = ProjectMedia.joins(:media).where('medias.url' => link.url, 'project_medias.team_id' => team.id).last + # Normalized url before query DB + url_from_pender = Link.normalized(link.url, team.get_pender_key) + pm = ProjectMedia.joins(:media).where('medias.url' => url_from_pender, 'project_medias.team_id' => team.id).last end if pm.nil? type = link.nil? ? 'Claim' : 'Link' diff --git a/app/models/concerns/smooch_messages.rb b/app/models/concerns/smooch_messages.rb index 2e8a2d590..140670c39 100644 --- a/app/models/concerns/smooch_messages.rb +++ b/app/models/concerns/smooch_messages.rb @@ -426,12 +426,15 @@ def relate_item_and_caption(message, associated, app_id, author, request_type, a target = self.create_project_media_from_message(message) unless target.nil? smoooch_post_save_message_actions(message, target, app_id, author, request_type, associated_obj) - r = Relationship.new - r.skip_check_ability = true - r.relationship_type = Relationship.suggested_type - r.source_id = associated.id - r.target_id = target.id - r.save! + r_exists = Relationship.where(source_id: associated.id, target_id: target.id).exists? + unless r_exists + r = Relationship.new + r.skip_check_ability = true + r.relationship_type = Relationship.suggested_type + r.source_id = associated.id + r.target_id = target.id + r.save! + end end end