Advertisement
Guest User

Untitled

a guest
Nov 9th, 2017
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.config={mongo:"mongodb://localhost:27017/db",port:"3000",secret:"nglibrarysecret"},Object.defineProperty(exports,"__esModule",{value:!0});var express=require("express"),bodyParser=require("body-parser"),q=require("q"),mongoose=require("mongoose"),passport_1=require("./config/passport"),config_1=require("./config/config"),main_router_1=require("./routes/main.router"),App=function(){function e(){this.app=express(),this.config(),this.routes()}return e.prototype.config=function(){var e=this,t=config_1.config.mongo;this.app.use(bodyParser.json()),this.app.use(function(e,t,o){t.header("Access-Control-Allow-Origin","*"),t.header("Access-Control-Allow-Headers","Origin, X-Requested-With, Content-Type, Accept"),o()}),this.app.use(passport_1.passportConfig.initialize()),global.Promise=q.Promise;mongoose.connect(t,{useMongoClient:!0});mongoose.connection.on("error",function(){return console.error("Mongodb connection Error")}),this.app.set("port",config_1.config.port),this.app.listen(this.app.get("port"),function(){console.log("App listening on port: "+e.app.get("port"))})},e.prototype.routes=function(){var e=express.Router();this.app.use(e);new main_router_1.MainRouter(this.app)},e}();exports.app=new App,Object.defineProperty(exports,"__esModule",{value:!0});var jwt=require("jsonwebtoken"),VerifyToken=function(){function e(){}return e.prototype.getToken=function(e){if(e&&e.authorization){var t=jwt.decode(e.authorization);return t||null}return null},e}();exports.VerifyToken=VerifyToken,exports.verifyToken=new VerifyToken,Object.defineProperty(exports,"__esModule",{value:!0}),exports.config={mongo:"mongodb://localhost:27017/db",port:"3000",secret:"nglibrarysecret"},Object.defineProperty(exports,"__esModule",{value:!0});var passportJwt=require("passport-jwt"),passport=require("passport"),user_schema_1=require("./../schemas/user.schema"),config_1=require("./config"),PassportConfig=function(){function e(){this.opts={},this.passport=passport,this.ExtractJwt=passportJwt.ExtractJwt,this.JwtStrategy=passportJwt.Strategy,this.opts={jwtFromRequest:this.ExtractJwt.fromAuthHeaderAsBearerToken(),secretOrKey:config_1.config.secret},this.setStrategyForUser(),this.setStrategyForAdmin()}return e.prototype.setStrategyForUser=function(){this.passport.use("user-strategy",new this.JwtStrategy(this.opts,function(e,t){user_schema_1.Users.findOne({id:e.sub},function(e,o){return e?t(e,null):o?t(null,o):t(null,null)})}))},e.prototype.setStrategyForAdmin=function(){this.passport.use("admin-strategy",new this.JwtStrategy(this.opts,function(e,t){user_schema_1.Users.findOne({id:e.sub},function(e,o){return e?t(null,null):o&&o.isAdmin?t(null,o):t(null,null)})}))},e.prototype.initialize=function(){return this.passport.initialize()},e.prototype.authenticationUser=function(){return this.passport.authenticate("user-strategy",{session:!1})},e.prototype.authenticationAdmin=function(){return this.passport.authenticate("admin-strategy",{session:!1})},e}();exports.passportConfig=new PassportConfig,Object.defineProperty(exports,"__esModule",{value:!0});var passportJwt=require("passport-jwt"),passport=require("passport"),config_1=require("./config"),Passports=function(){function e(){this.ExtractJwt=passportJwt.ExtractJwt,this.Strategies=passportJwt.Strategy,this.passport=passport,this.params={secretOrKey:config_1.config.secret,jwtFromRequest:this.ExtractJwt.fromAuthHeaderAsBearerToken()}}return e.prototype.setStrategy=function(){console.log("dupa");console.log(null),this.passport.use(null)},e.prototype.initialize=function(){return this.passport.initialize()},e.prototype.authenticate=function(){return this.setStrategy(),this.passport.authenticate("jwt",{session:!1})},e}();exports.Passport=new Passports,Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"__esModule",{value:!0});var express_1=require("express"),jwt=require("jsonwebtoken"),auth_validation_1=require("./../validation/auth.validation"),config_1=require("./../config/config"),AuthRouter=function(){function e(){this.router=express_1.Router(),this.init()}return e.prototype.getRouter=function(){return this.router},e.prototype.login=function(e,t,o){var r={email:e.body.email,password:e.body.password};new auth_validation_1.AuthValidation(r).checkValidation(function(e,o){if(e)return t.status(e.status).send(e.message);var r={email:o.email,id:o._id},s=jwt.sign(r,config_1.config.secret);return t.status(200).send({user:o,token:"bearer "+s})})},e.prototype.logout=function(e,t,o){return t.send("wylgoowano")},e.prototype.init=function(){this.router.post("/login",this.login),this.router.post("/logout",this.logout)},e}();exports.authRouter=new AuthRouter,Object.defineProperty(exports,"__esModule",{value:!0});var book_schema_1=require("./../schemas/book.schema"),express_1=require("express"),book_validation_1=require("./../validation/book.validation"),passport_1=require("./../config/passport"),BookRouter=function(){function e(){this.router=express_1.Router(),this.init()}return e.prototype.getRouter=function(){return this.router},e.prototype.getBooks=function(e,t,o){book_schema_1.Books.find(function(e,o){return e?t.status(404).send(e):t.status(200).send(o)})},e.prototype.getBook=function(e,t,o){var r=e.params.id;if(!r)return t.status(404).send("Błąd podczas pobierania książki");book_schema_1.Books.findById({_id:r},function(e,o){return e?t.status(404).send(e):o?t.status(200).send(o):t.status(404).send("Nie znaleziono książki")})},e.prototype.postBook=function(e,t,o){var r={title:e.body.title,author:e.body.author,releaseYear:e.body.releaseYear,signature:e.body.signature,isAvailable:e.body.isAvailable};new book_validation_1.BookValidation(r).checkValidation(function(e){if(e)return t.status(e.status).send(e.message);book_schema_1.Books.create(r,function(e,o){return e?t.status(404).send(e):t.status(200).send(o)})})},e.prototype.init=function(){this.router.get("/",this.getBooks),this.router.get("/:id",this.getBook),this.router.post("/",passport_1.passportConfig.authenticationUser(),this.postBook)},e}();exports.bookRouter=new BookRouter,Object.defineProperty(exports,"__esModule",{value:!0});var user_router_1=require("./user.router"),book_router_1=require("./book.router"),auth_router_1=require("./auth.router"),MainRouter=function(){function e(e){this.app=e,this.setRouter()}return e.prototype.setRouter=function(){this.app.use("/api/users",user_router_1.userRouter.getRouter()),this.app.use("/api/books",book_router_1.bookRouter.getRouter()),this.app.use("/api/auth",auth_router_1.authRouter.getRouter())},e}();exports.MainRouter=MainRouter,Object.defineProperty(exports,"__esModule",{value:!0});var express_1=require("express"),passport_1=require("./../config/passport"),user_schema_1=require("./../schemas/user.schema"),user_validation_1=require("./../validation/user.validation"),UserRouter=function(){function e(){this.router=express_1.Router(),this.init()}return e.prototype.getRouter=function(){return this.router},e.prototype.getUsers=function(e,t,o){user_schema_1.Users.find(function(e,o){return e?t.status(404).send(e):t.status(200).send(o)})},e.prototype.getUser=function(e,t,o){var r=e.params.id;if(!r)return t.status(404).send("Błąd podczas pobierania użytkownika");user_schema_1.Users.findById({_id:r},function(e,o){return e?t.status(404).send(e):o?t.status(200).send(o):t.status(404).send("Nie znaleziono użytkownika")})},e.prototype.postUser=function(e,t,o){var r={email:e.body.email,password:e.body.password,name:e.body.name,surname:e.body.surname,indexNumber:e.body.indexNumber,phoneNumber:e.body.phoneNumber,address:e.body.address,city:e.body.city,zipCode:e.body.zipCode};new user_validation_1.UserValidation(r).checkValidation(function(e){if(e)return t.status(e.status).send(e.message);user_schema_1.Users.create(r,function(e,o){return e?t.status(404).send(e):t.status(200).send(o)})})},e.prototype.init=function(){this.router.get("/",passport_1.passportConfig.authenticationAdmin(),this.getUsers),this.router.get("/:id",passport_1.passportConfig.authenticationUser(),this.getUser),this.router.post("/",this.postUser)},e}();exports.userRouter=new UserRouter,Object.defineProperty(exports,"__esModule",{value:!0});var mongoose_1=require("mongoose"),BookSchema=function(){function e(){this.setSchema()}return e.prototype.getBookSchema=function(){return this.bookSchema},e.prototype.setSchema=function(){this.bookSchema=new mongoose_1.Schema({createdAt:Date,uptadedAt:Date,title:String,author:String,releaseYear:Number,signature:String,isAvailable:Boolean}),this.setDates()},e.prototype.setDates=function(){this.bookSchema.pre("save",function(e){this.uptadedAt=new Date,this.createdAt||(this.createdAt=new Date),e()})},e}(),book=new BookSchema;exports.Books=mongoose_1.model("Books",book.getBookSchema()),Object.defineProperty(exports,"__esModule",{value:!0});var bcrypt=require("bcrypt-nodejs"),mongoose_1=require("mongoose"),UserSchema=function(){function e(){this.setSchema()}return e.prototype.getUserSchema=function(){return this.userSchema},e.prototype.setSchema=function(){this.userSchema=new mongoose_1.Schema({createdAt:Date,uptadedAt:Date,email:String,password:String,name:String,surname:String,indexNumber:Number,phoneNumber:Number,address:String,city:String,zipCode:String,isAdmin:Boolean}),this.addCompareHashPassword(),this.preSave()},e.prototype.preSave=function(){this.userSchema.pre("save",function(e){var t=this;this.uptadedAt=new Date,this.createdAt||(this.createdAt=new Date),this.isAdmin||(this.isAdmin=!1),this.isModified("password")?bcrypt.genSalt(10,function(o,r){if(o)return e(o);bcrypt.hash(t.password,r,null,function(o,r){if(o)return e(o);t.password=r,e()})}):e()})},e.prototype.addCompareHashPassword=function(){this.userSchema.method("comparePassword",function(e,t){bcrypt.compare(e,this.password,function(e,o){return e?t(e,!1):t(null,o)})})},e}(),user=new UserSchema;exports.Users=mongoose_1.model("Users",user.getUserSchema());__extends=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])};return function(t,o){function r(){this.constructor=t}e(t,o),t.prototype=null===o?Object.create(o):(r.prototype=o.prototype,new r)}}();Object.defineProperty(exports,"__esModule",{value:!0});var validation_1=require("./validation"),user_schema_1=require("./../schemas/user.schema"),AuthValidation=function(e){function t(t){var o=e.call(this,t)||this;return o.auth=t,o}return __extends(t,e),t.prototype.checkValidation=function(e){var t;return(t=this.isFilled())?e({status:400,message:this.getKeyName(t)+": To pole jest wymagane"},null):(t=this.checkType())?e({status:400,message:this.getKeyName(t)+": Wpisano zły format"},null):void this.checkEmailAndPassword(function(t,o){return t?e({status:500,message:"Błąd serwerowy. Spróbuj ponownie."},null):o?e(null,o):e({status:404,message:"Błędny email lub hasło."},null)})},t.prototype.checkEmailAndPassword=function(e){var t=this;user_schema_1.Users.findOne({email:this.auth.email},function(o,r){return o?e(o,null):r?void r.comparePassword(t.auth.password,function(t,o){return t?e(t,null):o?e(null,r):e(null,null)}):e(null,null)})},t.prototype.getKeyName=function(e){return"email"===e?"Email":"password"===e?"Hasło":"XXX"},t}(validation_1.Validation);exports.AuthValidation=AuthValidation;__extends=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])};return function(t,o){function r(){this.constructor=t}e(t,o),t.prototype=null===o?Object.create(o):(r.prototype=o.prototype,new r)}}();Object.defineProperty(exports,"__esModule",{value:!0});var BookValidation=function(e){function t(t){var o=e.call(this,t)||this;return o.book=t,o}return __extends(t,e),t.prototype.checkValidation=function(e){var t;return(t=this.isFilled())?e({status:400,message:this.getKeyName(t)+": To pole jest wymagane"}):(t=this.checkType(),e(t?{status:400,message:this.getKeyName(t)+": Wpisano zły format"}:null))},t.prototype.getKeyName=function(e){return"title"===e?"Tytuł":"author"===e?"Autor":"releaseYear"===e?"Rok wydania":"signature"===e?"Oznaczenie":"isAvailable"===e?"Dostępność":"XXX"},t}((validation_1=require("./validation")).Validation);exports.BookValidation=BookValidation;var __extends=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])};return function(t,o){function r(){this.constructor=t}e(t,o),t.prototype=null===o?Object.create(o):(r.prototype=o.prototype,new r)}}();Object.defineProperty(exports,"__esModule",{value:!0});var user_schema_1=require("./../schemas/user.schema"),UserValidation=function(e){function t(t){var o=e.call(this,t)||this;return o.user=t,o}return __extends(t,e),t.prototype.checkValidation=function(e){var t;return(t=this.isFilled())?e({status:400,message:this.getKeyName(t)+": To pole jest wymagane"}):(t=this.checkType())?e({status:400,message:this.getKeyName(t)+": Wpisano zły format"}):void this.isEmailOrIndexUsed(function(t){return e(t)})},t.prototype.isEmailOrIndexUsed=function(e){user_schema_1.Users.findOne({$or:[{email:this.user.email},{indexNumber:this.user.indexNumber}]},function(t,o){return e(t?{status:500,message:"Błąd serwerowy. Spróbuj ponownie."}:o?{status:404,message:"Email lub numer indeksu jest już w użyciu."}:null)})},t.prototype.getKeyName=function(e){return"email"===e?"Email":"password"===e?"Hasło":"name"===e?"Imię":"surname"===e?"Nazwisko":"indexNumber"===e?"Numer indeksu":"phoneNumber"===e?"Numer telefonu":"address"===e?"Adres":"city"===e?"Miasto":"zipCode"===e?"Kod pocztowy":"XXX"},t}((validation_1=require("./validation")).Validation);exports.UserValidation=UserValidation,Object.defineProperty(exports,"__esModule",{value:!0});var Validation=function(){function e(e){this.obj=e}return e.prototype.checkExisiting=function(e){return void 0!==e&&null!==e&&""!==e},e.prototype.isFilled=function(){var e=this;return Object.keys(this.obj).find(function(t){return!e.checkExisiting(e.obj[t])})},e.prototype.checkItemType=function(e,t){return t in e},e.prototype.checkType=function(){var e=this;return Object.keys(this.obj).find(function(t){return!e.checkItemType(e.obj,t)})},e}();exports.Validation=Validation;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement