From 6a17e2766bdcb436dd00f2cfb7cf5602462c0d35 Mon Sep 17 00:00:00 2001 From: Primoz Cvenkelj Date: Tue, 18 Oct 2016 15:44:09 +0200 Subject: [PATCH 1/4] Added heroku environment and setup the parse dashboard to view it locally --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a736d61500..0bcbe6af85 100644 --- a/package.json +++ b/package.json @@ -1,4 +1,4 @@ -{ + { "name": "parse-server-codecraft", "version": "1.4.0", "description": "An example Parse API server using the parse-server module", From 409927957a66c4bbdbe4fc7959674f0b70255cc2 Mon Sep 17 00:00:00 2001 From: Primoz Cvenkelj Date: Tue, 18 Oct 2016 18:50:22 +0200 Subject: [PATCH 2/4] Added a new class, queried it. Edited it and delete it. --- exercise/index.html | 14 ++++++++ exercise/run.js | 81 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 exercise/index.html create mode 100644 exercise/run.js diff --git a/exercise/index.html b/exercise/index.html new file mode 100644 index 0000000000..7f70e53af4 --- /dev/null +++ b/exercise/index.html @@ -0,0 +1,14 @@ + + + + + + + JS Bin + + + + + + + \ No newline at end of file diff --git a/exercise/run.js b/exercise/run.js new file mode 100644 index 0000000000..486cafea82 --- /dev/null +++ b/exercise/run.js @@ -0,0 +1,81 @@ + + +Parse.initialize("fo234155135dgwefb"); +Parse.serverURL = "https://parse-server-exmpl.herokuapp.com/parse"; + + +var Customer = Parse.Object.extend("Customer"); +var customer = new Customer(); + +var data = { + + 'name': 'Primoz', + 'surname': 'Cvenkelj', + 'profession': 'js guru' + +}; + +customer.save(data, { + + success: function(user){ + + console.log("A new user with the id " + user.id + " was saved!"); + + var q = new Parse.Query("Customer"); + q.get(user.id, { + + success: function(user) { + + console.log("A user with the id " + user.id + " was retrieved!"); + + user.set('name', 'Cecko'); + user.set('age', 30); + + user.save(null, { + + success: function(user) { + + console.log("A user with the id " + user.id + " was updated!"); + + user.destroy({ + + success: function(user) { + + console.log('User ' +user.id +'was deleted'); + + }, + error: function(err) { + + + } + }); + + }, + + error: function(user, err) { + + console.log(err); + + } + + }); + + }, + + error: function(user, err) { + + console.log(err); + } + + }); + + }, + error: function(user, err){ + + console.log(err); + + } + +}); + + From 69d8813d8df68404309884e0c05a6eea19d1334e Mon Sep 17 00:00:00 2001 From: Primoz Cvenkelj Date: Thu, 20 Oct 2016 17:43:12 +0200 Subject: [PATCH 3/4] Added various queries to search and retrive data from the DB --- exercise/index.html | 1 + exercise/queries.js | 63 +++++++++++++++ exercise/run.js | 182 +++++++++++++++++++++++++++++++------------- 3 files changed, 195 insertions(+), 51 deletions(-) create mode 100644 exercise/queries.js diff --git a/exercise/index.html b/exercise/index.html index 7f70e53af4..781bf8b31f 100644 --- a/exercise/index.html +++ b/exercise/index.html @@ -7,6 +7,7 @@ JS Bin + diff --git a/exercise/queries.js b/exercise/queries.js new file mode 100644 index 0000000000..505e0269ff --- /dev/null +++ b/exercise/queries.js @@ -0,0 +1,63 @@ +var Player = Parse.Object.extend('Player'); +// var Team = Parse.Object.extend('Team'); + +var q = new Parse.Query('Player'); +q.limit(1000); +q.descending('dateOfBirth'); +q.first() + .then(function(player){ + console.log('The youngest player is ' + player.get('name')); + }); + + +var q = new Parse.Query('Player'); +q.limit(1000); +q.descending('jerseyNumber'); +q.first() + .then(function(player){ + console.log('Player with the highest jersey number is ' + + player.get('jerseyNumber') + ' and his name is ' + player.get('name')); + }); + +var q = new Parse.Query('Player'); +q.equalTo('position', 'Keeper'); +q.equalTo('nationality', 'Wales'); +q.find() + .then(function(players) { + console.log('There are ' + players.length + ' Welsh keepers'); +}); + +var q = new Parse.Query('Player'); +q.descending('marketValue'); +q.skip(10); +q.limit(3); +q.find() + .then(function(players){ + console.log('The 11th, 12th and 13th most expensive players are:'); + for(var i = 0;i < players.length; i++) { + console.log(players[i].get('name') + ' who cost ' + players[i].get('marketValue')); + } + }); + +var q = new Parse.Query("Player"); +q.notContainedIn("teamCode", ["MCFC", "SCFC", "LFC"]); +q.count() + .then(function(count){ + console.log(count + " players are not playing for MCFC, SCFC or LFC"); + }); + +var q1 = new Parse.Query('Player'); +q1.lessThan('jerseyNumber', 10); + +var q2 = new Parse.Query('Player'); +q2.greaterThan('jerseyNumber', 50); + + +var compoudQuery = Parse.Query.or(q1, q2); +compoudQuery.find() + .then(function(players){ + console.log('Players whose number is less than 10 or more than 50 are:'); + for(var i = 0; i < players.length; i++){ + console.log(players[i].get('name')); + } + }); \ No newline at end of file diff --git a/exercise/run.js b/exercise/run.js index 486cafea82..55712e6d50 100644 --- a/exercise/run.js +++ b/exercise/run.js @@ -4,78 +4,158 @@ Parse.initialize("fo234155135dgwefb"); Parse.serverURL = "https://parse-server-exmpl.herokuapp.com/parse"; -var Customer = Parse.Object.extend("Customer"); -var customer = new Customer(); - -var data = { - - 'name': 'Primoz', - 'surname': 'Cvenkelj', - 'profession': 'js guru' +// var Customer = Parse.Object.extend("Customer"); +// var customer = new Customer(); +// +// var data = { +// +// 'name': 'Primoz', +// 'surname': 'Cvenkelj', +// 'profession': 'js guru' +// +// }; +// +// customer.save(data, { +// +// success: function(user){ +// +// console.log("A new user with the id " + user.id + " was saved!"); +// +// var q = new Parse.Query("Customer"); +// q.get(user.id, { +// +// success: function(user) { +// +// console.log("A user with the id " + user.id + " was retrieved!"); +// +// user.set('name', 'Cecko'); +// user.set('age', 30); +// +// user.save(null, { +// +// success: function(user) { +// +// console.log("A user with the id " + user.id + " was updated!"); +// +// user.destroy({ +// +// success: function(user) { +// +// console.log('User ' +user.id +'was deleted'); +// +// }, +// error: function(err) { +// +// +// } +// }); +// +// }, +// +// error: function(user, err) { +// +// console.log(err); +// +// } +// +// }); +// +// }, +// +// error: function(user, err) { +// +// console.log(err); +// } +// +// }); +// +// }, +// error: function(user, err){ +// +// console.log(err); +// +// } +// +// }); + +/*var Order = Parse.Object.extend('Order'); +var order = new Order(); + +var orderData = { + + order_id: 'OI_1234', + amount: 112.3, + date: Date.now() }; -customer.save(data, { - - success: function(user){ - - console.log("A new user with the id " + user.id + " was saved!"); - - var q = new Parse.Query("Customer"); - q.get(user.id, { - - success: function(user) { - - console.log("A user with the id " + user.id + " was retrieved!"); - - user.set('name', 'Cecko'); - user.set('age', 30); - - user.save(null, { - - success: function(user) { - - console.log("A user with the id " + user.id + " was updated!"); +order.save(orderData) + .then(function success(obj){ + console.log('You created the order' + obj.id+ '!'); + }, function error(obj, err){ + console.log(err); +}); - user.destroy({ - success: function(user) { +var Item = Parse.Object.extend('Item'); +var items = [ - console.log('User ' +user.id +'was deleted'); + { + item_id: 1, + name: 'hat', + cost: 12.3, + order: order - }, - error: function(err) { + }, + { + item_id: 2, + name: 'shoes', + cost: 50, + order: order + }, + { + item_id: 3, + name: 'glove', + cost: 50, + order: order - } - }); + } - }, - error: function(user, err) { +]; - console.log(err); +for(var i = 0; i < items.length; i++) { + var item = new Item(); + item.save(items[i]) + .then(function success(item) { + console.log('Item created with id' + item.id); + }, function error(item, err) { + console.log(err); + }); +}*/ - } - }); +function onComplete(){ - }, + var promise = new Parse.Promise(); - error: function(user, err) { + setTimeout(function(){ - console.log(err); - } + console.log('Timeout set'); + promise.resolve('Promise resolved'); - }); + }, 2000); - }, - error: function(user, err){ + return promise; +}; - console.log(err); +onComplete() + .then(function success(message){ - } + console.log(message); + console.log('Now its time to go to work'); -}); + }); From 0376b3547e108adec8d8ad221d282e2cdebfadf7 Mon Sep 17 00:00:00 2001 From: Primoz Cvenkelj Date: Thu, 20 Oct 2016 18:05:35 +0200 Subject: [PATCH 4/4] Added compound queries --- exercise/queries.js | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/exercise/queries.js b/exercise/queries.js index 505e0269ff..9d546108c4 100644 --- a/exercise/queries.js +++ b/exercise/queries.js @@ -1,5 +1,5 @@ var Player = Parse.Object.extend('Player'); -// var Team = Parse.Object.extend('Team'); +var Team = Parse.Object.extend('Team'); var q = new Parse.Query('Player'); q.limit(1000); @@ -52,12 +52,36 @@ q1.lessThan('jerseyNumber', 10); var q2 = new Parse.Query('Player'); q2.greaterThan('jerseyNumber', 50); +var queriedPlayers = []; var compoudQuery = Parse.Query.or(q1, q2); compoudQuery.find() .then(function(players){ console.log('Players whose number is less than 10 or more than 50 are:'); for(var i = 0; i < players.length; i++){ - console.log(players[i].get('name')); + console.log(players[i].get('name') + ' ('+ players[i].get('jerseyNumber')+ ')'); + queriedPlayers.push(players); } - }); \ No newline at end of file + }); + +console.log(queriedPlayers); + + +var teamQ = new Parse.Query('Team'); +teamQ.startsWith('name', 'Man'); +teamQ.find() + .then(function(teams){ + console.log(teams.length); + }); + +var playerQ = new Parse.Query('Player'); +playerQ.equalTo('position', 'Keeper'); +playerQ.matchesQuery('team', teamQ); +playerQ.limit(1000); +playerQ.find() + .then(function(players){ + for(var i = 0; i < players.length; i++){ + console.log(players[i].get('name') + ' (' + players[i].get('teamCode') + '), ' + players[i].get('position')); + } + }); +