forked from square/square-python-sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcustomer_segments_api.py
More file actions
114 lines (96 loc) · 4.54 KB
/
customer_segments_api.py
File metadata and controls
114 lines (96 loc) · 4.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# -*- coding: utf-8 -*-
from square.api_helper import APIHelper
from square.http.api_response import ApiResponse
from square.api.base_api import BaseApi
from apimatic_core.request_builder import RequestBuilder
from apimatic_core.response_handler import ResponseHandler
from apimatic_core.types.parameter import Parameter
from square.http.http_method_enum import HttpMethodEnum
from apimatic_core.authentication.multiple.single_auth import Single
class CustomerSegmentsApi(BaseApi):
"""A Controller to access Endpoints in the square API."""
def __init__(self, config):
super(CustomerSegmentsApi, self).__init__(config)
def list_customer_segments(self,
cursor=None,
limit=None):
"""Does a GET request to /v2/customers/segments.
Retrieves the list of customer segments of a business.
Args:
cursor (str, optional): A pagination cursor returned by previous
calls to `ListCustomerSegments`. This cursor is used to
retrieve the next set of query results. For more information,
see
[Pagination](https://developer.squareup.com/docs/build-basics/c
ommon-api-patterns/pagination).
limit (int, optional): The maximum number of results to return in
a single page. This limit is advisory. The response might
contain more or fewer results. If the specified limit is less
than 1 or greater than 50, Square returns a `400
VALUE_TOO_LOW` or `400 VALUE_TOO_HIGH` error. The default
value is 50. For more information, see
[Pagination](https://developer.squareup.com/docs/build-basics/c
ommon-api-patterns/pagination).
Returns:
ApiResponse: An object with the response value as well as other
useful information such as status codes and headers. Success
Raises:
APIException: When an error occurs while fetching the data from
the remote API. This exception includes the HTTP Response
code, an error message, and the HTTP body that was received in
the request.
"""
return super().new_api_call_builder.request(
RequestBuilder().server('default')
.path('/v2/customers/segments')
.http_method(HttpMethodEnum.GET)
.query_param(Parameter()
.key('cursor')
.value(cursor))
.query_param(Parameter()
.key('limit')
.value(limit))
.header_param(Parameter()
.key('accept')
.value('application/json'))
.auth(Single('global'))
).response(
ResponseHandler()
.deserializer(APIHelper.json_deserialize)
.is_api_response(True)
.convertor(ApiResponse.create)
).execute()
def retrieve_customer_segment(self,
segment_id):
"""Does a GET request to /v2/customers/segments/{segment_id}.
Retrieves a specific customer segment as identified by the
`segment_id` value.
Args:
segment_id (str): The Square-issued ID of the customer segment.
Returns:
ApiResponse: An object with the response value as well as other
useful information such as status codes and headers. Success
Raises:
APIException: When an error occurs while fetching the data from
the remote API. This exception includes the HTTP Response
code, an error message, and the HTTP body that was received in
the request.
"""
return super().new_api_call_builder.request(
RequestBuilder().server('default')
.path('/v2/customers/segments/{segment_id}')
.http_method(HttpMethodEnum.GET)
.template_param(Parameter()
.key('segment_id')
.value(segment_id)
.should_encode(True))
.header_param(Parameter()
.key('accept')
.value('application/json'))
.auth(Single('global'))
).response(
ResponseHandler()
.deserializer(APIHelper.json_deserialize)
.is_api_response(True)
.convertor(ApiResponse.create)
).execute()