From f6b459fa964479aa54eb7c42dd31095784c2f84d Mon Sep 17 00:00:00 2001 From: benesse1899 Date: Thu, 4 Aug 2016 13:33:07 +0000 Subject: [PATCH] 1234 --- api/controllers/friendcontroller.js | 80 ++++++++++++++ api/models/friend.js | 22 ++++ config/policies.js | 6 ++ config/routes.js | 5 + .../unit/controllers/FriendController.spec.js | 102 ++++++++++++++++++ 5 files changed, 215 insertions(+) create mode 100644 api/controllers/friendcontroller.js create mode 100644 api/models/friend.js create mode 100644 test/unit/controllers/FriendController.spec.js diff --git a/api/controllers/friendcontroller.js b/api/controllers/friendcontroller.js new file mode 100644 index 0000000..2d50188 --- /dev/null +++ b/api/controllers/friendcontroller.js @@ -0,0 +1,80 @@ +/** + * FriendController + * + * @description :: Server-side logic for managing friends + * @help :: See http://sailsjs.org/#!/documentation/concepts/Controllers + */ + + module.exports = { + index: async(req , res) => { + try{ + let friends = await friend.findAll(); + res.ok(friends); + res.end(); + } + catch(e){ + throw e; + } + + }, + + create: async(req , res) => { + try{ + let name = req.body.name, + email = req.body.email, + fbid = req.body.fbid; + + let newFriend = await friend.create({ + name: name, + email: email, + fbid: fbid + }); + + res.ok(newFriend); + res.end(); + } + catch(e){ + throw e; + } + }, + + update: async(req , res) => { + try{ + let id = req.body.id, + email = req.body.email, + name = req.body.name; + + await friend.update({ + name: name, + email: email + }, + { + where:{id: id} + }); + + let updateInfo = await friend.findById(id); + + res.ok(updateInfo); + res.end(); + } + catch(e){ + throw e; + } + }, + + delete: async(req , res) => { + try{ + let id = req.params['id']; + + let delFriend = await friend.delete({ + where:{id: id} + }); + + res.ok(); + res.end(); + } + catch(e){ + throw e; + } + } +}; \ No newline at end of file diff --git a/api/models/friend.js b/api/models/friend.js new file mode 100644 index 0000000..9f40dca --- /dev/null +++ b/api/models/friend.js @@ -0,0 +1,22 @@ +/** + * Friend.js + * + * @description :: TODO: You might write a short summary of how this model works and what it represents here. + * @docs :: http://sailsjs.org/documentation/concepts/models-and-orm/models + */ + +module.exports = { + + attributes: { + name: { + type: Sequelize.STRING + }, + fbid: { + type: Sequelize.STRING + }, + email: { + type: Sequelize.STRING, + allowNull: false + }, + } +}; \ No newline at end of file diff --git a/config/policies.js b/config/policies.js index fd8e96e..1521646 100644 --- a/config/policies.js +++ b/config/policies.js @@ -28,6 +28,12 @@ module.exports.policies = { }, 'DashboardController': { '*': [] + }, + 'friendcontroller': { + 'index': [], + 'create': [], + 'update': [], + 'delete': [] } /*************************************************************************** * * diff --git a/config/routes.js b/config/routes.js index 9a6885d..2a10e81 100644 --- a/config/routes.js +++ b/config/routes.js @@ -57,6 +57,11 @@ module.exports.routes = { 'get /api/arrow/authOfFirstPost': 'DashboardController.get_arrow', 'get /api/async/authOfFirstPost': 'DashboardController.get_async', + 'get /friend' : 'friendcontroller.index' , + 'post /friend/create' : 'friendcontroller.create' , + 'put /friend/update' : 'friendcontroller.update' , + 'delete /friend/delete/:id' : 'friendcontroller.delete' , + /*************************************************************************** * * * Custom routes here... * diff --git a/test/unit/controllers/FriendController.spec.js b/test/unit/controllers/FriendController.spec.js new file mode 100644 index 0000000..4ba35ec --- /dev/null +++ b/test/unit/controllers/FriendController.spec.js @@ -0,0 +1,102 @@ +describe.only('test', function() { + let friend = null; + before(async (done) => { + try { + friend = await friend.create({ + email: 'asd@gmail.com', + name: 'asd', + fbid: '123456', + }); + + done(); + } catch (e) { + done(e); + } + }); + + it('get friends', async (done) => { + try { + let result = await request(sails.hooks.http.app) + .get('/friend') + console.log(result); + result.status.should.be.eq(200); + + done(); + } catch (e) { + done(e); + } + }); + + it('add friend', async (done) => { + try { + let result = await request(sails.hooks.http.app) + .post('/friend/create') + .send({ + fbId: '1234567', + name: 'qwe', + email: 'qwe@mail.com', + }); + result.status.should.be.eq(200); + let find = await friend.findOne({ + where:{ + name: 'qwe' + } + }); + console.log(find); + (find === null).should.be.false; + + + done(); + } catch (e) { + done(e); + } + }); + + it('update friend', async (done) => { + try { + let result = await request(sails.hooks.http.app) + .put('/friend/update') + .send({ + fbId: '1234567', + name: 'qwe', + email: 'qwe@mail.com', + id : 1 + }); + result.status.should.be.eq(200); + let find = await friend.findOne({ + where:{ + id: 1 + } + }); + console.log(find); + (find === null).should.be.false; + find.name.should.be.eq('test2'); + + + done(); + } catch (e) { + done(e); + } + }); + it('delete friend', async (done) => { + try { + let result = await request(sails.hooks.http.app) + .delete('/friend/delete/1'); + + result.status.should.be.eq(200); + let find = await friend.findOne({ + where:{ + id: 1 + } + }); + console.log(find); + (find === null).should.be.true; + + + done(); + } catch (e) { + done(e); + } + }); + +}); \ No newline at end of file