Skip to content

Instantly share code, notes, and snippets.

View vgheri's full-sized avatar

Valerio Gheri vgheri

View GitHub Profile
@vgheri
vgheri / gist:9737178
Created March 24, 2014 09:35
Verify Facebook Access Token
private async Task<FacebookUserViewModel> VerifyFacebookAccessToken(string accessToken)
{
FacebookUserViewModel fbUser = null;
var path = "https://graph.facebook.com/me?access_token=" + accessToken;
var client = new HttpClient();
var uri = new Uri(path);
var response = await client.GetAsync(uri);
if (response.IsSuccessStatusCode)
{
var content = await response.Content.ReadAsStringAsync();
var config = require('./Config-debug');
var winston = require('winston');
var mongoose = require('mongoose');
var server = require('./Server');
// We will log normal api operations into api.log
console.log("starting logger...");
winston.add(winston.transports.File, {
filename: config.logger.api
});
function authorise(req, res, next) {
var apiAccessToken = req.body.apiAccessToken || null;
var userId = req.params.userId || req.body.userId || null;
if (apiAccessToken && userId) {
SecurityToken.authorise(apiAccessToken, userId)
.then(function(authorised) {
if (authorised) {
next();
}
else {
@vgheri
vgheri / verifyFacebookUserAccessToken.js
Created November 25, 2013 18:08
// Call facebook API to verify the token is valid
// Call facebook API to verify the token is valid
// https://graph.facebook.com/me?access_token=$token
function verifyFacebookUserAccessToken(token) {
var deferred = Q.defer();
var path = 'https://graph.facebook.com/me?access_token=' + token;
request(path, function (error, response, body) {
var data = JSON.parse(body);
if (!error && response && response.statusCode && response.statusCode == 200) {
var user = {
facebookUserId: data.id,
@vgheri
vgheri / test.js
Last active December 16, 2015 11:49
var should = require('should');
var assert = require('assert');
var request = require('supertest');
var mongoose = require('mongoose');
var winston = require('winston');
var config = require('./config-debug');
describe('Routing', function() {
var url = 'http://someurl.com';
// within before() you can run all the operations that are needed to setup your tests. In this case
test:
@./node_modules/.bin/mocha
.PHONY: test
function setup(app, handlers) {
app.post('/api/profiles', handlers.account.createAccount);
app.get('/api/profiles/:username', handlers.account.getAccount);
app.put('/api/profiles/:username', handlers.account.updateAccount);
app.del('/api/profiles/:username', handlers.account.deleteAccount);
app.post('/api/lists', handlers.list.createShoppingList);
app.post('/api/lists/:id', handlers.list.createShoppingList);
app.put('/api/lists/:id', handlers.list.updateShoppingList);
app.get('/api/lists/:userId', handlers.list.getShoppingLists);
app.del('/api/lists/:id', handlers.list.deleteShoppingList);
module.exports = {
"db": {
"mongodb": "mongodb://username:password@dsXXXXX.mongolab.com:45077/databasename"
},
"logger": {
"api": "logs/api.log",
"exception": "logs/exceptions.log"
}
};
// *******************************************************
// expressjs template
//
// assumes: npm install express
// defaults to jade engine, install others as needed
//
// assumes these subfolders:
// public/
// public/javascripts/
// public/stylesheets/
@vgheri
vgheri / updateGame.js
Created December 24, 2012 14:09
Handling server updates
function updateGame(updatePacket) {
var goal = false;
if (pongR.game.player1.score() < updatePacket.Game.Player1.Score) {
goal = true;
}
else if (pongR.game.player2.score() < updatePacket.Game.Player2.Score) {
goal = true;
}
var remoteMe = pongR.me.playerNumber === 1 ? updatePacket.Game.Player1 : updatePacket.Game.Player2;