Skip to content

Commit

Permalink
Fix-last
Browse files Browse the repository at this point in the history
  • Loading branch information
gsnada committed Apr 28, 2018
1 parent a0017d7 commit 60e9334
Show file tree
Hide file tree
Showing 7 changed files with 226 additions and 296 deletions.
1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
"server-dev": "nodemon server/index.js",
"lint": "eslint",
"test": "mocha --bail --timeout 15000 --reporter nyan test/serverSpec.js"

},
"author": "dazzel-team",
"license": "ISC",
Expand Down
12 changes: 6 additions & 6 deletions react-client/dist/bundle.js

Large diffs are not rendered by default.

20 changes: 11 additions & 9 deletions react-client/src/components/Specialties.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,9 @@ export default class Specialties extends Component{
constructor(props){
super(props)
this.state={
specialty:''
specialty:'',
}
this.onSelect=this.onSelect.bind(this)

}

onSelect(e){
Expand All @@ -27,15 +26,14 @@ export default class Specialties extends Component{

return (
<div>



<div id="home" className=" container spbutton">


<div className='row'>
<div className='col-sm-4'>
<ButtonToolbar >

<DropdownButton className="btn btn-info homebtn" onSelect={this.onSelect}title ='choose specialty'
<DropdownButton className="btn btn-info homebtn" onSelect={this.onSelect} title ='choose specialty'
noCaret
id='dropdown-no-caret'>
<MenuItem eventKey='otolaryngologists(ear,nose,throat)'>otolaryngologists(ear,nose,throat)</MenuItem>
Expand All @@ -49,17 +47,21 @@ export default class Specialties extends Component{
<MenuItem eventKey='allergologist'>allergologist </MenuItem>



</DropdownButton>
</ButtonToolbar>
<br/> <br/>

<div style={{fontSize:16}} > {this.state.specialty}</div>

</div>

<div className='col-sm-8'>
<Rate specialty={this.state.specialty}/>
</div>

</div>
</div>

</div>
)
}
Expand Down
179 changes: 90 additions & 89 deletions server/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ app.use(bodyParser.urlencoded({ extended: false }));

// use session middleware and configure it
app.use(session({secret:'mysecretsession',resave:true,saveUninitialized: true,

store:new mongoStore({mongooseConnection: mongoose.connection,collection: 'session',})
}))

Expand All @@ -40,139 +41,139 @@ app.get('/admin',function(req,res){
res.render('admin');
})

app.get('/admin/doctorform',function(req,res){
app.get('/admin/signup',function(req,res){
res.status(200);
res.render('doctorform');
res.render('signup');
})

app.get('/admin/error',function(req,res){
app.get('/admin/doctorform',function(req,res){
res.status(200);
res.render('error');
res.render('doctorform');
})

app.post('/admin/doctorform',function(req,res){
//convert adress from string to object that have two key lat and lng
var latlngStr=req.body.address
var latlngObj={
lat:parseFloat(latlngStr.split(",")[0]),
lng:parseFloat(latlngStr.split(",")[1])
};
// we have three option here
//convert adress from string to object that have two key lat and lng
var latlngStr=req.body.address
var latlngObj={
lat:parseFloat(latlngStr.split(",")[0]),
lng:parseFloat(latlngStr.split(",")[1])
};
// we have three option here
if(req.body.action==="Add doctor"){

//create a variable doctor_data hold all new data
//create a variable doctor_data hold all new data
var doctor_data={
name:req.body.name,
specialization:req.body.specialization,
address:latlngObj,
tel:req.body.tel,
rate:req.body.rate
}
}

//insert doctor_data to the database
var newDoc=new dataModels.Doctor(doctor_data);
//insert doctor_data to the database
var newDoc=new dataModels.Doctor(doctor_data);

newDoc.save(function(err,doc){
if(err){
newDoc.save(function(err,doc){
if(err){
console.log("error in saving a new doctor");
res.status(500);
res.render('error');
}
else{
res.status(302);
res.redirect('/admin/doctorform');
}
})
}
res.send("error in saving DB")
}
else{
res.status(302);
res.redirect('/admin/doctorform');
}
})
}

else if(req.body.action==="Delete doctor"){
// delete doctor by finding his name and delete it{ name } using deleteOne
dataModels.Doctor.findOneAndRemove({ 'name': req.body.name }, function (err, doctor) {
if (err) {
res.render('error');
}
else if(doctor===null){
res.render('error');
}
else {
res.status(302);
res.render('doctorform');
};
// delete doctor by finding his name and delete it{ name } using deleteOne
dataModels.Doctor.deleteOne({ 'name': req.body.name }, function (err, doctor) {
if (err) {
return handleError(err)
}
else {
res.status(302);
res.render('doctorform');
};
});
}
else {
// modify doctor by finding his name and modify it{ name } using findone and modify data in result
dataModels.Doctor.findOne( { "name":req.body.name}, function(err, result){
if (!err && result) {
result.specialization = req.body.specialization; // update ur values goes here
result.address = latlngObj;
result.tel = req.body.tel;
result.rate = req.body.rate;
var newDoctor = new dataModels.Doctor(result);
newDoctor.save(function(err, result2){
if(!err) {
res.render('doctorform')
}
else {
res.status(500);
res.render('error');
}
})
}
else {
res.status(500);
res.render('error');
}
});
}
else{
// modify doctor by finding his name and modify it{ name } using findone and modify data in result
dataModels.Doctor.findOne( { "name":req.body.name}, function(err, result){
if (!err && result) {
result.specialization = req.body.specialization; // update ur values goes here
result.address = latlngObj;
result.tel = req.body.tel;
result.rate = req.body.rate;
var newDoctor = new dataModels.Doctor(result);
newDoctor.save(function(err, result2){
if(!err) {
res.render('doctorform')
} else {
res.status(500);
res.send(err);
}
})
}
else {
res.status(500);
res.send(err);
}
});
}
})

app.post('/signup',passport.authenticate('local.signup',{
successRedirect:'/admin',
app.post('/admin/signup',passport.authenticate('local.signup',{
successRedirect:'/admin/login',
failureRedirct:'error',
failureFlash:true
}));

app.get('/admin/login',function(req,res){
res.render('login',{loginError:req.flash('loginError')});
})

app.post('/login',passport.authenticate('local.login',{
failureRedirct:'/error'}),function(req,res){
res.render('admin');
});
app.post('/admin/login',passport.authenticate('local.login',{
successRedirect:'/admin/doctorform',
failureRedirct:'admin/login',
failureFlash:true
}));

// get high rate doctors in a specific spcialization
app.get('/doctors/:rateSpic', function (req, res) {
dataModels.Doctor.find({specialization:req.params.rateSpic},function(err, data) {
if(err) {
res.sendStatus(500);
}
else {
res.send(data);
}
}).limit(3).sort( { rate: -1} );
if(err) {
res.sendStatus(500);
}
else {
res.send(data);
}
}).limit(3).sort( { rate: -1} );
});

// get all nearest doctors based on specialty
app.get('/docNearst/:spic', function (req, res) {
dataModels.Doctor.find({specialization:req.params.spic},function(err, data) {
if(err) {
res.sendStatus(500);
dataModels.Doctor.find({specialization:req.params.spic},function(err, data) {
if(err) {
res.sendStatus(500);
}
else {
res.status(200);
res.send(data);
res.status(200);
res.send(data);
}
})
});


app.get('/doctors',function(req,res){
dataModels.Doctor.find({},function(err,data){
if(err){
res.sendStatus(500);
}
else{
res.sendStatus(200)
}
})
dataModels.Doctor.find({},function(err,data){
if(err){
res.sendStatus(500);
}
else{
res.sendStatus(200)
}
})
})

app.listen(process.env.PORT||3000, function() {
Expand Down
Loading

0 comments on commit 60e9334

Please sign in to comment.