ibombonato commited on
Commit
ffd6997
·
verified ·
1 Parent(s): 9944cf3

feat: update shotener tool to use new API (#15)

Browse files

- feat: update shotener tool to use new API (06cf6c200117cad9fc485a00469f6ac39c678ece)

Files changed (2) hide show
  1. merchs/merch.py +1 -1
  2. shortener_tool.py +17 -13
merchs/merch.py CHANGED
@@ -25,7 +25,7 @@ class NaturaMerchant(Merchant):
25
 
26
  def __init__(self, natura_api_token: str):
27
  super().__init__()
28
- self.shortener_tool = ShortenerTool()
29
 
30
  def get_scraper_tool(self):
31
  return AdvancedScrapingTool()
 
25
 
26
  def __init__(self, natura_api_token: str):
27
  super().__init__()
28
+ self.shortener_tool = ShortenerTool(natura_api_token=natura_api_token)
29
 
30
  def get_scraper_tool(self):
31
  return AdvancedScrapingTool()
shortener_tool.py CHANGED
@@ -1,32 +1,36 @@
1
-
2
  import os
3
  import requests
4
  from crewai.tools import BaseTool
 
 
 
5
 
6
- class ShortenerTool(BaseTool):
7
  name: str = "URL Shortener Tool"
8
  description: str = "Generates a short version of a given URL using an external API."
 
9
 
10
  def _run(self, original_url: str) -> str:
11
- api_url = "https://sales-mgmt-cb-bff-apigw.prd.naturacloud.com/cb-bff-cms/cms/shortener"
12
  headers = {
13
  "accept": "*/*",
14
- "accept-language": "pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7",
15
- "authorization": f"Bearer {os.getenv('NATURA_API_TOKEN')}", # Get token from env
16
  "content-type": "application/json",
17
- "origin": "https://minhaloja.natura.com",
18
- "referer": "https://minhaloja.natura.com/",
19
- "sec-ch-ua": '"Not)A;Brand";v="8", "Chromium";v="138", "Google Chrome";v="138"' , # Escaped quotes
20
  "sec-ch-ua-mobile": "?0",
21
- "sec-ch-ua-platform": '"Windows"' , # Escaped quotes
22
  "sec-fetch-dest": "empty",
23
  "sec-fetch-mode": "cors",
24
  "sec-fetch-site": "cross-site",
25
- "siteid": "CBBrazil",
26
- "tenantid": "brazil-natura",
27
- "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36",
 
 
 
28
  }
29
- payload = {"url": original_url}
30
 
31
  try:
32
  response = requests.post(api_url, headers=headers, json=payload)
 
 
1
  import os
2
  import requests
3
  from crewai.tools import BaseTool
4
+ from dotenv import load_dotenv
5
+
6
+ load_dotenv()
7
 
8
+ class ShortenerTool(BaseTool):
9
  name: str = "URL Shortener Tool"
10
  description: str = "Generates a short version of a given URL using an external API."
11
+ natura_api_token: str
12
 
13
  def _run(self, original_url: str) -> str:
14
+ api_url = "https://ncf-apigw.prd.naturacloud.com/url-shortener/links"
15
  headers = {
16
  "accept": "*/*",
17
+ "accept-language": "pt-BR,pt;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
18
+ "authorization": f"Bearer {self.natura_api_token}",
19
  "content-type": "application/json",
20
+ "priority": "u=1, i",
21
+ "sec-ch-ua": "\"Microsoft Edge\";v=\"141\", \"Not?A_Brand\";v=\"8\", \"Chromium\";v=\"141\"",
 
22
  "sec-ch-ua-mobile": "?0",
23
+ "sec-ch-ua-platform": "\"Windows\"",
24
  "sec-fetch-dest": "empty",
25
  "sec-fetch-mode": "cors",
26
  "sec-fetch-site": "cross-site",
27
+ "x-api-key": f"{os.environ["NATURA_X_API_KEY"]}",
28
+ "Referer": "https://www.minhaloja.natura.com/"
29
+ }
30
+ payload = {
31
+ "url": original_url,
32
+ "domain": 1
33
  }
 
34
 
35
  try:
36
  response = requests.post(api_url, headers=headers, json=payload)