sendgo-python 1.4.0__tar.gz → 1.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/PKG-INFO +28 -2
  2. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/README.md +27 -1
  3. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/pyproject.toml +1 -1
  4. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo/brand_template.py +2 -1
  5. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo/client.py +2 -0
  6. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo/notice_template.py +2 -0
  7. sendgo_python-1.5.0/sendgo/template_folder.py +25 -0
  8. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo_python.egg-info/PKG-INFO +28 -2
  9. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo_python.egg-info/SOURCES.txt +1 -0
  10. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo/__init__.py +0 -0
  11. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo/_payload.py +0 -0
  12. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo/account.py +0 -0
  13. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo/alimtalk.py +0 -0
  14. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo/brand_message.py +0 -0
  15. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo/exceptions.py +0 -0
  16. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo/friendtalk.py +0 -0
  17. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo/http_client.py +0 -0
  18. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo/kakao_image.py +0 -0
  19. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo/kakao_sender.py +0 -0
  20. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo/message_template.py +0 -0
  21. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo/rejected_number.py +0 -0
  22. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo/sender_registration.py +0 -0
  23. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo/short_url.py +0 -0
  24. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo/sms.py +0 -0
  25. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo/token_manager.py +0 -0
  26. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo/webhook.py +0 -0
  27. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo_python.egg-info/dependency_links.txt +0 -0
  28. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo_python.egg-info/requires.txt +0 -0
  29. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/sendgo_python.egg-info/top_level.txt +0 -0
  30. {sendgo_python-1.4.0 → sendgo_python-1.5.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sendgo-python
3
- Version: 1.4.0
3
+ Version: 1.5.0
4
4
  Summary: Sendgo Python SDK — 카카오 알림톡/브랜드메시지, SMS/LMS/MMS
5
5
  Author-email: Sendgo <dev@sendgo.io>
6
6
  License: MIT
@@ -809,7 +809,7 @@ MIT License © 2026 [Sendgo](https://sendgo.io)
809
809
 
810
810
  *키워드: 카카오 알림톡 Python, 카카오 친구톡 Django, SMS 발송 FastAPI, 알림톡 SDK pip, Python 카카오 API 연동, Django 문자 발송, FastAPI 알림톡, Celery 알림톡 비동기, Sendgo Python SDK*
811
811
 
812
- ## 계정·조직·API 키 관리 (1.4.0)
812
+ ## 계정·조직·API 키 관리 (1.5.0)
813
813
 
814
814
  발송용 `accessKey`/`secretKey`가 없는 단계에서 사용하는 **별도 계정 클라이언트**입니다.
815
815
  콘솔에서 발급받은 에이전트 토큰(`SENDGO_AGENT_TOKEN`)으로 `/api/v2/account`를 호출합니다.
@@ -835,3 +835,29 @@ issued = account.create_api_key({'name': '서버 연동'})
835
835
  지원 메서드: `me`, `organizations`, `select_organization`, `api_keys`, `create_api_key`, `api_key`, `update_api_key`, `delete_api_key`, `issue_token`, `allowed_ips`, `add_allowed_ip`, `delete_allowed_ip`.
836
836
 
837
837
  키 생성 인자는 `name`, 선택적 `ipAddresses: [{ip, description}]`이며, 허용 IP 추가 인자는 `ip`, 선택적 `description`입니다. 키·IP 식별자는 응답의 `id`(UUID)를 사용합니다.
838
+
839
+ ## 템플릿 폴더 (1.5.0)
840
+
841
+ 기업 계정의 발송용 API 키와 `apiVersion=v2` 설정으로 사용하는 서버 전용 API입니다.
842
+ 폴더는 알림톡·브랜드메시지가 공유하며, 목록의 `templateType`은 `notice` 또는 `brand`입니다.
843
+ 목록은 `data.folders` 트리와 `total`, `uncategorised` 개수를 반환합니다.
844
+ `templateCount`는 하위 폴더를 제외한 해당 폴더의 템플릿 수입니다.
845
+
846
+ - 생성: `name`, 선택 `parentUuid`. 최대 5단계이며 같은 부모 아래 이름 중복은 409입니다.
847
+ - 이동: 동일 발신프로필의 `templateCodes` 1~100개. `folderUuid`는 필수이며 `null`이면 미분류로 이동합니다.
848
+ - 템플릿 목록: `folderUuid=none`은 미분류, UUID는 해당 폴더, 생략은 전체입니다.
849
+ - 템플릿 등록: 선택 필드 `folderUuid`로 폴더를 지정합니다. 기존 템플릿 수정 API 대신 폴더 이동 API를 사용하세요.
850
+
851
+ 승인되지 않은 키의 `403 ACCESS_KEY_NOT_APPROVED`는 토큰 재발급·재시도 없이 반환합니다.
852
+ 계정 API의 `autoApprove`는 서버 설정의 실제 승인 정책을 나타냅니다.
853
+
854
+ ```python
855
+ client.template_folders.list(template_type="notice")
856
+ client.template_folders.create(name="주문 안내")
857
+ client.template_folders.assign(
858
+ template_type="notice", kakao_sender_key=kakao_sender_key,
859
+ template_codes=["ORDER_001"], folder_uuid=None,
860
+ )
861
+ client.notice_templates.list(folder_uuid="none")
862
+ # 템플릿 생성 시 folder_uuid=폴더_UUID를 선택 인자로 전달합니다.
863
+ ```
@@ -782,7 +782,7 @@ MIT License © 2026 [Sendgo](https://sendgo.io)
782
782
 
783
783
  *키워드: 카카오 알림톡 Python, 카카오 친구톡 Django, SMS 발송 FastAPI, 알림톡 SDK pip, Python 카카오 API 연동, Django 문자 발송, FastAPI 알림톡, Celery 알림톡 비동기, Sendgo Python SDK*
784
784
 
785
- ## 계정·조직·API 키 관리 (1.4.0)
785
+ ## 계정·조직·API 키 관리 (1.5.0)
786
786
 
787
787
  발송용 `accessKey`/`secretKey`가 없는 단계에서 사용하는 **별도 계정 클라이언트**입니다.
788
788
  콘솔에서 발급받은 에이전트 토큰(`SENDGO_AGENT_TOKEN`)으로 `/api/v2/account`를 호출합니다.
@@ -808,3 +808,29 @@ issued = account.create_api_key({'name': '서버 연동'})
808
808
  지원 메서드: `me`, `organizations`, `select_organization`, `api_keys`, `create_api_key`, `api_key`, `update_api_key`, `delete_api_key`, `issue_token`, `allowed_ips`, `add_allowed_ip`, `delete_allowed_ip`.
809
809
 
810
810
  키 생성 인자는 `name`, 선택적 `ipAddresses: [{ip, description}]`이며, 허용 IP 추가 인자는 `ip`, 선택적 `description`입니다. 키·IP 식별자는 응답의 `id`(UUID)를 사용합니다.
811
+
812
+ ## 템플릿 폴더 (1.5.0)
813
+
814
+ 기업 계정의 발송용 API 키와 `apiVersion=v2` 설정으로 사용하는 서버 전용 API입니다.
815
+ 폴더는 알림톡·브랜드메시지가 공유하며, 목록의 `templateType`은 `notice` 또는 `brand`입니다.
816
+ 목록은 `data.folders` 트리와 `total`, `uncategorised` 개수를 반환합니다.
817
+ `templateCount`는 하위 폴더를 제외한 해당 폴더의 템플릿 수입니다.
818
+
819
+ - 생성: `name`, 선택 `parentUuid`. 최대 5단계이며 같은 부모 아래 이름 중복은 409입니다.
820
+ - 이동: 동일 발신프로필의 `templateCodes` 1~100개. `folderUuid`는 필수이며 `null`이면 미분류로 이동합니다.
821
+ - 템플릿 목록: `folderUuid=none`은 미분류, UUID는 해당 폴더, 생략은 전체입니다.
822
+ - 템플릿 등록: 선택 필드 `folderUuid`로 폴더를 지정합니다. 기존 템플릿 수정 API 대신 폴더 이동 API를 사용하세요.
823
+
824
+ 승인되지 않은 키의 `403 ACCESS_KEY_NOT_APPROVED`는 토큰 재발급·재시도 없이 반환합니다.
825
+ 계정 API의 `autoApprove`는 서버 설정의 실제 승인 정책을 나타냅니다.
826
+
827
+ ```python
828
+ client.template_folders.list(template_type="notice")
829
+ client.template_folders.create(name="주문 안내")
830
+ client.template_folders.assign(
831
+ template_type="notice", kakao_sender_key=kakao_sender_key,
832
+ template_codes=["ORDER_001"], folder_uuid=None,
833
+ )
834
+ client.notice_templates.list(folder_uuid="none")
835
+ # 템플릿 생성 시 folder_uuid=폴더_UUID를 선택 인자로 전달합니다.
836
+ ```
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "sendgo-python"
7
- version = "1.4.0"
7
+ version = "1.5.0"
8
8
  description = "Sendgo Python SDK — 카카오 알림톡/브랜드메시지, SMS/LMS/MMS"
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
@@ -43,11 +43,12 @@ class BrandTemplateService:
43
43
  kakao_sender_key: str | None = None,
44
44
  search: str | None = None,
45
45
  count: int | None = None,
46
+ folder_uuid: str | None = None,
46
47
  ) -> dict[str, Any]:
47
48
  """목록 조회."""
48
49
  return self._http.get(
49
50
  self._RESOURCE,
50
- {"kakaoSenderKey": kakao_sender_key, "search": search, "count": count},
51
+ {"folderUuid": folder_uuid, "kakaoSenderKey": kakao_sender_key, "search": search, "count": count},
51
52
  )
52
53
 
53
54
  def show(self, template_code: str) -> dict[str, Any]:
@@ -15,6 +15,7 @@ from .short_url import ShortUrlService
15
15
  from .sms import SmsService
16
16
  from .token_manager import TokenManager
17
17
  from .webhook import WebhookService
18
+ from .template_folder import TemplateFolderService
18
19
 
19
20
 
20
21
  class Sendgo:
@@ -81,3 +82,4 @@ class Sendgo:
81
82
  self.kakao_images = KakaoImageService(http)
82
83
  self.rejected_numbers = RejectedNumberService(http)
83
84
  self.webhook = WebhookService(http)
85
+ self.template_folders = TemplateFolderService(http)
@@ -52,11 +52,13 @@ class NoticeTemplateService:
52
52
  inspection_status: str | None = None,
53
53
  search: str | None = None,
54
54
  count: int | None = None,
55
+ folder_uuid: str | None = None,
55
56
  ) -> dict[str, Any]:
56
57
  """목록 조회."""
57
58
  return self._http.get(
58
59
  self._RESOURCE,
59
60
  {
61
+ "folderUuid": folder_uuid,
60
62
  "kakaoSenderKey": kakao_sender_key,
61
63
  "inspectionStatus": inspection_status,
62
64
  "search": search,
@@ -0,0 +1,25 @@
1
+ """템플릿 공용 폴더. v2 전용, 기업 계정 전용."""
2
+ from __future__ import annotations
3
+ from typing import Any, Literal
4
+ from .http_client import HttpClient
5
+
6
+ class TemplateFolderService:
7
+ def __init__(self, http: HttpClient) -> None:
8
+ self._http = http
9
+
10
+ def list(self, *, template_type: Literal["notice", "brand"] | None = None,
11
+ kakao_sender_key: str | None = None) -> dict[str, Any]:
12
+ """폴더 트리와 유형별 템플릿 수를 조회합니다."""
13
+ return self._http.get("template-folders", {"templateType": template_type, "kakaoSenderKey": kakao_sender_key})
14
+
15
+ def create(self, *, name: str, parent_uuid: str | None = None) -> dict[str, Any]:
16
+ """루트 또는 하위 폴더를 생성합니다."""
17
+ return self._http.post("template-folders", {"name": name, "parentUuid": parent_uuid})
18
+
19
+ def assign(self, *, template_type: Literal["notice", "brand"], kakao_sender_key: str,
20
+ template_codes: list[str], folder_uuid: str | None) -> dict[str, Any]:
21
+ """1~100개 템플릿을 이동합니다. None이면 미분류로 이동합니다."""
22
+ return self._http.patch("template-folders/templates", {
23
+ "templateType": template_type, "kakaoSenderKey": kakao_sender_key,
24
+ "templateCodes": template_codes, "folderUuid": folder_uuid,
25
+ })
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sendgo-python
3
- Version: 1.4.0
3
+ Version: 1.5.0
4
4
  Summary: Sendgo Python SDK — 카카오 알림톡/브랜드메시지, SMS/LMS/MMS
5
5
  Author-email: Sendgo <dev@sendgo.io>
6
6
  License: MIT
@@ -809,7 +809,7 @@ MIT License © 2026 [Sendgo](https://sendgo.io)
809
809
 
810
810
  *키워드: 카카오 알림톡 Python, 카카오 친구톡 Django, SMS 발송 FastAPI, 알림톡 SDK pip, Python 카카오 API 연동, Django 문자 발송, FastAPI 알림톡, Celery 알림톡 비동기, Sendgo Python SDK*
811
811
 
812
- ## 계정·조직·API 키 관리 (1.4.0)
812
+ ## 계정·조직·API 키 관리 (1.5.0)
813
813
 
814
814
  발송용 `accessKey`/`secretKey`가 없는 단계에서 사용하는 **별도 계정 클라이언트**입니다.
815
815
  콘솔에서 발급받은 에이전트 토큰(`SENDGO_AGENT_TOKEN`)으로 `/api/v2/account`를 호출합니다.
@@ -835,3 +835,29 @@ issued = account.create_api_key({'name': '서버 연동'})
835
835
  지원 메서드: `me`, `organizations`, `select_organization`, `api_keys`, `create_api_key`, `api_key`, `update_api_key`, `delete_api_key`, `issue_token`, `allowed_ips`, `add_allowed_ip`, `delete_allowed_ip`.
836
836
 
837
837
  키 생성 인자는 `name`, 선택적 `ipAddresses: [{ip, description}]`이며, 허용 IP 추가 인자는 `ip`, 선택적 `description`입니다. 키·IP 식별자는 응답의 `id`(UUID)를 사용합니다.
838
+
839
+ ## 템플릿 폴더 (1.5.0)
840
+
841
+ 기업 계정의 발송용 API 키와 `apiVersion=v2` 설정으로 사용하는 서버 전용 API입니다.
842
+ 폴더는 알림톡·브랜드메시지가 공유하며, 목록의 `templateType`은 `notice` 또는 `brand`입니다.
843
+ 목록은 `data.folders` 트리와 `total`, `uncategorised` 개수를 반환합니다.
844
+ `templateCount`는 하위 폴더를 제외한 해당 폴더의 템플릿 수입니다.
845
+
846
+ - 생성: `name`, 선택 `parentUuid`. 최대 5단계이며 같은 부모 아래 이름 중복은 409입니다.
847
+ - 이동: 동일 발신프로필의 `templateCodes` 1~100개. `folderUuid`는 필수이며 `null`이면 미분류로 이동합니다.
848
+ - 템플릿 목록: `folderUuid=none`은 미분류, UUID는 해당 폴더, 생략은 전체입니다.
849
+ - 템플릿 등록: 선택 필드 `folderUuid`로 폴더를 지정합니다. 기존 템플릿 수정 API 대신 폴더 이동 API를 사용하세요.
850
+
851
+ 승인되지 않은 키의 `403 ACCESS_KEY_NOT_APPROVED`는 토큰 재발급·재시도 없이 반환합니다.
852
+ 계정 API의 `autoApprove`는 서버 설정의 실제 승인 정책을 나타냅니다.
853
+
854
+ ```python
855
+ client.template_folders.list(template_type="notice")
856
+ client.template_folders.create(name="주문 안내")
857
+ client.template_folders.assign(
858
+ template_type="notice", kakao_sender_key=kakao_sender_key,
859
+ template_codes=["ORDER_001"], folder_uuid=None,
860
+ )
861
+ client.notice_templates.list(folder_uuid="none")
862
+ # 템플릿 생성 시 folder_uuid=폴더_UUID를 선택 인자로 전달합니다.
863
+ ```
@@ -18,6 +18,7 @@ sendgo/rejected_number.py
18
18
  sendgo/sender_registration.py
19
19
  sendgo/short_url.py
20
20
  sendgo/sms.py
21
+ sendgo/template_folder.py
21
22
  sendgo/token_manager.py
22
23
  sendgo/webhook.py
23
24
  sendgo_python.egg-info/PKG-INFO
File without changes