Coverage for /var/srv/projects/api.amasfac.comuna18.com/tmp/venv/lib/python3.9/site-packages/stripe/api_resources/invoice.py: 53%

53 statements  

« prev     ^ index     » next       coverage.py v6.4.4, created at 2023-07-17 14:22 -0600

1# File generated from our OpenAPI spec 

2from __future__ import absolute_import, division, print_function 

3 

4from stripe import api_requestor 

5from stripe import util 

6from stripe.api_resources.abstract import CreateableAPIResource 

7from stripe.api_resources.abstract import DeletableAPIResource 

8from stripe.api_resources.abstract import ListableAPIResource 

9from stripe.api_resources.abstract import SearchableAPIResource 

10from stripe.api_resources.abstract import UpdateableAPIResource 

11from stripe.api_resources.abstract import custom_method 

12 

13 

14@custom_method("finalize_invoice", http_verb="post", http_path="finalize") 

15@custom_method("mark_uncollectible", http_verb="post") 

16@custom_method("pay", http_verb="post") 

17@custom_method("send_invoice", http_verb="post", http_path="send") 

18@custom_method("void_invoice", http_verb="post", http_path="void") 

19class Invoice( 

20 CreateableAPIResource, 

21 DeletableAPIResource, 

22 ListableAPIResource, 

23 SearchableAPIResource, 

24 UpdateableAPIResource, 

25): 

26 OBJECT_NAME = "invoice" 

27 

28 def finalize_invoice(self, idempotency_key=None, **params): 

29 url = "/v1/invoices/{invoice}/finalize".format( 

30 invoice=util.sanitize_id(self.get("id")) 

31 ) 

32 headers = util.populate_headers(idempotency_key) 

33 self.refresh_from(self.request("post", url, params, headers)) 

34 return self 

35 

36 def mark_uncollectible(self, idempotency_key=None, **params): 

37 url = "/v1/invoices/{invoice}/mark_uncollectible".format( 

38 invoice=util.sanitize_id(self.get("id")) 

39 ) 

40 headers = util.populate_headers(idempotency_key) 

41 self.refresh_from(self.request("post", url, params, headers)) 

42 return self 

43 

44 def pay(self, idempotency_key=None, **params): 

45 url = "/v1/invoices/{invoice}/pay".format( 

46 invoice=util.sanitize_id(self.get("id")) 

47 ) 

48 headers = util.populate_headers(idempotency_key) 

49 self.refresh_from(self.request("post", url, params, headers)) 

50 return self 

51 

52 def send_invoice(self, idempotency_key=None, **params): 

53 url = "/v1/invoices/{invoice}/send".format( 

54 invoice=util.sanitize_id(self.get("id")) 

55 ) 

56 headers = util.populate_headers(idempotency_key) 

57 self.refresh_from(self.request("post", url, params, headers)) 

58 return self 

59 

60 def void_invoice(self, idempotency_key=None, **params): 

61 url = "/v1/invoices/{invoice}/void".format( 

62 invoice=util.sanitize_id(self.get("id")) 

63 ) 

64 headers = util.populate_headers(idempotency_key) 

65 self.refresh_from(self.request("post", url, params, headers)) 

66 return self 

67 

68 @classmethod 

69 def search(cls, *args, **kwargs): 

70 return cls._search(search_url="/v1/invoices/search", *args, **kwargs) 

71 

72 @classmethod 

73 def search_auto_paging_iter(cls, *args, **kwargs): 

74 return cls.search(*args, **kwargs).auto_paging_iter() 

75 

76 @classmethod 

77 def upcoming( 

78 cls, api_key=None, stripe_version=None, stripe_account=None, **params 

79 ): 

80 requestor = api_requestor.APIRequestor( 

81 api_key, api_version=stripe_version, account=stripe_account 

82 ) 

83 url = cls.class_url() + "/upcoming" 

84 response, api_key = requestor.request("get", url, params) 

85 return util.convert_to_stripe_object( 

86 response, api_key, stripe_version, stripe_account 

87 )