@@ -153,6 +153,8 @@ module SGXcatapult
if response.code == '200'
params = JSON.parse response.body
if params['numberState'] == 'enabled'
+ num_key = "catapult_num-" + phone_num
+
bare_jid = i.from.to_s.split('/', 2)[0]
cred_key = "catapult_cred-" + bare_jid
@@ -160,6 +162,15 @@ module SGXcatapult
conn = Hiredis::Connection.new
conn.connect(ARGV[4], ARGV[5].to_i)
+ conn.write ["EXISTS", num_key]
+ if conn.read == 1
+ # TODO: add txt re num exists
+ write_to_stream error_msg(
+ i.reply, qn, :cancel,
+ 'conflict')
+ next
+ end
+
conn.write ["EXISTS", cred_key]
if conn.read == 1
# TODO: add txt re already exist
@@ -169,6 +180,16 @@ module SGXcatapult
next
end
+ conn.write ["RPUSH",num_key,bare_jid]
+ if conn.read != 1
+ # TODO: catch/relay RuntimeError
+ # TODO: add txt re push failure
+ write_to_stream error_msg(
+ i.reply, qn, :cancel,
+ 'internal-server-error')
+ next
+ end
+
conn.write ["RPUSH",cred_key,user_id]
conn.write ["RPUSH",cred_key,api_token]
conn.write ["RPUSH",cred_key,api_secret]