@@ -93,14 +93,19 @@ def to_dict(self):
9393
9494class ReadMixin (object ):
9595 qbo_object_name = ""
96+ qbo_json_object_name = ""
9697
9798 @classmethod
9899 def get (cls , id , qb = None ):
99100 if not qb :
100101 qb = QuickBooks ()
101102
102103 json_data = qb .get_single_object (cls .qbo_object_name , pk = id )
103- return cls .from_json (json_data [cls .qbo_object_name ])
104+
105+ if cls .qbo_json_object_name != '' :
106+ return cls .from_json (json_data [cls .qbo_json_object_name ])
107+ else :
108+ return cls .from_json (json_data [cls .qbo_object_name ])
104109
105110
106111class SendMixin (object ):
@@ -141,6 +146,7 @@ def void(self, qb=None):
141146
142147class UpdateMixin (object ):
143148 qbo_object_name = ""
149+ qbo_json_object_name = ""
144150
145151 def save (self , qb = None ):
146152 if not qb :
@@ -151,9 +157,12 @@ def save(self, qb=None):
151157 else :
152158 json_data = qb .create_object (self .qbo_object_name , self .to_json ())
153159
154- obj = type (self ).from_json (json_data [self .qbo_object_name ])
155- self .Id = obj .Id
160+ if self .qbo_json_object_name != '' :
161+ obj = type (self ).from_json (json_data [self .qbo_json_object_name ])
162+ else :
163+ obj = type (self ).from_json (json_data [self .qbo_object_name ])
156164
165+ self .Id = obj .Id
157166 return obj
158167
159168
@@ -176,6 +185,7 @@ def delete(self, qb=None):
176185
177186class ListMixin (object ):
178187 qbo_object_name = ""
188+ qbo_json_object_name = ""
179189
180190 @classmethod
181191 def all (cls , order_by = "" , start_position = "" , max_results = 100 , qb = None ):
@@ -253,8 +263,13 @@ def query(cls, select, qb=None):
253263
254264 obj_list = []
255265
256- if cls .qbo_object_name in json_data ["QueryResponse" ]:
257- for item_json in json_data ["QueryResponse" ][cls .qbo_object_name ]:
266+ if cls .qbo_json_object_name != '' :
267+ object_name = cls .qbo_json_object_name
268+ else :
269+ object_name = cls .qbo_object_name
270+
271+ if object_name in json_data ["QueryResponse" ]:
272+ for item_json in json_data ["QueryResponse" ][object_name ]:
258273 obj_list .append (cls .from_json (item_json ))
259274
260275 return obj_list
0 commit comments