const express = require( 'express' )
const bodyParser = require( 'body-parser' )
const bcrypt = require( 'bcryptjs' ) ;
const cors = require( 'cors' )
const knex = require( 'knex' )
const register = require( './controller/register' )
const signin = require( './controller/signin' )
const profile = require( './controller/profile' )
const image = require( './controller/image' )
const db = knex( {
client: 'pg' ,
connection: {
connectionString: process.env .DATABASE_URL ,
ssl: true ,
}
} ) ;
const app = express( ) ;
app.use ( bodyParser.json ( ) )
app.use ( cors( ) )
app.get ( '/' , ( req, res) => { res.send ( 'work ' ) } )
app.post ( '/signin' , ( req, res) => signin.sigininHandle ( req, res, db, bcrypt) )
app.post ( '/register' , ( req, res) => { register.registerHandle ( req, res, db, bcrypt) } )
app.get ( '/profile/:id' , ( req, res) => { profile.profileHandle ( req, res, db) } )
app.put ( '/image' , ( req, res) => { image.imageHandle ( req, res, db) } )
app.post ( '/imageurl' , ( req, res) => { image.handleApiCall ( req, res) } )
app.listen ( process.env .PORT || 3000 , ( ) => { console.log ( `app is running on port ${ process.env .PORT } `) } )
// res = this is working
// /signin --> POST = success/fail
// /register --> POST = user
// /profile/:userID --> GET = user
// /image --> PUT --> user
Y29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKQpjb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKQpjb25zdCBiY3J5cHQgPSByZXF1aXJlKCdiY3J5cHRqcycpOwpjb25zdCBjb3JzID0gcmVxdWlyZSgnY29ycycpCmNvbnN0IGtuZXggPSByZXF1aXJlKCdrbmV4JykKY29uc3QgcmVnaXN0ZXIgPSByZXF1aXJlKCcuL2NvbnRyb2xsZXIvcmVnaXN0ZXInKQpjb25zdCBzaWduaW4gPSByZXF1aXJlKCcuL2NvbnRyb2xsZXIvc2lnbmluJykKY29uc3QgcHJvZmlsZSA9IHJlcXVpcmUoJy4vY29udHJvbGxlci9wcm9maWxlJykKY29uc3QgaW1hZ2UgPSByZXF1aXJlKCcuL2NvbnRyb2xsZXIvaW1hZ2UnKQoKY29uc3QgZGIgPSBrbmV4KHsKICAgIGNsaWVudDogJ3BnJywKICAgIGNvbm5lY3Rpb246IHsKICAgICAgICBjb25uZWN0aW9uU3RyaW5nOiBwcm9jZXNzLmVudi5EQVRBQkFTRV9VUkwsCiAgICAgICAgc3NsOiB0cnVlLAogICAgfQp9KTsKCmNvbnN0IGFwcCA9IGV4cHJlc3MoKTsKYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSkKYXBwLnVzZShjb3JzKCkpCgphcHAuZ2V0KCcvJywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kKCd3b3JrICcpIH0pCgphcHAucG9zdCgnL3NpZ25pbicsIChyZXEsIHJlcykgPT4gc2lnbmluLnNpZ2luaW5IYW5kbGUocmVxLCByZXMsIGRiLCBiY3J5cHQpKQphcHAucG9zdCgnL3JlZ2lzdGVyJywgKHJlcSwgcmVzKSA9PiB7IHJlZ2lzdGVyLnJlZ2lzdGVySGFuZGxlKHJlcSwgcmVzLCBkYiwgYmNyeXB0KSB9KQphcHAuZ2V0KCcvcHJvZmlsZS86aWQnLCAocmVxLCByZXMpID0+IHsgcHJvZmlsZS5wcm9maWxlSGFuZGxlKHJlcSwgcmVzLCBkYikgfSkKYXBwLnB1dCgnL2ltYWdlJywgKHJlcSwgcmVzKSA9PiB7IGltYWdlLmltYWdlSGFuZGxlKHJlcSwgcmVzLCBkYikgfSkKYXBwLnBvc3QoJy9pbWFnZXVybCcsIChyZXEsIHJlcykgPT4geyBpbWFnZS5oYW5kbGVBcGlDYWxsKHJlcSwgcmVzKSB9KQoKYXBwLmxpc3Rlbihwcm9jZXNzLmVudi5QT1JUIHx8IDMwMDAsICgpID0+IHsgY29uc29sZS5sb2coYGFwcCBpcyBydW5uaW5nIG9uIHBvcnQgJHtwcm9jZXNzLmVudi5QT1JUfWApIH0pCgovLyByZXMgPSB0aGlzIGlzIHdvcmtpbmcKLy8gL3NpZ25pbiAtLT4gUE9TVCA9IHN1Y2Nlc3MvZmFpbAovLyAvcmVnaXN0ZXIgLS0+IFBPU1QgPSB1c2VyCi8vIC9wcm9maWxlLzp1c2VySUQgLS0+IEdFVCA9IHVzZXIKLy8gL2ltYWdlIC0tPiBQVVQgLS0+IHVzZXI=