Skip to content

Commit

Permalink
Added fix for #2 Successful purchases page
Browse files Browse the repository at this point in the history
All successful purchases redirect to a new page. If possible the
download start automatically otherwise a download link is provided on
the page for users to click on.
  • Loading branch information
piatra committed Sep 29, 2013
1 parent a35dd46 commit ea2d43f
Show file tree
Hide file tree
Showing 37 changed files with 6,230 additions and 4,025 deletions.
15 changes: 9 additions & 6 deletions app.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ app.configure('development', function(){
});

function requireLogin(req, res, next) {

if (req.session.email) {
console.log(req.session, req.cookies);
if (req.session.email || req.cookies.email) {
next(); // allow the next route to run
} else {
req.session.redirect = req.route.path;
Expand All @@ -50,6 +50,8 @@ app.get('/', routes.index);

app.get('/login', routes.login);

app.get('/logout', routes.logout);

app.post('/user/set/username', user.setUsername);

app.post('/auth/verify', auth.verify);
Expand All @@ -58,8 +60,7 @@ app.post('/user/payswarm', auth.payswarmVerify);
app.get('/auth/createKeyPair', auth.createKeyPair);
app.post('/payswarm/register', requireLogin, auth.registerKey);

app.post('/payswarm/complete/:email', auth.completePayswarmRegistration);
app.get('/payswarm/complete/:email', auth.completePayswarmRegistration);
app.post('/payswarm/complete', auth.completePayswarmRegistration);

/*
Editing assets
Expand All @@ -71,7 +72,7 @@ app.post('/assets/asset/edit', assets.update);
/*
New asset
*/
app.get('/newasset', requireLogin, routes.newasset);
app.get('/newasset', routes.newasset); // should require login
app.post('/newasset/process/', assets.createAssetAndListing);
app.post('/newasset/save', assets.saveAsset);

Expand All @@ -91,9 +92,11 @@ app.get('/assets/asset/:id/edit', assets.edit);
app.get('/listings/listing/:id', assets.getListing);

app.get('/assets/asset/:id/content', function (req, res){
res.end('The content!');
res.end('The content!');
});

app.post('/assets/asset/:id/download', assets.download);

app.get('/decrypt/:type/:id', assets.decrypt);

/*
Expand Down
2 changes: 2 additions & 0 deletions changelog
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
* better signup
* gravatar
10 changes: 3 additions & 7 deletions lib/db.js
Original file line number Diff line number Diff line change
Expand Up @@ -79,13 +79,9 @@ var dbUtils = {
},
findOne: {
user : function (query, cb) {
schemas.User.findOne(query, function (err, docs) {
if (!docs) {
dbUtils.create.user(query, cb);
} else {
cb(docs);
}
});
console.log('finding one user', query);
// dbUtils.create.user(query, cb);
schemas.User.findOne(query, cb);
},
asset: {
update: function (asset, query, cb) {
Expand Down
35 changes: 33 additions & 2 deletions lib/user.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,44 @@ module.exports = function (opts) {
var userUtils = {};

function checkUser (json, cb) {
db.findOne.user({email : json.email}, cb);
db.findOne.user({email : json.email}, function (err, doc) {
if (err) {
console.log('error checking user');
console.log(json, err);
cb(err);
} else {
if (doc) {
cb(null, doc);
} else {
db.create.user(json, cb);
}
}
});
}

function isUnique (query, success, fail) {
console.log('checking ',query);
db.findOne.user(query, function (err, doc) {
console.log('findOne retured', err, doc);
if (err) {
fail(err);
} else {
if (doc) {
fail();
} else {
console.log('unique calling cb');
success();
}
}
});
}

function updateFields (query, user, cb) {
db.findOneAndUpdate(user, query, cb);
db.findOneAndUpdate(user, query, cb);
}

function get (fields, user, cb) {
console.log('get',fields,user);
db.get.user(fields, user, cb);
}

Expand All @@ -31,6 +61,7 @@ module.exports = function (opts) {
userUtils.checkUser = checkUser;
userUtils.updateFields = updateFields;
userUtils.get = get;
userUtils.isUnique = isUnique;
userUtils.addPurchase = addPurchase;
return userUtils;

Expand Down
10 changes: 7 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"scripts": {
"start": "node app.js"
},
"host": "http://appstoredemo.payswarm.com",
"host": "http://12e29bb4.ngrok.com",
"keywords": [
"webpayments",
"persona",
Expand All @@ -34,7 +34,11 @@
"url": "https://github.com/piatra/webpayments-marketplace"
},
"devDependencies": {
"requirejs": "~2.1.6",
"zipper": "~0.3.0"
"requirejs": "~2.1.8",
"zipper": "~0.3.0",
"grunt": "~0.4.1",
"grunt-mocha-phantomjs": "~0.3.0",
"chai": "~1.7.2",
"mocha": "~1.13.0"
}
}
14 changes: 14 additions & 0 deletions public/javascripts/assert.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
define([], function () {

function existy (x) {
return x != null;
}

function assert (value, message) {
if (!existy(value)) {
throw new Error(message);
}
}

return assert;
});
45 changes: 25 additions & 20 deletions public/javascripts/event-handlers.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,26 @@
/* global define, $, console */

'use strict';

define([
'message',
'event-login',
'event-assets',
'modal'
], function (message, loginEv, assetsEv, modal, upload) {
'user',
'formHandler'
], function (message, loginEv, assetsEv, user, formHandler) {

var verify = {
assertion : function (assertion) {

$('.js-handler--login').html('Logging in').addClass('loading');

$.post("/auth/verify", { assertion: assertion })
$.post('/auth/verify', { assertion: assertion })
.success(loginEv.handleLogin)
.fail(function (data) {
console.log('fail', data);
})
.done(function (data) {
.done(function () {
console.log('done');
})
;
Expand All @@ -25,15 +30,22 @@ define([
var evHandler = {
init : function () {

var email = ($('img', $('.js-handler--login')).length)
? null
: $('.js-handler--login').text().trim()
;
var email = $('.js-handler--email').text().trim();

user = user({
email: email
});

if (typeof logout != 'undefined' && logout)
email = null;
else
var logout = false;

navigator.id.watch({
onlogin: function(assertion) {
if ($('img', $('.js-handler--login:not(.hidden)')).length)
if (!logout && $('img', $('.js-handler--login:not(.hidden)')).length) {
verify.assertion(assertion);
}
},
onlogout: function() {
console.log('logout');
Expand All @@ -45,21 +57,14 @@ define([
navigator.id.request();
});

// $('.js-handler--change-username').on('submit', assetsEv.create(assetsEv.usernameChanged));
$('.js-handler--change-username').on('submit', user.setUsername);

// FIXME
// if ($('.js-handler--show-payswarm-verify').length) {
// $.post('/payswarm/register/', {
// publicKey: $('.js-handler--show-payswarm-verify').text()
// }).success(loginEv.displayPayswarmMsg);
// }
if (email) assetsEv.count(email);

// assetsEv.loadLatest($('.container--newest'));
console.log('count');
assetsEv.count(email);
$('.js-handler--add-more-payee').on('click', formHandler.duplicateRow)

}
};

return evHandler;
});
});
19 changes: 19 additions & 0 deletions public/javascripts/formHandler.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
define([], function () {

var formHandler = {
duplicateRow: function (e) {
e.preventDefault();
var $this = $(this);
var row = $this.parents('tr');

var rowClone = row.clone();
rowClone.insertAfter(row);

$this.parents('p').remove();
rowClone.find('a').on('click', formHandler.duplicateRow);
}
}

return formHandler;

});
41 changes: 37 additions & 4 deletions public/javascripts/libs/jquery.min.js

Large diffs are not rendered by default.

Loading

0 comments on commit ea2d43f

Please sign in to comment.