4
4
5
5
from numpy import number
6
6
from flask import make_response , request , jsonify , Blueprint
7
- < << << << HEAD
8
- == == == =
9
- from flask_cors import cross_origin
10
- > >> >> >> 32 dee55d98864ba43414c8757ab4abe2e4881f66
11
7
12
8
import sys
13
9
14
10
sys .path .insert (0 , ".." ) # import parent folder
15
11
16
- < << << << HEAD
17
12
from controllers .controllerMapper import TicketController , TicketStatusController
18
- == == == =
19
- from controllers .controllerMapper import TicketController
20
- > >> >> >> 32 dee55d98864ba43414c8757ab4abe2e4881f66
21
13
from models .models import TicketEvents
22
14
from utils import (
23
15
AlchemyEncoder ,
24
16
alchemyConverter ,
25
17
)
26
18
27
- < << << << HEAD
28
19
# from flask_cognito_lib.decorators import auth_required
29
20
30
21
ticket_bp = Blueprint ("ticket_bp" , __name__ , url_prefix = "ticket" )
31
22
32
23
ticket_controller = TicketController ()
33
24
ticket_status_controller = TicketStatusController ()
34
25
PIECES_SEPERATOR = ",+-"
35
- == == == =
36
- ticket_bp = Blueprint ("ticket_bp" , __name__ , url_prefix = "ticket" )
37
-
38
- # TODO: USER BASED AUTH
39
-
40
- ticket_controller = TicketController ()
41
-
42
- > >> >> >> 32 dee55d98864ba43414c8757ab4abe2e4881f66
43
26
"""
44
27
Route expects requests of format:
45
28
@@ -97,12 +80,7 @@ def ticket_get_all_with_status(status): # create ticket
97
80
98
81
99
82
@ticket_bp .route ("/" , methods = ["POST" ])
100
- < << << << HEAD
101
83
#@auth_required()
102
- == == == =
103
- @cross_origin (supports_credentials = True )
104
- @require_appkey
105
- > >> >> >> 32 dee55d98864ba43414c8757ab4abe2e4881f66
106
84
def ticket_post (): # create ticket
107
85
print ("Creating ticket from the following JSON:" )
108
86
print (request .data )
@@ -132,7 +110,6 @@ def ticket_edit(ticket_id): # create ticket
132
110
ticket_dict ["pieces" ] = PIECES_SEPERATOR .join (ticket_dict ["pieces" ])
133
111
ticket_event = ticket_controller ._create_base_event (ticket_dict )
134
112
135
- < << << << HEAD
136
113
response = {"ticketId" : ticket_event .ticketId }
137
114
return make_response (json .dumps (response ))
138
115
@@ -150,46 +127,19 @@ def get_clean_filters_dict(immutable_args):
150
127
if "limit" in sql_filters :
151
128
del sql_filters ["limit" ]
152
129
return sql_filters
153
- == == == =
154
- return {"success" }
155
-
156
-
157
- # http://127.0.0.1:6767/api/ticket/?start=2022-01-01T00:00:00&end=2022-04-04T00:00:00&shipperName=Eric%20Shea
158
- # curl http://127.0.0.1:6767/api/ticket/?shipperName
159
- # # curl http://127.0.0.1:6767/api/ticket?key=a
160
- # # curl http://127.0.0.1:6767/api/ticket/?start=2022-01-01T00:00:00Z&end=2022-04-04T00:00:00Z
161
- >> >> >> > 32 dee55d98864ba43414c8757ab4abe2e4881f66
162
130
163
131
def corsify (resp ):
164
132
resp = make_response (json .dumps (resp ))
165
133
resp .headers ['Access-Control-Allow-Origin' ] = '*'
166
134
resp .headers ['Access-Control-Allow-Headers' ] = ['Origin' , 'X-Requested-With' , 'Content-Type' , 'Accept' ]
167
135
return resp
168
136
169
- < << << << HEAD
170
137
def validate_date_format (date_text ):
171
138
try :
172
139
return datetime .strptime (date_text , "%Y-%m-%dT%H:%M:%S" )
173
140
except ValueError :
174
141
raise ValueError ("Incorrect data format, should be %Y-%m-%dT%H:%M:%S" )
175
142
176
- == == == =
177
- def get_clean_filters_dict (immutable_args ):
178
- sql_filters = dict (immutable_args )
179
- if "start" in sql_filters :
180
- del sql_filters ["start" ]
181
- if "end" in sql_filters :
182
- del sql_filters ["end" ]
183
- if "limit" in sql_filters :
184
- del sql_filters ["limit" ]
185
- return sql_filters
186
-
187
- def validate_date_format (date_text ):
188
- try :
189
- return datetime .strptime (date_text , "%Y-%m-%dT%H:%M:%S" )
190
- except ValueError :
191
- raise ValueError ("Incorrect data format, should be %Y-%m-%dT%H:%M:%S" )
192
- > >> >> >> 32 dee55d98864ba43414c8757ab4abe2e4881f66
193
143
194
144
def default_start ():
195
145
dt_start = validate_date_format ("1900-01-01T00:00:00" )
@@ -199,7 +149,6 @@ def default_end():
199
149
dt_end = validate_date_format ("2100-01-01T00:00:00" )
200
150
return dt_end
201
151
202
- < << << << HEAD
203
152
def default_end ():
204
153
dt_end = validate_date_format ("2100-01-01T00:00:00" )
205
154
return dt_end
@@ -227,45 +176,9 @@ def ticket_get_all():
227
176
for ticket in res :
228
177
ticket ["pieces" ] = ticket ["pieces" ].split (PIECES_SEPERATOR )
229
178
ticket ["ticketStatus" ]["currentStatus" ] = ticket ["ticketStatus" ]["currentStatus" ].value
230
- == == == =
231
- @ticket_bp .route ("/" , methods = ["GET" ])
232
- @cross_origin (supports_credentials = True )
233
- # @require_appkey
234
- def ticket_get_all ():
235
- filters = request .args or {}
236
- sql_filters = get_clean_filters_dict (filters )
237
- limit = 5000 if "limit" not in filters else filters ["limit" ]
238
-
239
- dt_start = validate_date_format (filters ["start" ]) if "start" in filters else default_start ()
240
- dt_end = validate_date_format (filters ["end" ]) if "end" in filters else default_end ()
241
-
242
- data = ticket_controller ._get_latest_event_objects_in_range (dt_start , dt_end , sql_filters , number_of_res = limit )
243
-
244
- res = alchemyConverter (data )
245
-
246
- return corsify (res )
247
-
248
-
249
- @ticket_bp .route ("/<ticket_id>" , methods = ["GET" ])
250
- @cross_origin (supports_credentials = True )
251
- # @require_appkey
252
- def ticket_get (ticket_id ):
253
- filters = request .args .get ("filters" ) or {}
254
-
255
-
256
- sql_filters = get_clean_filters_dict (filters )
257
- sql_filters ["ticketId" ] = ticket_id
258
- data = ticket_controller ._get_latest_event_objects_in_range (
259
- default_start (), default_end (), filters = sql_filters
260
- )
261
-
262
- res = alchemyConverter (data [0 ])
263
- return corsify (res )
264
- > >> >> >> 32 dee55d98864ba43414c8757ab4abe2e4881f66
265
179
266
180
return make_response (json .dumps (res , cls = AlchemyEncoder ))
267
181
268
- < << << << HEAD
269
182
270
183
def get_single (ticket_id ):
271
184
filters = request .args .get ("filters" ) or {}
@@ -284,38 +197,10 @@ def ticket_get(ticket_id):
284
197
data = get_single (ticket_id )
285
198
res = alchemyConverter (data )
286
199
return make_response (json .dumps (res , cls = AlchemyEncoder ))
287
- == == == =
288
- {
289
- "datetime" : "value" ,
290
- "filters" : {
291
- "field1" : "value1" ,
292
- "field2" : "value2" ,
293
- ....
294
- }
295
- }
296
-
297
- """
298
-
299
-
300
-
301
- # @ticket_bp.route("/attribute/{attribute_name}", methods=["GET"])
302
- # @require_appkey
303
- # def ticket_attribute_get(attribute_name):
304
-
305
- # filters.extend({"ticket_id": ticket_id})
306
-
307
- # latest_ticket = ticket_controller._get_latest_event_objects(
308
- # number_of_res=number_of_res, filters=filters
309
- # )
310
-
311
- # res = alchemyConverter(latest_ticket)
312
- # response = json.dumps(res, cls=AlchemyEncoder)
313
- >>>>>>> 32dee55d98864ba43414c8757ab4abe2e4881f66
314
200
315
201
# return response
316
202
317
-
318
- <<<<<<< HEAD
203
+ """
319
204
{
320
205
"datetime" : "value",
321
206
"filters" : {
@@ -326,9 +211,6 @@ def ticket_get(ticket_id):
326
211
}
327
212
328
213
"""
329
- == == == =
330
-
331
- >> >> >> > 32 dee55d98864ba43414c8757ab4abe2e4881f66
332
214
333
215
"""
334
216
Route expects requests of format:
@@ -348,29 +230,3 @@ def ticket_get(ticket_id):
348
230
349
231
"""
350
232
351
- < << << << HEAD
352
- == == == =
353
-
354
- @ticket_bp .route ("/<ticket_id>" , methods = ["PUT" ])
355
- @cross_origin (supports_credentials = True )
356
- @require_appkey
357
- def ticket_update (ticket_id ):
358
-
359
- update_dict = request .form ["update_dict" ]
360
-
361
- # remove ticketId and ticketEventId if present
362
- update_dict .pop (ticket_controller .primary_key , None )
363
- update_dict .pop (TicketEvents .non_prim_identifying_column_name , None )
364
-
365
- filters = request .form ["filters" ]
366
- filters .extend ({"ticket_id" : ticket_id })
367
-
368
- updated_object = ticket_controller ._modify_latest_object (
369
- update_dict , filters = filters
370
- )
371
-
372
- res = alchemyConverter (updated_object )
373
- response = json .dumps (res , cls = AlchemyEncoder )
374
-
375
- return response
376
- > >> >> >> 32 dee55d98864ba43414c8757ab4abe2e4881f66
0 commit comments