Tasks: able to get and print tasks
This commit is contained in:
parent
cf20935e01
commit
4c9765b4a3
@ -4,7 +4,7 @@ import env from './environment'
|
||||
const db = new Sequelize(env.DB_DATABASE, env.DB_USERNAME, env.DB_PASSWORD, {
|
||||
host: env.DB_HOST,
|
||||
dialect: 'mariadb',
|
||||
logging: false
|
||||
logging: true
|
||||
})
|
||||
|
||||
export default db
|
||||
|
19
api/src/controllers/taskController.ts
Normal file
19
api/src/controllers/taskController.ts
Normal file
@ -0,0 +1,19 @@
|
||||
import { Request, Response } from 'express'
|
||||
import Task from '../models/Task'
|
||||
|
||||
export async function get(req: Request, res: Response) {
|
||||
try {
|
||||
const data = await Task.findAll()
|
||||
res.json(data)
|
||||
} catch (error) {
|
||||
res.status(500).send(error)
|
||||
}
|
||||
}
|
||||
export async function add(req: Request, res: Response) {
|
||||
try {
|
||||
const task = await Task.create(req.body)
|
||||
res.json(task)
|
||||
} catch (error) {
|
||||
res.status(500).send(error)
|
||||
}
|
||||
}
|
43
api/src/models/Task.ts
Normal file
43
api/src/models/Task.ts
Normal file
@ -0,0 +1,43 @@
|
||||
import { DataTypes, Model } from 'sequelize'
|
||||
import path from 'path'
|
||||
import db from '../config/sequelize.config'
|
||||
|
||||
class Instance extends Model {}
|
||||
|
||||
Instance.init(
|
||||
{
|
||||
_id: {
|
||||
type: DataTypes.UUID,
|
||||
defaultValue: DataTypes.UUIDV4,
|
||||
primaryKey: true,
|
||||
allowNull: false,
|
||||
unique: true
|
||||
},
|
||||
title: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: false
|
||||
},
|
||||
client: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: true
|
||||
},
|
||||
project: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: true
|
||||
},
|
||||
timeStart: {
|
||||
type: DataTypes.BIGINT,
|
||||
allowNull: false
|
||||
},
|
||||
timeEnd: {
|
||||
type: DataTypes.BIGINT,
|
||||
allowNull: true
|
||||
}
|
||||
},
|
||||
{
|
||||
sequelize: db,
|
||||
tableName: path.basename(__filename).split('.')[0].toLowerCase()
|
||||
}
|
||||
)
|
||||
|
||||
export default Instance
|
@ -1,6 +1,6 @@
|
||||
import { DataTypes, Model } from 'sequelize'
|
||||
import path from 'path'
|
||||
import db from '../config/sequelize.config.ts'
|
||||
import db from '../config/sequelize.config'
|
||||
|
||||
class Instance extends Model {}
|
||||
|
||||
|
8
api/src/routes/apiRoutes.ts
Normal file
8
api/src/routes/apiRoutes.ts
Normal file
@ -0,0 +1,8 @@
|
||||
import { Router } from 'express'
|
||||
import * as taskController from "../controllers/taskController"
|
||||
|
||||
export const router = Router()
|
||||
//const mws = [handleValidation.handleValidationError]
|
||||
|
||||
router.get("/task/get", taskController.get)
|
||||
router.post("/task/add", taskController.add)
|
@ -1,9 +1,11 @@
|
||||
import { Request, Response, Router } from 'express'
|
||||
import { router as rootRoutes } from './rootRoutes'
|
||||
import { router as apiRoutes } from './apiRoutes'
|
||||
|
||||
export const router = Router()
|
||||
|
||||
router.use(rootRoutes)
|
||||
router.use("/api/v1", apiRoutes)
|
||||
|
||||
// 404
|
||||
router.use((req: Request, res: Response) => {
|
||||
|
@ -27,6 +27,8 @@ export default {
|
||||
return {
|
||||
username: AppStore.data.user.username
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {},
|
||||
async created() {}
|
||||
}
|
||||
</script>
|
||||
|
@ -29,7 +29,6 @@ const durationInSeconds = computed(() =>
|
||||
Math.floor((props.task.timeEnd - props.task.timeStart) / 1000)
|
||||
)
|
||||
const normalizedDuration = computed(() => formatDuration(durationInSeconds.value))
|
||||
console.log(props.task.title)
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@ -40,7 +39,6 @@ console.log(props.task.title)
|
||||
class="title"
|
||||
placeholder="What are you working on?"
|
||||
:value="props.task.title"
|
||||
:size="props.task.title.length + 1"
|
||||
/>
|
||||
</span>
|
||||
<span>
|
||||
|
@ -1,4 +1,5 @@
|
||||
export default {
|
||||
api_url: 'http://localhost:6060/api/v1',
|
||||
data: {
|
||||
user: {
|
||||
_id: '1234',
|
||||
@ -7,26 +8,28 @@ export default {
|
||||
},
|
||||
newTask: {},
|
||||
fetchedTasks: [
|
||||
{
|
||||
_id: 1,
|
||||
title: 'frontend',
|
||||
project: 'TiM',
|
||||
client: 'Filip Rojek',
|
||||
timeStart: 1703960133061,
|
||||
timeEnd: 1703960141414
|
||||
},
|
||||
{
|
||||
_id: 2,
|
||||
title: 'setting up',
|
||||
project: 'l2tp vpn',
|
||||
client: 'IS Media',
|
||||
timeStart: 1703960133061,
|
||||
timeEnd: 1703960141414
|
||||
}
|
||||
//{
|
||||
// _id: 1,
|
||||
// title: 'Loading',
|
||||
// project: 'Loading',
|
||||
// client: 'Loading',
|
||||
// timeStart: 1703960133061,
|
||||
// timeEnd: 1703960141414
|
||||
//}
|
||||
]
|
||||
},
|
||||
// Methods that you need, for e.g fetching data from server etc.
|
||||
fetchData() {
|
||||
// fetch logic
|
||||
async fetchData() {
|
||||
try {
|
||||
const response = await fetch(this.api_url + '/task/get')
|
||||
if (!response.ok) {
|
||||
throw new Error(`HTTP error! Status: ${response.status}`)
|
||||
}
|
||||
|
||||
const data = await response.json()
|
||||
this.data.fetchedTasks = data
|
||||
console.log('Received data:', data)
|
||||
} catch (error) {
|
||||
console.error('Error fetching data:', error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,10 @@ export default {
|
||||
return {
|
||||
tasks: AppStore.data.fetchedTasks
|
||||
}
|
||||
},
|
||||
async mounted() {
|
||||
await AppStore.fetchData()
|
||||
this.tasks = AppStore.data.fetchedTasks
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
Loading…
Reference in New Issue
Block a user