adaptsapi 0.1.1__tar.gz → 0.1.3__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: adaptsapi
3
- Version: 0.1.1
3
+ Version: 0.1.3
4
4
  Summary: CLI to enqueue triggers via internal API Gateway → SNS
5
5
  Home-page: https://github.com/adaptsai/adaptsapi
6
6
  Author: adapts
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "adaptsapi"
7
- version = "0.1.1"
7
+ version = "0.1.3"
8
8
  description = "CLI to enqueue triggers via internal API Gateway → SNS"
9
9
  readme = { file = "README.md", content-type = "text/markdown" }
10
10
 
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = adaptsapi
3
- version = 0.1.1
3
+ version = 0.1.2
4
4
  author = adapts
5
5
  author_email = dev@adapts.ai
6
6
  description = CLI to enqueue triggers via internal API Gateway → SNS
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name="adaptsapi",
5
- version="0.1.1",
5
+ version="0.1.3",
6
6
  author="adapts",
7
7
  author_email="dev@adapts.ai",
8
8
  description="CLI to enqueue triggers via internal API Gateway → SNS",
@@ -1,7 +1,8 @@
1
1
  import re
2
2
  import requests
3
- from typing import Dict, Any
3
+ from typing import Dict, Any, Optional
4
4
  from datetime import datetime, date
5
+ import uuid
5
6
 
6
7
  # regex for a very basic email validation
7
8
  _EMAIL_RE = re.compile(r"^[^@]+@[^@]+\.[^@]+$")
@@ -31,17 +32,45 @@ def _validate_payload(payload: Dict[str, Any]) -> None:
31
32
 
32
33
  # repo_object sub‐fields
33
34
  repo = payload["repo_object"]
34
- repo_required = {
35
- "repo_name": str,
36
- "repo_source": str,
37
- "repo_url": str,
38
- "repo_branch": str,
35
+
36
+ # *Required* sub-fields – must be present and right type
37
+ required_repo_fields = {
38
+ "repository_name": str,
39
+ "repository_url": str,
40
+ "branch": str,
41
+ "size": str,
42
+ "language": str,
43
+ "source": str,
44
+ }
45
+
46
+ # *Optional* sub-fields – validate only if provided (can be None)
47
+ optional_repo_fields = {
48
+ "is_private": bool,
49
+ "git_provider_type": str,
50
+ "installation_id": str, # ← now **optional**
51
+ "refresh_token": str,
52
+ "commit_hash": str,
53
+ "commit_message": str,
54
+ "commit_author": str,
55
+ "directory_name": str,
39
56
  }
40
- for rfield, rtyp in repo_required.items():
41
- if rfield not in repo:
42
- raise PayloadValidationError(f"Missing repo_object.{rfield}")
43
- if not isinstance(repo[rfield], rtyp):
44
- raise PayloadValidationError(f"repo_object.{rfield} must be a {rtyp.__name__}")
57
+ # required loop
58
+ for field, typ in required_repo_fields.items():
59
+ if field not in repo:
60
+ raise PayloadValidationError(f"Missing repo_object.{field}")
61
+ if not isinstance(repo[field], typ):
62
+ raise PayloadValidationError(
63
+ f"repo_object.{field} must be {typ.__name__}"
64
+ )
65
+
66
+ # optional loop
67
+ for field, typ in optional_repo_fields.items():
68
+ if field in repo and repo[field] is not None and not isinstance(
69
+ repo[field], typ
70
+ ):
71
+ raise PayloadValidationError(
72
+ f"repo_object.{field} must be {typ.__name__}"
73
+ )
45
74
 
46
75
  # you can add more checks here (URL validation, branch name patterns, etc.)
47
76
 
@@ -56,6 +85,19 @@ def _populate_metadata(payload: Dict[str, Any]) -> None:
56
85
  "updated_by": user,
57
86
  "updated_on": today,
58
87
  }
88
+ payload["action"] = "code_to_wiki"
89
+
90
+ # populate wiki if missing or incomplete
91
+ wiki = payload.get("wiki", {})
92
+ wiki.setdefault("wiki_name", payload["repo_object"]["repository_name"])
93
+ wiki.setdefault("wiki_source", payload["repo_object"]["source"]) # new!
94
+ wiki.setdefault("wiki_url", None)
95
+
96
+ payload["wiki_object"] = wiki
97
+ payload["request_id"] = str(uuid.uuid4())
98
+ payload["request_type"] = "code_to_wiki"
99
+ payload["status"] = "pending"
100
+
59
101
 
60
102
 
61
103
  def post(
@@ -76,9 +118,10 @@ def post(
76
118
 
77
119
  # 2) Add metadata
78
120
  _populate_metadata(payload)
79
-
121
+
80
122
  headers = {
81
- "Authorization": f"Bearer {token}",
123
+ "x-api-key": token,
82
124
  "Content-Type": "application/json",
83
125
  }
84
- return requests.post(endpoint, json={"body": payload}, headers=headers, timeout=timeout)
126
+ print(payload)
127
+ return requests.post(endpoint, json=payload, headers=headers, timeout=timeout)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: adaptsapi
3
- Version: 0.1.1
3
+ Version: 0.1.3
4
4
  Summary: CLI to enqueue triggers via internal API Gateway → SNS
5
5
  Home-page: https://github.com/adaptsai/adaptsapi
6
6
  Author: adapts
@@ -0,0 +1,30 @@
1
+ import requests
2
+ import os
3
+ from adaptsapi.generate_docs import post, PayloadValidationError
4
+
5
+ payload = {
6
+ "user_id": "d36a113a-25d3-402b-8f5d-9e443f5570cd",
7
+ "email_address": "sheel@adapts.ai",
8
+ "user_name": "sheel",
9
+ "repo_object": {
10
+ "repository_name": "kotlin-tree-sitter",
11
+ "source": "github",
12
+ "repository_url": "https://github.com/tree-sitter/kotlin-tree-sitter",
13
+ "branch": "master",
14
+ "size": "100",
15
+ "language": "Kotlin",
16
+ "is_private": False,
17
+ "git_provider_type": "github",
18
+ "refresh_token": "1234567890"
19
+ },
20
+ }
21
+
22
+ try:
23
+ AUTH_TOKEN = os.getenv("ADAPTS_API_KEY")
24
+ resp = post("https://ycdwnfjohl.execute-api.us-east-1.amazonaws.com/prod/generate_wiki_docs", AUTH_TOKEN, payload)
25
+ resp.raise_for_status()
26
+ print(resp.json())
27
+ except PayloadValidationError as e:
28
+ print("Invalid payload:", e)
29
+ except requests.RequestException as e:
30
+ print("Request failed:", e)
@@ -1,22 +0,0 @@
1
- from adapts_api.generate_docs import post, PayloadValidationError
2
-
3
- payload = {
4
- "user_id": "user-001",
5
- "email_address": "user@example.com",
6
- "user_name": "johndoe",
7
- "repo_object": {
8
- "repo_name": "adapts_client",
9
- "repo_source": "github",
10
- "repo_url": "https://github.com/adapts-ai/adapts_client",
11
- "repo_branch": "main",
12
- },
13
- }
14
-
15
- try:
16
- resp = post("https://httpbin.org/post", "my-token-xyz", payload)
17
- resp.raise_for_status()
18
- print(resp.json())
19
- except PayloadValidationError as e:
20
- print("Invalid payload:", e)
21
- except requests.RequestException as e:
22
- print("Request failed:", e)
File without changes
File without changes
File without changes