createLocation method
Creates a location.
Creating new locations allows for separate configuration of receipt layouts, item prices, and sales reports. Developers can use locations to separate sales activity via applications that integrate with Square from sales activity elsewhere in a seller's account. Locations created programmatically with the Locations API will last forever and are visible to the seller for their own management, so ensure that each location has a sensible and unique name.
Implementation
Future<Location> createLocation({
required Location location,
String? authToken,
}) async {
authToken ??= authenticationService.getCachedToken()?.accessToken;
Map<String, String> headers = {
"Authorization": "Bearer ${authToken ?? ""}",
'Content-Type': 'application/json; charset=UTF-8',
'Accept': 'application/json',
};
Uri endpoint = Uri.https(
baseUrl, "/v2/locations");
//print (endpoint.toString());
var response = await
http.post(endpoint, body:jsonEncode(location.toJson()), headers: headers);
if (response.statusCode == 200) {
print (jsonDecode(response.body));
return LocationResponse.fromJson(jsonDecode(response.body)).location!;
}
else {
print (response.body);
throw MerchantException(statusCode: response.statusCode, message: LocationResponse.fromJson(jsonDecode(response.body)).errors?[0].detail?.toString());
}
}