Created
February 5, 2015 20:19
-
-
Save agreen757/8f167ce30f0d239f8539 to your computer and use it in GitHub Desktop.
CSV Parse Using Prototype-oriented Javascript
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//THE REASON THAT I UNCLUDED OLD CODE COMMENTED OUT IS TO SHOW THE DISTINCTION BETWEEN MY OLD METHOD AND THE NEW OO WAY. | |
//DEVELOPED AFTER READING https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript | |
var csv = require("ya-csv") | |
exports.check = function(filename,cb){ | |
//in the check | |
var pusher = function(filename){ | |
this.filename = filename; | |
} | |
pusher.prototype.push = function(c){ | |
var reader = csv.createCsvFileReader(__dirname+'/../upload/'+filename, {columnsFromHeader:true,'separator': ','}); | |
var silo = []; | |
reader.addListener('data', function(data){ | |
console.log(data) | |
//silo[0].type will equal the type | |
silo.push({album_artist:data.album_artist, | |
album_title:data.album_title, | |
album_grid:data.album_grid, | |
album_ean:data.album_ean, | |
album_upc:data.album_upc, | |
album_release_date:data.album_release_date, | |
album_label:data.album_label, | |
album_art_filename:data.album_art_filename, | |
track_number:data.track_number, | |
track_title:data.track_title, | |
track_filename:data.track_filename, | |
track_custom_id:data.track_custom_id, | |
track_artist:data.track_artist, | |
track_genres:data.track_genres, | |
track_isrc:data.track_isrc, | |
track_pline:data.track_pline, | |
track_territory_start_dates:data.track_territory_start_dates, | |
track_explicit_lyrics:data.track_explicit_lyrics, | |
filename:data.filename, | |
custom_id:data.custom_id, | |
isrc:data.isrc, | |
upc:data.upc, | |
grid:data.grid, | |
song_title:data.song_title, | |
artist:data.artist, | |
album:data.album, | |
genre:data.genre, | |
label:data.label, | |
original_release_date:data.original_release_date, | |
match_policy:data.match_policy, | |
ownership:data.ownership, | |
admin_sync_rights:data.admin_sync_rights, | |
comp_writers:data.comp_writers, | |
comp_sync_ownership:data.comp_sync_ownership, | |
type:data.type | |
}) | |
}) | |
reader.addListener('end',function(){ | |
var type1 = new checker(silo[0].type) | |
type1.typeswitch(silo,function(err,data){ | |
if(err) throw err; | |
return c(null,'something') | |
}) | |
}) | |
} | |
//************************************************************ | |
//********************ENTRY POINT*************************** | |
var woo = new pusher(filename) | |
woo.push(function(err,data){ | |
if(err) throw err; | |
return cb(null,'something') | |
}) | |
//************************************************************ | |
//OLD CODE BLOCK - WE NOW CREATE A NEW INSTANCE OF THE PUSHER FUNCTION EVERY TIME | |
/*var reader = csv.createCsvFileReader(__dirname+'/../upload/'+filename, {columnsFromHeader:true,'separator': ','}); | |
var silo = []; | |
reader.addListener('data', function(data){ | |
console.log(data) | |
//silo[0].type will equal the type | |
silo.push({album_artist:data.album_artist, | |
album_title:data.album_title, | |
album_grid:data.album_grid, | |
album_ean:data.album_ean, | |
album_upc:data.album_upc, | |
album_release_date:data.album_release_date, | |
album_label:data.album_label, | |
album_art_filename:data.album_art_filename, | |
track_number:data.track_number, | |
track_title:data.track_title, | |
track_filename:data.track_filename, | |
track_custom_id:data.track_custom_id, | |
track_artist:data.track_artist, | |
track_genres:data.track_genres, | |
track_isrc:data.track_isrc, | |
track_pline:data.track_pline, | |
track_territory_start_dates:data.track_territory_start_dates, | |
track_explicit_lyrics:data.track_explicit_lyrics, | |
filename:data.filename, | |
custom_id:data.custom_id, | |
isrc:data.isrc, | |
upc:data.upc, | |
grid:data.grid, | |
song_title:data.song_title, | |
artist:data.artist, | |
album:data.album, | |
genre:data.genre, | |
label:data.label, | |
original_release_date:data.original_release_date, | |
match_policy:data.match_policy, | |
ownership:data.ownership, | |
admin_sync_rights:data.admin_sync_rights, | |
comp_writers:data.comp_writers, | |
comp_sync_ownership:data.comp_sync_ownership, | |
type:data.type | |
}) | |
}) | |
reader.addListener('end',function(){ | |
/*typecheck(silo,function(err,data){ | |
if(err) throw err; | |
return cb(null,'something'); | |
})*/ | |
/* | |
var type1 = new checker(silo[0].type) | |
type1.typeswitch(silo,function(err,data){ | |
if(err) throw err; | |
return cb(null,'something') | |
}) | |
})*/ | |
} | |
var checker = function(type){ | |
this.type = type; | |
} | |
checker.prototype.artcheck = function(c){ | |
console.log('in proto artcheck') | |
return c(null,'good') | |
} | |
checker.prototype.contentcheck = function(c){ | |
console.log('in proto contentcheck') | |
return c(null,'good') | |
} | |
checker.prototype.typeswitch = function(silo,c){ | |
switch(this.type){ | |
case "art_track": | |
this.artcheck(function(err,data){ | |
if(err) throw err; | |
return c(null,'good') | |
}) | |
break; | |
case "content_id": | |
this.contentcheck(function(err,data){ | |
if(err) throw err; | |
return c(null,'good') | |
}) | |
break; | |
} | |
} | |
//OLD CODE BLOCK | |
/*function typecheck(silo,c){ | |
switch (silo[0].type) { | |
case "art_track": | |
artcheck(function(err,data){ | |
if(err) throw err | |
return c(null,'good') | |
}) | |
break; | |
case "content_id": | |
contentcheck(function(err,data){ | |
if(err) throw err | |
return c(null,'good') | |
}) | |
break; | |
} | |
function artcheck(c){ | |
console.log('in artcheck') | |
return c(null,'good') | |
} | |
function contentcheck(c){ | |
console.log('in contentcheck') | |
return c(null,'good') | |
} | |
}*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment