From 2bef215fc6831dd40ce1a1dbd4a905c41a3540ce Mon Sep 17 00:00:00 2001 From: taitus Date: Fri, 18 Dec 2020 09:39:02 +0100 Subject: [PATCH] Add method to generate subscriptions_token Note that we only update a user with a new token if the user has not yet been assigned one. --- app/models/user.rb | 4 ++++ spec/models/user_spec.rb | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/app/models/user.rb b/app/models/user.rb index 0c6e03bfe..0dde87ca7 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -415,6 +415,10 @@ class User < ApplicationRecord devise_mailer.send(notification, self, *args).deliver_later end + def add_subscriptions_token + update!(subscriptions_token: SecureRandom.base58(32)) if subscriptions_token.blank? + end + private def clean_document_number diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 9c326f846..72acf4f50 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -823,4 +823,22 @@ describe User do expect(other_user_legislation_proposal.reload).to be_hidden end end + + describe "#add_subscriptions_token" do + let(:user) { build(:user, subscriptions_token: nil) } + + it "generates a subscriptions token when the user doesn't have one" do + user.add_subscriptions_token + + expect(user.subscriptions_token).to be_present + end + + it "keeps the existing subscriptions token when the user already has one" do + user.update!(subscriptions_token: "already_set") + + user.add_subscriptions_token + + expect(user.subscriptions_token).to eq "already_set" + end + end end