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=