@@ -57,8 +57,15 @@ defmodule Sequin.Aws.SQS do
5757 { :ok , % { "QueueUrl" => queue_url } , _body } ->
5858 { :ok , queue_url }
5959
60- err ->
61- { :error , Error . service ( service: :aws_sqs , message: "Failed to get queue URL" , details: err ) }
60+ { :error , { :unexpected_response , % { body: body } } } ->
61+ if is_binary ( body ) and String . contains? ( body , "The specified queue does not exist" ) do
62+ { :error , Error . not_found ( entity: :sqs_queue ) }
63+ else
64+ { :error , Error . service ( service: :aws_sqs , message: "Failed to get queue URL" , details: inspect ( body ) ) }
65+ end
66+
67+ { :error , error } ->
68+ { :error , Error . service ( service: :aws_sqs , message: "Failed to get queue URL" , details: error ) }
6269 end
6370 end
6471
@@ -175,18 +182,16 @@ defmodule Sequin.Aws.SQS do
175182 @ spec delete_queue ( Client . t ( ) , String . t ( ) , String . t ( ) ) :: :ok | { :error , Error . t ( ) }
176183 def delete_queue ( % Client { } = client , account_id , queue_name ) do
177184 case get_queue_url ( client , account_id , queue_name ) do
178- { :error , { :unexpected_response , % { body: body , status_code: 400 } } } ->
179- if String . contains? ( body , "The specified queue does not exist" ) do
180- { :error , Error . not_found ( entity: :sqs_queue ) }
181- else
182- { :error , Error . service ( service: :aws_sqs , message: "Failed to delete queue" , code: "400" ) }
183- end
184-
185185 { :ok , queue_url } ->
186- with { :ok , _ , % { status_code: 200 } } <-
187- AWS.SQS . delete_queue ( client , % { "QueueUrl" => queue_url } ) do
186+ with { :ok , _ , % { status_code: 200 } } <- AWS.SQS . delete_queue ( client , % { "QueueUrl" => queue_url } ) do
188187 :ok
189188 end
189+
190+ { :error , % Error.NotFoundError { } = error } ->
191+ { :error , error }
192+
193+ { :error , error } ->
194+ { :error , Error . service ( service: :aws_sqs , message: "Failed to delete queue" , details: error ) }
190195 end
191196 end
192197
0 commit comments