Browse Source

DIV-1146 & DIV-1120 - Hooked up removeFile and saveMetadata APIs

pull/170/head
Michael Olund 5 years ago
parent
commit
36171b73ef
7 changed files with 64 additions and 5 deletions
  1. +1
    -1
      edivorce/apps/core/urls.py
  2. +13
    -1
      edivorce/apps/core/views/api.py
  3. +0
    -0
      edivorce/apps/poc/models.py
  4. +3
    -2
      edivorce/urls.py
  5. +27
    -0
      vue/package-lock.json
  6. +1
    -0
      vue/package.json
  7. +19
    -1
      vue/src/components/Uploader/Uploader.vue

+ 1
- 1
edivorce/apps/core/urls.py View File

@ -8,7 +8,7 @@ urlpatterns = [
url(r'^api/response$', api.UserResponseHandler.as_view()),
url(r'^api/documents/$', api.DocumentCreateView.as_view(), name='documents'),
path('api/documents/<doc_type>/<int:party_code>/', api.DocumentMetaDataView.as_view(), name='documents-meta'),
path('api/documents/<doc_type>/<int:party_code>/<filename>/<int:size>/', api.DocumentView.as_view(), name='document'),
path('api/documents/<doc_type>/<int:party_code>/<int:size>/<filename>', api.DocumentView.as_view(), name='document'),
# url(r'^login/headers$', system.headers),


+ 13
- 1
edivorce/apps/core/views/api.py View File

@ -6,6 +6,7 @@ from rest_framework import permissions, status
from rest_framework.generics import CreateAPIView, ListAPIView, RetrieveUpdateDestroyAPIView
from rest_framework.views import APIView
from rest_framework.response import Response
from os.path import splitext
from ..models import Document, Question
from ..serializer import CreateDocumentSerializer, DocumentMetadataSerializer, UserResponseSerializer
@ -80,7 +81,18 @@ class DocumentView(RetrieveUpdateDestroyAPIView):
def retrieve(self, request, *args, **kwargs):
""" Return the file instead of meta data """
doc = self.get_object()
content_type = 'application/pdf' if 'pdf' in doc.filename else 'image/jpeg'
# Get the content-type based on the file extension
content_types = {
".pdf": "application/pdf",
".gif": "image/gif",
".png": "image/png",
".jpe": "image/jpeg",
".jpg": "image/jpeg",
".jpeg": "image/jpeg"
}
_, extension = splitext(doc.filename.lower())
content_type = content_types[extension]
# If file doesn't exist anymore, delete it
try:


+ 0
- 0
edivorce/apps/poc/models.py View File


+ 3
- 2
edivorce/urls.py View File

@ -2,6 +2,7 @@ from django.conf import settings
from django.conf.urls import include, url
from django.contrib import admin
from django.urls import path
from django.views.decorators.csrf import csrf_exempt
from graphene_django.views import GraphQLView
from .apps.core.views import main
@ -12,9 +13,9 @@ if settings.ENVIRONMENT in ['localdev', 'dev', 'test', 'minishift']:
import debug_toolbar
urlpatterns.append(url(r'^__debug__/', include(debug_toolbar.urls)),)
urlpatterns.append(url(r'^poc/', include('edivorce.apps.poc.urls')))
urlpatterns.append(path('api/graphql/', GraphQLView.as_view(graphiql=True))),
urlpatterns.append(path('api/graphql/', csrf_exempt(GraphQLView.as_view(graphiql=True))))
else:
urlpatterns.append(path('api/graphql/', GraphQLView.as_view(graphiql=False))),
urlpatterns.append(path('api/graphql/', csrf_exempt(GraphQLView.as_view(graphiql=False))))
if settings.ENVIRONMENT in ['localdev', 'minishift']:
urlpatterns.append(url(r'^admin/', admin.site.urls))


+ 27
- 0
vue/package-lock.json View File

@ -5376,6 +5376,11 @@
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true
},
"get-own-enumerable-property-symbols": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz",
"integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g=="
},
"get-stdin": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
@ -6319,6 +6324,11 @@
"has-symbols": "^1.0.1"
}
},
"is-regexp": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
"integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk="
},
"is-resolvable": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
@ -10150,6 +10160,23 @@
"safe-buffer": "~5.1.0"
}
},
"stringify-object": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz",
"integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==",
"requires": {
"get-own-enumerable-property-symbols": "^3.0.0",
"is-obj": "^1.0.1",
"is-regexp": "^1.0.0"
},
"dependencies": {
"is-obj": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
"integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8="
}
}
},
"strip-ansi": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",


+ 1
- 0
vue/package.json View File

@ -9,6 +9,7 @@
"dependencies": {
"axios": "^0.20.0",
"core-js": "^3.6.5",
"stringify-object": "^3.3.0",
"uiv": "^0.36.1",
"vue": "^2.6.11",
"vue-upload-component": "^2.8.20"


+ 19
- 1
vue/src/components/Uploader/Uploader.vue View File

@ -90,6 +90,7 @@ import ItemTile from './ItemTile'
import FormDefinitions from "../../utils/forms";
import rotateFix from '../../utils/rotation';
import axios from 'axios';
import graphQLStringify from 'stringify-object';
export default {
props: {
@ -310,7 +311,24 @@ export default {
partyCode: this.party,
files: allFiles
};
console.log('Call API', data);
const graphQLData = graphQLStringify(data,{singleQuotes: false, inlineCharacterLimit: 99999});
console.log('Call API', graphQLData);
const url = `${this.$parent.proxyRootPath}api/graphql/`;
axios.post(url, {
query: `
mutation updateMetadata {
updateMetadata(input:${graphQLData}){
documents{filename size rotation}
}
}
`})
.then(response => {
console.log('response', response);
})
.catch((error) => {
this.showError('Error saving metadata');
console.log('error', error);
});
}
},
created() {


Loading…
Cancel
Save