salespyforce 1.2.2rc1__tar.gz → 1.3.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. {salespyforce-1.2.2rc1/src/salespyforce.egg-info → salespyforce-1.3.0}/PKG-INFO +2 -2
  2. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/README.md +1 -1
  3. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/pyproject.toml +1 -1
  4. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/src/salespyforce/core.py +27 -6
  5. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/src/salespyforce/knowledge.py +23 -1
  6. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/src/salespyforce/utils/version.py +2 -2
  7. {salespyforce-1.2.2rc1 → salespyforce-1.3.0/src/salespyforce.egg-info}/PKG-INFO +2 -2
  8. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/LICENSE +0 -0
  9. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/setup.cfg +0 -0
  10. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/setup.py +0 -0
  11. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/src/salespyforce/__init__.py +0 -0
  12. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/src/salespyforce/api.py +0 -0
  13. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/src/salespyforce/chatter.py +0 -0
  14. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/src/salespyforce/errors/__init__.py +0 -0
  15. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/src/salespyforce/errors/exceptions.py +0 -0
  16. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/src/salespyforce/errors/handlers.py +0 -0
  17. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/src/salespyforce/utils/__init__.py +0 -0
  18. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/src/salespyforce/utils/core_utils.py +0 -0
  19. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/src/salespyforce/utils/helper.py +0 -0
  20. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/src/salespyforce/utils/log_utils.py +0 -0
  21. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/src/salespyforce/utils/tests/__init__.py +0 -0
  22. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/src/salespyforce/utils/tests/resources.py +0 -0
  23. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/src/salespyforce/utils/tests/test_instantiate_object.py +0 -0
  24. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/src/salespyforce/utils/tests/test_sobjects.py +0 -0
  25. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/src/salespyforce/utils/tests/test_soql.py +0 -0
  26. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/src/salespyforce/utils/tests/test_sosl.py +0 -0
  27. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/src/salespyforce.egg-info/SOURCES.txt +0 -0
  28. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/src/salespyforce.egg-info/dependency_links.txt +0 -0
  29. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/src/salespyforce.egg-info/requires.txt +0 -0
  30. {salespyforce-1.2.2rc1 → salespyforce-1.3.0}/src/salespyforce.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: salespyforce
3
- Version: 1.2.2rc1
3
+ Version: 1.3.0
4
4
  Summary: A Python toolset for performing Salesforce API calls
5
5
  Home-page: https://github.com/jeffshurtliff/salespyforce
6
6
  Author: Jeff Shurtliff
@@ -45,7 +45,7 @@ A Python toolset for performing Salesforce API calls
45
45
  <td>Latest Beta/RC Release</td>
46
46
  <td>
47
47
  <a href='https://pypi.org/project/salespyforce/#history'>
48
- <img alt="PyPI" src="https://img.shields.io/badge/pypi-1.0.0b1-blue">
48
+ <img alt="PyPI" src="https://img.shields.io/badge/pypi-1.3.0rc3-blue">
49
49
  </a>
50
50
  </td>
51
51
  </tr>
@@ -14,7 +14,7 @@ A Python toolset for performing Salesforce API calls
14
14
  <td>Latest Beta/RC Release</td>
15
15
  <td>
16
16
  <a href='https://pypi.org/project/salespyforce/#history'>
17
- <img alt="PyPI" src="https://img.shields.io/badge/pypi-1.0.0b1-blue">
17
+ <img alt="PyPI" src="https://img.shields.io/badge/pypi-1.3.0rc3-blue">
18
18
  </a>
19
19
  </td>
20
20
  </tr>
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "salespyforce"
3
- version = "1.2.2rc1"
3
+ version = "1.3.0rc3"
4
4
  description = "A Python toolset for performing Salesforce API calls"
5
5
  authors = ["Jeff Shurtliff <jeff.shurtliff@rsa.com>"]
6
6
  license = "MIT"
@@ -6,9 +6,11 @@
6
6
  :Example: ``sfdc = Salesforce()``
7
7
  :Created By: Jeff Shurtliff
8
8
  :Last Modified: Jeff Shurtliff
9
- :Modified Date: 01 Sep 2023
9
+ :Modified Date: 22 Nov 2023
10
10
  """
11
11
 
12
+ import re
13
+
12
14
  import requests
13
15
 
14
16
  from . import api, errors
@@ -319,7 +321,7 @@ class Salesforce(object):
319
321
  """
320
322
  return self.get(f'/services/data/{self.version}')
321
323
 
322
- def soql_query(self, query, replace_quotes=True):
324
+ def soql_query(self, query, replace_quotes=True, next_records_url=False):
323
325
  """This method performs a SOQL query and returns the results in JSON format.
324
326
  (`Reference 1 <https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_query.htm>`_,
325
327
  `Reference 2 <https://developer.salesforce.com/docs/atlas.en-us.knowledge_dev.meta/knowledge_dev/knowledge_development_soql_sosl_intro.htm>`_)
@@ -328,12 +330,18 @@ class Salesforce(object):
328
330
  :type query: str
329
331
  :param replace_quotes: Determines if double-quotes should be replaced with single-quotes (``True`` by default)
330
332
  :type replace_quotes: bool
333
+ :param next_records_url: Indicates that the ``query`` parameter is a ``nextRecordsUrl`` value.
334
+ :type next_records_url: bool
331
335
  :returns: The result of the SOQL query
332
336
  """
333
- if replace_quotes:
334
- query = query.replace('"', "'")
335
- query = core_utils.url_encode(query)
336
- return self.get(f'/services/data/{self.version}/query/?q={query}')
337
+ if next_records_url:
338
+ query = re.sub(r'^.*/', '', query) if '/' in query else query
339
+ else:
340
+ if replace_quotes:
341
+ query = query.replace('"', "'")
342
+ query = core_utils.url_encode(query)
343
+ query = f'?q={query}'
344
+ return self.get(f'/services/data/{self.version}/query/{query}')
337
345
 
338
346
  def search_string(self, string_to_search):
339
347
  """This method performs a SOSL query to search for a given string.
@@ -773,6 +781,19 @@ class Salesforce(object):
773
781
  category_group_name=category_group_name,
774
782
  category_name=category_name)
775
783
 
784
+ def archive_article(self, article_id):
785
+ """This function archives a published knowledge article.
786
+ (`Reference <https://developer.salesforce.com/docs/atlas.en-us.knowledge_dev.meta/knowledge_dev/knowledge_REST_archive_master_version.htm>`_)
787
+
788
+ .. versionadded:: 1.3.0
789
+
790
+ :param article_id: The ID of the article to archive
791
+ :type article_id: str
792
+ :returns: The API response from the POST request
793
+ :raises: :py:exc:`RuntimeError`
794
+ """
795
+ return knowledge_module.archive_article(self.sfdc_object, article_id=article_id)
796
+
776
797
 
777
798
  def define_connection_info():
778
799
  """This function prompts the user for the connection information.
@@ -4,7 +4,7 @@
4
4
  :Synopsis: Defines the Knowledge-related functions associated with the Salesforce API
5
5
  :Created By: Jeff Shurtliff
6
6
  :Last Modified: Jeff Shurtliff
7
- :Modified Date: 01 Sep 2023
7
+ :Modified Date: 14 Nov 2023
8
8
  """
9
9
 
10
10
  from . import errors
@@ -507,3 +507,25 @@ def assign_data_category(sfdc_object, article_id, category_group_name, category_
507
507
  endpoint = f'/services/data/{sfdc_object.version}/sobjects/Knowledge__DataCategorySelection'
508
508
  return sfdc_object.post(endpoint, payload)
509
509
 
510
+
511
+ def archive_article(sfdc_object, article_id):
512
+ """This function archives a published knowledge article.
513
+ (`Reference <https://developer.salesforce.com/docs/atlas.en-us.knowledge_dev.meta/knowledge_dev/knowledge_REST_archive_master_version.htm>`_)
514
+
515
+ .. versionadded:: 1.3.0
516
+
517
+ :param sfdc_object: The instantiated SalesPyForce object
518
+ :type sfdc_object: class[salespyforce.Salesforce]
519
+ :param article_id: The ID of the article to archive
520
+ :type article_id: str
521
+ :returns: The API response from the POST request
522
+ :raises: :py:exc:`RuntimeError`
523
+ """
524
+ # Define the payload for the API call
525
+ payload = {
526
+ "publishStatus": "Archived"
527
+ }
528
+
529
+ # Perform the API call
530
+ endpoint = f'/services/data/{sfdc_object.version}/knowledgeManagement/articleVersions/masterVersions/{article_id}'
531
+ return sfdc_object.patch(endpoint, payload)
@@ -4,7 +4,7 @@
4
4
  :Synopsis: This simple script contains the package version
5
5
  :Created By: Jeff Shurtliff
6
6
  :Last Modified: Jeff Shurtliff
7
- :Modified Date: 05 Sep 2023
7
+ :Modified Date: 11 Nov 2025
8
8
  """
9
9
 
10
10
  from . import log_utils
@@ -13,7 +13,7 @@ from . import log_utils
13
13
  logger = log_utils.initialize_logging(__name__)
14
14
 
15
15
  # Define special and global variables
16
- __version__ = "1.2.2rc1"
16
+ __version__ = "1.3.0"
17
17
 
18
18
 
19
19
  def get_full_version():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: salespyforce
3
- Version: 1.2.2rc1
3
+ Version: 1.3.0
4
4
  Summary: A Python toolset for performing Salesforce API calls
5
5
  Home-page: https://github.com/jeffshurtliff/salespyforce
6
6
  Author: Jeff Shurtliff
@@ -45,7 +45,7 @@ A Python toolset for performing Salesforce API calls
45
45
  <td>Latest Beta/RC Release</td>
46
46
  <td>
47
47
  <a href='https://pypi.org/project/salespyforce/#history'>
48
- <img alt="PyPI" src="https://img.shields.io/badge/pypi-1.0.0b1-blue">
48
+ <img alt="PyPI" src="https://img.shields.io/badge/pypi-1.3.0rc3-blue">
49
49
  </a>
50
50
  </td>
51
51
  </tr>
File without changes
File without changes
File without changes