Class: Sendgo::SenderRegistrationService
- Inherits:
-
Object
- Object
- Sendgo::SenderRegistrationService
- Defined in:
- lib/sendgo/management.rb
Overview
발신번호(문자) 등록 · 심사 접수.
v2 전용. 카카오와 달리 개인 계정 애플리케이션도 쓸 수 있다.
등록하면 곧바로 쓸 수 있는 게 아니라 PENDING 으로 접수되고, 운영자
승인 후 SUCCESS 가 된다.
Constant Summary collapse
- RESOURCE =
"senders"- REGISTRABLE_TYPES =
API 로 접수할 수 있는 발신번호 유형 — 전부다.
%w[ personal_mobile personal_other team_main team_representative_mobile team_emp_mobile team_other_company ].freeze
- IDENTITY_DOCUMENT_TYPES =
신분증 사본(+identityDocument+)이 필요한 유형.
콘솔은 PASS 본인인증을 쓰지만 API 는 신분증 사본을 받아 sendgo 운영자가 직접 확인한다. 이 경로로 접수된 건은 자동 승인되지 않는다.
%w[personal_mobile team_representative_mobile team_emp_mobile].freeze
Instance Method Summary collapse
-
#create(sender_alias:, sender_number_type:, phone_e164:, files:, **extra) ⇒ Object
등록 신청.
-
#delete(sender_key) ⇒ Object
삭제.
-
#initialize(http:) ⇒ SenderRegistrationService
constructor
A new instance of SenderRegistrationService.
-
#list ⇒ Object
목록 조회.
-
#number_types ⇒ Object
계정 종류에 맞는 발신번호 유형과 유형별 필수 서류.
-
#show(sender_key) ⇒ Object
상세 조회.
-
#update(sender_key, sender_alias:, primary_type: nil) ⇒ Object
별칭 변경 / 기본 발신 지정.
-
#validate(phone_e164, sender_number_type) ⇒ Object
등록 전 형식·중복 확인.
Constructor Details
#initialize(http:) ⇒ SenderRegistrationService
Returns a new instance of SenderRegistrationService.
324 325 326 |
# File 'lib/sendgo/management.rb', line 324 def initialize(http:) @http = http end |
Instance Method Details
#create(sender_alias:, sender_number_type:, phone_e164:, files:, **extra) ⇒ Object
등록 신청. 서류가 붙으므로 multipart 로 나간다.
files 에는 최소한 +csuCertificate+(통신서비스 이용증명원)가 있어야 한다.
휴대폰 계열은 +identityDocument+(신분증 사본)가, team_other_company 는
수임·위임 서류가 더 필요하다 — #number_types 로 확인한다.
358 359 360 361 362 363 364 365 366 |
# File 'lib/sendgo/management.rb', line 358 def create(sender_alias:, sender_number_type:, phone_e164:, files:, **extra) fields = { senderAlias: sender_alias, senderNumberType: sender_number_type, phoneE164: phone_e164 }.merge(Sendgo.camelize_keys(extra)) @http.post_multipart(RESOURCE, fields, files) end |
#delete(sender_key) ⇒ Object
삭제. 기본 발신번호를 지우면 남은 번호 중 하나가 기본으로 승계된다.
377 378 379 |
# File 'lib/sendgo/management.rb', line 377 def delete(sender_key) @http.delete("#{RESOURCE}/#{CGI.escape(sender_key)}") end |
#list ⇒ Object
목록 조회. 심사 상태(+status+)를 여기서 확인한다.
329 330 331 |
# File 'lib/sendgo/management.rb', line 329 def list @http.get(RESOURCE) end |
#number_types ⇒ Object
계정 종류에 맞는 발신번호 유형과 유형별 필수 서류.
유형별 +identityVerification+(+none+/+document+)과 필요한 서류 목록을 준다.
341 342 343 |
# File 'lib/sendgo/management.rb', line 341 def number_types @http.get("#{RESOURCE}/number-types") end |
#show(sender_key) ⇒ Object
상세 조회.
334 335 336 |
# File 'lib/sendgo/management.rb', line 334 def show(sender_key) @http.get("#{RESOURCE}/#{CGI.escape(sender_key)}") end |
#update(sender_key, sender_alias:, primary_type: nil) ⇒ Object
별칭 변경 / 기본 발신 지정. 번호와 심사 상태는 바꿀 수 없다.
369 370 371 372 373 374 |
# File 'lib/sendgo/management.rb', line 369 def update(sender_key, sender_alias:, primary_type: nil) body = { senderAlias: sender_alias } body[:primaryType] = primary_type unless primary_type.nil? @http.patch("#{RESOURCE}/#{CGI.escape(sender_key)}", body) end |
#validate(phone_e164, sender_number_type) ⇒ Object
등록 전 형식·중복 확인.
응답의 duplicationReasonRequired 가 true 면 create 에
duplication_reason 을 함께 넣어야 한다.
349 350 351 |
# File 'lib/sendgo/management.rb', line 349 def validate(phone_e164, sender_number_type) @http.post("#{RESOURCE}/validate", { phoneE164: phone_e164, senderNumberType: sender_number_type }) end |