openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

api.min.js (1223B)


      1 import Notice from "./notice.min.js";
      2 export default class Api {
      3 sendData = function( formData ) {
      4 console.debug( "API form data", formData );
      5 let api = this;
      6 return new Promise( (resolve, reject) => {
      7 let load = fetch( './', {
      8 'method':'POST',
      9 headers: {
     10 'Accept': 'application/json',
     11 },
     12 body:formData
     13 } );
     14 load.then( response => {
     15 if   ( ! response.ok )
     16 reject( "Failed to post" );
     17 return response.json();
     18 }).then( data => {
     19 for( let value of data['notices'] ) {
     20 let notice = new Notice();
     21 notice.setContext( value.type, value.id, value.name );
     22 notice.log = value.log;
     23 notice.setStatus( value.status );
     24 notice.msg = value.text;
     25 notice.show();
     26 if	( api.notifyBrowser )
     27 notice.notifyBrowser()
     28 };
     29 if	( data.success ) { 
     30 resolve();
     31 }
     32 else {
     33 for( name of data['errors'] )
     34 this.validationErrorForField( name );
     35 reject('API request failed');
     36 }
     37 } ).catch( cause => {
     38 console.warn( {
     39 message: 'API request failed',
     40 cause  : cause,
     41 data   : formData,
     42 } );
     43 let msg = '';
     44 try {
     45 msg = JSON.parse( cause ).message;
     46 }
     47 catch( e ) {
     48 msg = cause;
     49 }
     50 let notice = new Notice();
     51 notice.setStatus('error');
     52 notice.msg = msg;
     53 notice.log = cause; 
     54 notice.show();
     55 reject( msg );
     56 } );
     57 } );
     58 }
     59 validationErrorForField = function( nameOfField ) {
     60 }
     61 }