Class Test

by nevkatz

JavaScript

class template_slide {
	constructor({title,nid}) {
		this.title = title;
		this.nid = nid;
  }
    
	check(o,prop, fieldname='value') {
		if (Array.isArray(o[prop] && o[prop].length == 0)) {
			return '';
		}
		return o[prop].und ? o[prop].und[0][fieldname] : o[prop];
	}
}
let extract = (x) => {
  return Array.isArray(x) ? x[0] : x;
}

class template_sc_slide extends template_slide {
	constructor(arg) {
    let o = extract(arg);
		super(o);

    let fieldnames = ['check_participation_form',
		                   'text_slide_subtitle'];
                       
    for (let fieldname of fieldnames) {
			this[fieldname] = this.check(o, 'field_'+fieldname);
		}      
    this.readable_name = this.check(o, 'field_readable_slide_name');


	}
}



let o = {
title: 'Nevin',
nid: '88',
field_readable_slide_name:{
  und:[
  {value:'Readable name!'}
  ]
 },
 field_text_slide_subtitle:'Subtitle',
 field_check_participation_form:{
  und:[
    {value:'Yes ma\'am!'}
  ]
 }
}
let arr = [o];
let instance = new template_sc_slide(arr);

Object.keys(instance).forEach(function(prop){

   let val = instance[prop];
   
   console.log(prop + ': ' + val);
   
});