Commit f8c1e3f8 authored by John Red Medrano's avatar John Red Medrano

Merge pull request #55 in RMS/api-main-service from dev to staging

* commit 'e8353f0e':
  ready for uat
  ready for uat
  file download for get
  fixing
  added filters'
  added filterset on application endpoint
parents 11f53daa e8353f0e
...@@ -43,9 +43,14 @@ class Helper: ...@@ -43,9 +43,14 @@ class Helper:
def _request_method(self, request, final_endpoint, headers): def _request_method(self, request, final_endpoint, headers):
if request.method == 'GET': if request.method == 'GET':
req = requests.get(final_endpoint, headers=headers) req = requests.get(final_endpoint, headers=headers)
if req.headers.get('content-type') == 'application/json':
return self._response_data(req.json(), return self._response_data(req.json(),
req.status_code, req.status_code,
self._headers) req.headers)
else:
return req
elif request.method == 'POST': elif request.method == 'POST':
data = copy.deepcopy(request.data) data = copy.deepcopy(request.data)
...@@ -114,6 +119,7 @@ class Helper: ...@@ -114,6 +119,7 @@ class Helper:
base_url = endpoint.service.base_url base_url = endpoint.service.base_url
full_path = request.get_full_path() full_path = request.get_full_path()
final_endpoint = f"{base_url}{full_path}" final_endpoint = f"{base_url}{full_path}"
# print(final_endpoint)
if endpoint.is_need_auth is True: if endpoint.is_need_auth is True:
# redirect to authenticator service # redirect to authenticator service
......
from rest_framework.views import APIView from rest_framework.views import APIView
from rest_framework.response import Response from rest_framework.response import Response
from .utils import Helper from .utils import Helper
from django.conf import settings
from django.http import FileResponse
class APIGatewayList(APIView): class APIGatewayList(APIView):
...@@ -9,6 +10,19 @@ class APIGatewayList(APIView): ...@@ -9,6 +10,19 @@ class APIGatewayList(APIView):
service = kwargs.get('service') service = kwargs.get('service')
endpoint_url = kwargs.get('endpoint_url') endpoint_url = kwargs.get('endpoint_url')
api = Helper().get_endpoint(request, service, endpoint_url) api = Helper().get_endpoint(request, service, endpoint_url)
if str(type(api)) == "<class 'requests.models.Response'>":
# varifile = f"{settings.BASE_DIR}/test.xlsx"
# filedesciptor = open(varifile, 'wb')
# filedesciptor.write(api.content)
# filedesciptor.close()
# filer = open(varifile, 'rb')
return FileResponse(api, as_attachment=True)
return Response(api['data'], return Response(api['data'],
status=api['status_code'], status=api['status_code'],
headers=api['headers']) headers=api['headers'])
......
...@@ -9,13 +9,22 @@ from api.utils import ( ...@@ -9,13 +9,22 @@ from api.utils import (
CustomPagination, BadRequestException, CustomPagination, BadRequestException,
status_message_response, number_generator, tbl_ordering status_message_response, number_generator, tbl_ordering
) )
from django_filters.rest_framework import DjangoFilterBackend from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.filters import SearchFilter from rest_framework.filters import SearchFilter
from django_filters import rest_framework as filters
AUTHENTICATOR_GROUP = settings.AUTHENTICATOR_GROUP AUTHENTICATOR_GROUP = settings.AUTHENTICATOR_GROUP
class ApplicationFilterSet(filters.FilterSet):
class Meta:
model = Application
fields = ('__all__')
class ApplicationViewSet(viewsets.ModelViewSet): class ApplicationViewSet(viewsets.ModelViewSet):
http_method_names = [ http_method_names = [
'get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace' 'get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace'
...@@ -25,6 +34,7 @@ class ApplicationViewSet(viewsets.ModelViewSet): ...@@ -25,6 +34,7 @@ class ApplicationViewSet(viewsets.ModelViewSet):
serializer_class = ApplicationSerializer serializer_class = ApplicationSerializer
pagination_class = CustomPagination pagination_class = CustomPagination
filter_backends = (DjangoFilterBackend, SearchFilter,) filter_backends = (DjangoFilterBackend, SearchFilter,)
filterset_class = ApplicationFilterSet
search_fields = ('application_no', 'name', 'code') search_fields = ('application_no', 'name', 'code')
# filter_class = APIEndpointFilter # filter_class = APIEndpointFilter
...@@ -91,17 +101,17 @@ class ApplicationViewSet(viewsets.ModelViewSet): ...@@ -91,17 +101,17 @@ class ApplicationViewSet(viewsets.ModelViewSet):
results = [] results = []
for item in serializer.data: for item in serializer.data:
# print(item['code']) # print(item['code'])
ids = item['code'] # ids = item['code']
# headers = { # headers = {
# 'content-type': 'application/json', # 'content-type': 'application/json',
# 'Authorization': request.META['HTTP_AUTHORIZATION'] # 'Authorization': request.META['HTTP_AUTHORIZATION']
# } # }
req = requests.get(f'{AUTHENTICATOR_GROUP}/{ids}/') # req = requests.get(f'{AUTHENTICATOR_GROUP}/{ids}/')
groups = req.json()['groups'] # groups = req.json()['groups']
modules = req.json()['modules'] # modules = req.json()['modules']
item['groups'] = groups # item['groups'] = groups
item['modules'] = modules # item['modules'] = modules
results.append(item) results.append(item)
message = { message = {
......
...@@ -8,7 +8,7 @@ DATABASE_PORT = ...@@ -8,7 +8,7 @@ DATABASE_PORT =
[UAT] [UAT]
DATABASE_ENGINE = django.db.backends.mysql DATABASE_ENGINE = django.db.backends.mysql
DATABASE_NAME = devrms_main_db DATABASE_NAME = uat_rms_main_db
DATABASE_USER = oneberry DATABASE_USER = oneberry
DATABASE_PASSWORD = 0N3Berryt!r DATABASE_PASSWORD = 0N3Berryt!r
DATABASE_HOST = 52.74.129.178 DATABASE_HOST = 52.74.129.178
...@@ -16,14 +16,15 @@ DATABASE_PORT = 3306 ...@@ -16,14 +16,15 @@ DATABASE_PORT = 3306
[LOCAL] [LOCAL]
DATABASE_ENGINE = django.db.backends.mysql DATABASE_ENGINE = django.db.backends.mysql
DATABASE_NAME = authenticatordb DATABASE_NAME = ob_maindb
DATABASE_USER = root DATABASE_USER = root
DATABASE_PASSWORD = DATABASE_PASSWORD = password
DATABASE_HOST = DATABASE_HOST = 127.0.0.1
DATABASE_PORT = DATABASE_PORT = 3306
[SETTINGS] [SETTINGS]
CONFIG = config.settings.uat CONFIG = config.settings.uat
[SERVICE] [SERVICE]
AUTHENTICATOR_IP = 172.17.0.1:7011 AUTHENTICATOR_IP = 172.17.0.1:7011
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment