1 # Copyright 2018 EveryUP Srl
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
18 from sf_t3d
.decorators
import login_required
19 from django
.http
import HttpResponse
20 from django
.shortcuts
import render
, redirect
22 from lib
.util
import Util
23 import authosm
.utils
as osmutils
24 from lib
.osm
.osmclient
.clientv2
import Client
26 logging
.basicConfig(level
=logging
.DEBUG
)
27 log
= logging
.getLogger('instancehandler/view.py')
31 user
= osmutils
.get_user(request
)
34 result_client
= client
.nst_list(user
.get_token())
36 result
['templates'] = result_client
['data'] if result_client
and result_client
['error'] is False else []
38 return __response_handler(request
, result
, 'nst_list.html')
41 def create_template(request
, template_id
=None):
45 def edit(request
, template_id
=None):
46 user
= osmutils
.get_user(request
)
48 if request
.method
== 'GET':
49 page
= 'nst_edit.html'
50 result
= client
.nst_content(user
.get_token(), template_id
)
52 return __response_handler(request
, result
, url
=page
, status
=500)
54 return __response_handler(request
, {'template': {'template_id': str(template_id
), 'data': result
['data']}}, url
=page
, status
=200)
55 elif request
.method
== 'POST':
56 result
= client
.nst_content_update(user
.get_token(), template_id
, request
.POST
.get('text'))
57 if result
['error'] == True:
58 return __response_handler(request
, result
['data'], url
=None, status
=result
['data']['status'] if 'status' in result
['data'] else 500)
60 return __response_handler(request
, {}, url
=None, status
=200)
64 def details(request
, template_id
=None):
65 user
= osmutils
.get_user(request
)
67 result
= client
.nst_details(user
.get_token(), template_id
)
69 return __response_handler(request
, result
['data'], url
=None, status
=result
['data']['status'] if 'status' in result
['data'] else 500)
71 return __response_handler(request
, result
, url
=None, status
=200)
74 def delete_template(request
, template_id
=None):
75 user
= osmutils
.get_user(request
)
78 result
= client
.nst_delete(user
.get_token(), template_id
)
81 return __response_handler(request
, result
['data'], url
=None, status
=result
['data']['status'] if 'status' in result
['data'] else 500)
83 return __response_handler(request
, {}, url
=None, status
=200)
87 def download_template(request
, package_id
=None):
91 def onboard_template(request
):
92 user
= osmutils
.get_user(request
)
93 if request
.method
== 'POST':
94 data_type
= request
.POST
.get('type')
95 if data_type
== "file":
96 file_uploaded
= request
.FILES
['file']
99 result
= client
.nst_onboard(user
.get_token(), file_uploaded
)
100 except Exception as e
:
102 result
= {'error': True, 'data': str(e
)}
104 result
= {'error': True, 'data': 'Create descriptor: Unknown data type'}
107 return __response_handler(request
, result
['data'], url
=None, status
=result
['data']['status'] if 'status' in result
['data'] else 500)
109 return __response_handler(request
, {}, url
=None, status
=200)
112 def __response_handler(request
, data_res
, url
=None, to_redirect
=None, *args
, **kwargs
):
113 raw_content_types
= request
.META
.get('HTTP_ACCEPT', '*/*').split(',')
114 if not to_redirect
and ('application/json' in raw_content_types
or url
is None):
115 return HttpResponse(json
.dumps(data_res
), content_type
="application/json", *args
, **kwargs
)
117 return redirect(url
, *args
, **kwargs
)
119 return render(request
, url
, data_res
)