From 3016b0cf54f50714d44d4b71967e9fa33907131a Mon Sep 17 00:00:00 2001
From: KANTAPONG SONG-NGAM <kantapong.so.59@ubu.ac.th>
Date: Mon, 29 Oct 2018 21:36:27 +0700
Subject: [PATCH] add pro

---
 mobile/Project/Things.js         | 22 +++++++++++++++++
 mobile/Project/Users.js          | 42 ++++++++++++++++++++++++++++++++
 mobile/Project/mongoose.js       | 16 ++++++++++++
 mobile/Project/package-lock.json |  5 ++++
 mobile/Project/package.json      | 11 +++++++++
 5 files changed, 96 insertions(+)
 create mode 100644 mobile/Project/Things.js
 create mode 100644 mobile/Project/Users.js
 create mode 100644 mobile/Project/mongoose.js
 create mode 100644 mobile/Project/package-lock.json
 create mode 100644 mobile/Project/package.json

diff --git a/mobile/Project/Things.js b/mobile/Project/Things.js
new file mode 100644
index 0000000..7f54305
--- /dev/null
+++ b/mobile/Project/Things.js
@@ -0,0 +1,22 @@
+Schema = require('mongoose').Schema
+ThingSchema = new Schema({
+	Name : {
+		type : String,
+		required : true
+	},
+	Data : {
+		type : [{
+			Value : {
+				type : Number,
+				min : 0
+			},
+			Time : {
+				type : Date
+			}
+		}]
+	},
+	userId : {
+		type : Schema.Types.ObjectId
+	}
+})
+module.exports = mongoose.model('Things', ThingSchema)
diff --git a/mobile/Project/Users.js b/mobile/Project/Users.js
new file mode 100644
index 0000000..d780067
--- /dev/null
+++ b/mobile/Project/Users.js
@@ -0,0 +1,42 @@
+Schema = require('mongoose').Schema
+bcrypt = require('bcrypt')
+SALT_WORK_FACTOR = 10
+
+UserSchema = new Schema({
+	username : {
+		type : String,
+		required : true
+	},
+	password : {
+		type : String,
+		required : true
+	}
+})
+
+UserSchema.pre('save', function(next) {
+	user = this
+
+	if (!user.isModified('password'))
+		return next()
+
+	bcrypt.genSalt(SALT_WORK_FACTOR, function(err, salt) {
+		if (err) return next (err)
+
+		bcrypt.hash(user.password, salt, function(err, hash) {
+			if (err) return next (err)
+
+			user.password = hash
+			next()
+		})
+	})
+})
+
+UserSchema.methods.comparePassword = function(candidate, cb) {
+	bcrypt.compare(candidate, this.password, function(err, isMatch) {
+		if (err) return cb (err)
+		cb(null, isMatch)
+	})
+}
+
+
+module.exports = mongoose.model('Users', UserSchema)
diff --git a/mobile/Project/mongoose.js b/mobile/Project/mongoose.js
new file mode 100644
index 0000000..cfb3444
--- /dev/null
+++ b/mobile/Project/mongoose.js
@@ -0,0 +1,16 @@
+mongoose = require('mongoose')
+Things = require('./Things')
+Users = require('./Users')
+
+mongoose.connect('mongodb://localhost:27017/Students',{useNewUrlParser:true});
+
+add_User = new Users({
+	username: 'test',
+	password: 'pass'
+})
+
+add_User.save(function(err) {
+	if (err) throw err
+console.log('save USer completed.')
+})
+
diff --git a/mobile/Project/package-lock.json b/mobile/Project/package-lock.json
new file mode 100644
index 0000000..d4e0a2f
--- /dev/null
+++ b/mobile/Project/package-lock.json
@@ -0,0 +1,5 @@
+{
+  "name": "project",
+  "version": "1.0.0",
+  "lockfileVersion": 1
+}
diff --git a/mobile/Project/package.json b/mobile/Project/package.json
new file mode 100644
index 0000000..c4fdaab
--- /dev/null
+++ b/mobile/Project/package.json
@@ -0,0 +1,11 @@
+{
+  "name": "project",
+  "version": "1.0.0",
+  "description": "",
+  "main": "index.js",
+  "scripts": {
+    "test": "echo \"Error: no test specified\" && exit 1"
+  },
+  "author": "",
+  "license": "ISC"
+}
-- 
2.18.1