@@ -9,55 +9,31 @@ def __init__(self):
9
9
self .echo = True
10
10
self .verbose = True
11
11
12
- def __return_config (self , funct_name , return_value , is_json = False ):
13
- """Configure echo and verbosity of function returns."""
14
-
15
- if self .echo is True :
16
- print ('-' * 100 )
17
- print (f'FUNCTION: { funct_name } \n ' )
18
- if is_json is True :
19
- readable_json = json .dumps (return_value , indent = 4 )
20
- print (readable_json )
21
- else :
22
- print (return_value )
23
- elif self .echo is False :
24
- pass
25
- else :
26
- print ('-' * 100 )
27
- return print ("ERROR: Incompatible return configuration." )
28
-
29
- return return_value
30
-
31
12
def get_token (self , email , password , server = 'https://my.farm.bot' ):
13
+ # Generate user authentication token
32
14
token_str = self .api_connect .get_token (email , password , server )
33
- return self .__return_config ("get_token()" , token_str , is_json = True )
34
-
35
- # data = get_info() and like functions will assign 'data' JSON object
36
- # data["name"] will access the field "name" and return the field value
15
+ # Return token as json object: token[""]
16
+ return token_str
37
17
38
18
def get_info (self , endpoint , id = None ):
19
+ # Get endpoint info
39
20
endpoint_data = self .api_connect .get (endpoint , id )
40
- return self .__return_config ("get_info()" , endpoint_data , is_json = True )
21
+ # Return endpoint info as json object: endpoint[""]
22
+ return endpoint_data
41
23
42
24
def set_info (self , endpoint , field , value , id = None ):
25
+ # Edit endpoint info
43
26
new_value = {
44
27
field : value
45
28
}
46
-
47
29
self .api_connect .patch (endpoint , id , new_value )
48
30
49
- endpoint_data = self .api_connect .get (endpoint , id )
50
- return self .__return_config ("set_info()" , endpoint_data , is_json = True )
51
-
52
- def env (self , id = None , field = None , new_val = None ): # TODO: Fix
53
- if id is None :
54
- env_data = self .api_connect .get ('farmware_envs' , id = None )
55
- else :
56
- env_data = self .api_connect .get ('farmware_envs' , id )
57
-
58
- return self .__return_config ("env()" , env_data , is_json = True )
31
+ # Return endpoint info as json object: endpoint[""]
32
+ new_endpoint_data = self .api_connect .get (endpoint , id )
33
+ return new_endpoint_data
59
34
60
35
def log (self , message , type = None , channel = None ):
36
+ # Send new log message via API
61
37
log_message = {
62
38
"message" : message ,
63
39
"type" : type , # https://software.farm.bot/v15/app/intro/jobs-and-logs#log-types
@@ -68,13 +44,18 @@ def log(self, message, type=None, channel=None):
68
44
id = None
69
45
70
46
self .api_connect .post (endpoint , id , log_message )
71
- # return ...
47
+
48
+ # No inherent return value
72
49
73
50
def safe_z (self ):
74
- json_data = self .get_info ('fbos_config' )
75
- return json_data ['safe_height' ]
51
+ # Get safe z height via get_info()
52
+ config_data = self .get_info ('fbos_config' )
53
+ z_value = config_data ["safe_height" ]
54
+ # Return safe z height as value
55
+ return z_value
76
56
77
57
def garden_size (self ):
58
+ # Get garden size parameters via get_info()
78
59
json_data = self .get_info ('firmware_config' )
79
60
80
61
x_steps = json_data ['movement_axis_nr_steps_x' ]
@@ -87,13 +68,25 @@ def garden_size(self):
87
68
length_y = y_steps / y_mm
88
69
area = length_x * length_y
89
70
90
- return print (f'Garden size:\n '
91
- f'\t x length = { length_x :.2f} \n '
92
- f'\t y length = { length_y :.2f} \n '
93
- f'\t area = { area :.2f} ' )
71
+ # Return garden size parameters as values
72
+ return length_x , length_y , area
73
+
74
+ def group (self , id = None ):
75
+ # Get all groups or single by id
76
+ if id is None :
77
+ group_data = self .get_info ("point_groups" )
78
+ else :
79
+ group_data = self .get_info ('point_groups' , id )
80
+
81
+ # Return group as json object: group[""]
82
+ return group_data
94
83
95
- def group (self , id ): # TODO: make ID optional return full tree w/o ID
96
- return self .get_info ('point_groups' , id )
84
+ def curve (self , id = None ):
85
+ # Get all curves or single by id
86
+ if id is None :
87
+ curve_data = self .get_info ("curves" )
88
+ else :
89
+ curve_data = self .get_info ('curves' , id )
97
90
98
- def curve ( self , id ): # TODO: make ID optional return full tree w/o ID
99
- return self . get_info ( 'curves' , id )
91
+ # Return curve as json object: curve[""]
92
+ return curve_data
0 commit comments