Skip to content

Commit 7fbf2b6

Browse files
authored
Add files via upload
1 parent a33f030 commit 7fbf2b6

File tree

6 files changed

+411
-3
lines changed

6 files changed

+411
-3
lines changed

controller/keuangan.js

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
//POG
2+
import Keuangan from "../models/keuangan.js";
3+
4+
export const postKeuangan = async (req, res) => {
5+
const {
6+
tanggal,
7+
kegiatan,
8+
jenis,
9+
catatan,
10+
jumlah,
11+
} = req.body;
12+
13+
const KeuanganPost = new Keuangan({
14+
tanggal: tanggal,
15+
kegiatan: kegiatan,
16+
jenis: jenis,
17+
catatan: catatan,
18+
jumlah: jumlah,
19+
});
20+
21+
try {
22+
const keuangan = await KeuanganPost.save();
23+
res.status(200).json({
24+
status: res.statusCode,
25+
message: 'Berhasil membuat Keuangan baru',
26+
data: keuangan
27+
})
28+
} catch (error) {
29+
res.status(400).json({
30+
status: res.statusCode,
31+
message: 'Gagal membuat Keuangan baru'
32+
})
33+
};
34+
};
35+
36+
export const getKeuangan = async (req, res) => {
37+
try {
38+
const keuangan = await Keuangan.findAll()
39+
res.status(200).json({
40+
status: res.statusCode,
41+
message: 'Berhasil mendapatkan Keuangan',
42+
data: keuangan
43+
})
44+
} catch (error) {
45+
res.status(400).json({
46+
status: res.statusCode,
47+
message: 'Gagal mendapatkan Keuangan'
48+
})
49+
};
50+
};
51+
52+
export const getKeuanganById = async (req, res) => {
53+
try {
54+
const keuangan = await Keuangan.findOne({
55+
where: {
56+
id_keuangan: req.params.id_keuangan,
57+
}
58+
})
59+
if (keuangan === null) return error
60+
res.status(200).json({
61+
status: res.statusCode,
62+
message: 'Berhasil mendapatkan Keuangan',
63+
data: keuangan
64+
})
65+
} catch (error) {
66+
res.status(400).json({
67+
status: res.statusCode,
68+
message: 'Gagal mendapatkan Keuangan'
69+
})
70+
};
71+
}
72+
73+
export const updateKeuangan = async (req, res) => {
74+
const dataKeuangan = req.body
75+
try {
76+
const updateKeuangan = await Keuangan.update({
77+
tanggal: req.body.tanggal,
78+
kegiatan: req.body.kegiatan,
79+
jenis: req.body.jenis,
80+
catatan: req.body.catatan,
81+
jumlah: req.body.catatan,
82+
},{
83+
where:{
84+
id_keuangan: req.params.id_keuangan
85+
}
86+
});
87+
res.status(200).json({
88+
status: res.statusCode,
89+
message: 'Berhasil memperbarui Keuangan',
90+
data: dataKeuangan
91+
})
92+
} catch (error) {
93+
res.status(400).json({
94+
status: res.statusCode,
95+
message: 'Gagal memperbarui Keuangan'
96+
})
97+
}
98+
}
99+
100+
export const deleteKeuangan = async (req, res) => {
101+
try {
102+
const deleteKeuangan = await Keuangan.destroy({
103+
where: {
104+
id_keuangan: req.params.id_keuangan
105+
}
106+
});
107+
res.status(200).json({
108+
status: res.statusCode,
109+
message: 'Berhasil menghapus Keuangan'
110+
})
111+
} catch (error) {
112+
res.status(400).json({
113+
status: res.statusCode,
114+
message: 'Gagal menghapus Keuangan'
115+
})
116+
}
117+
}

controller/penyakit.js

Lines changed: 214 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,214 @@
1+
//POG
2+
import Penyakit from "../models/penyakit.js";
3+
4+
export const postPenyakit = async (req, res) => {
5+
const {
6+
nama,
7+
indikasi,
8+
tanggal,
9+
latitude,
10+
longitude,
11+
deskripsi,
12+
} = req.body;
13+
if (req.files === null) return res.status(400).json({
14+
status: res.statusCode,
15+
message: 'Tidak ada file',
16+
})
17+
const file = req.files.file
18+
const fileSize = file.data.length
19+
const ext = path.extname(file.name)
20+
const fileName = file.md5 + ext
21+
const url = `${req.protocol}://${req.get("host")}/images/${fileName}`
22+
const allowedType = ['.png', '.jpg', '.jpeg']
23+
24+
if (!allowedType.includes(ext.toLowerCase())) return res.status(422).json({
25+
status: res.statusCode,
26+
message: 'invalid images',
27+
})
28+
if (fileSize > 5000000) return res.status(422).json({
29+
status: res.statusCode,
30+
message: 'Image must be less than 5 MB',
31+
})
32+
33+
file.mv(`./public/images/${fileName}`, async (err) => {
34+
if (err) return res.status(500).json({
35+
status: res.statusCode,
36+
message: 'invalid images',
37+
})
38+
try {
39+
const penyakit = await Penyakit.create({
40+
nama: nama,
41+
image: fileName,
42+
url: url,
43+
indikasi: indikasi,
44+
tanggal: tanggal,
45+
latitude: latitude,
46+
longitude: longitude,
47+
deskripsi: deskripsi,
48+
})
49+
res.status(201).json({
50+
status: res.statusCode,
51+
message: 'Berhasil membuat Penyakit',
52+
data: penyakit
53+
})
54+
} catch (error) {
55+
res.status(400).json({
56+
status: res.statusCode,
57+
message: 'Gagal membuat Penyakit baru'
58+
})
59+
}
60+
})
61+
};
62+
63+
export const getPenyakit = async (req, res) => {
64+
try {
65+
const penyakit = await Penyakit.findAll()
66+
res.status(200).json({
67+
status: res.statusCode,
68+
message: 'Berhasil mendapatkan Penyakit',
69+
data: penyakit
70+
})
71+
} catch (err) {
72+
res.status(400).json({
73+
status: res.statusCode,
74+
message: 'Gagal mendapatkan Penyakit'
75+
})
76+
};
77+
};
78+
79+
export const getPenyakitById = async (req, res) => {
80+
try {
81+
const penyakit = await Penyakit.findOne({
82+
where: {
83+
id_penyakit: req.params.id_penyakit,
84+
}
85+
})
86+
if (penyakit === null) return error
87+
res.status(200).json({
88+
status: res.statusCode,
89+
message: 'Berhasil mendapatkan Penyakit',
90+
data: penyakit
91+
})
92+
} catch (error) {
93+
res.status(400).json({
94+
status: res.statusCode,
95+
message: 'Gagal mendapatkan Penyakit'
96+
})
97+
};
98+
}
99+
100+
export const updatePenyakit = async (req, res) => {
101+
const searchpenyakit = await Penyakit.findOne({
102+
where: {
103+
id_penyakit: req.params.id_penyakit
104+
}
105+
});
106+
if (!searchpenyakit) return res.status(404).json({
107+
status: res.statusCode,
108+
message: 'Penyakit tidak ditemukan'
109+
})
110+
111+
let fileName = "";
112+
if (req.files === null) {
113+
fileName = penyakit.image
114+
} else {
115+
const file = req.files.file
116+
const fileSize = file.data.length
117+
const ext = path.extname(file.name)
118+
fileName = file.md5 + ext
119+
const allowedType = ['.png', '.jpg', '.jpeg']
120+
121+
if (!allowedType.includes(ext.toLowerCase())) return res.status(422).json({
122+
status: res.statusCode,
123+
message: 'invalid images',
124+
})
125+
if (fileSize > 5000000) return res.status(422).json({
126+
status: res.statusCode,
127+
message: 'Image must be less than 5 MB',
128+
})
129+
130+
const filePath = `./public/images/${searchinventaris.image}`
131+
fs.unlinkSync(filePath)
132+
133+
file.mv(`./public/images/${fileName}`, (err) => {
134+
if (err) return res.status(500).json({
135+
status: res.statusCode,
136+
message: 'invalid images',
137+
})
138+
})
139+
}
140+
141+
const {
142+
nama,
143+
indikasi,
144+
tanggal,
145+
latitude,
146+
longitude,
147+
deskripsi,
148+
} = req.body;
149+
const url = `${req.protocol}://${req.get("host")}/images/${fileName}`
150+
try {
151+
await Penyakit.update({
152+
nama: nama,
153+
image: fileName,
154+
url: url,
155+
indikasi: indikasi,
156+
tanggal: tanggal,
157+
latitude: latitude,
158+
longitude: longitude,
159+
deskripsi: deskripsi,
160+
}, {
161+
where: {
162+
id_penyakit: req.params.id_penyakit
163+
}
164+
})
165+
const updatedpenyakit = await Penyakit.findOne({
166+
where: {
167+
id_penyakit: req.params.id_penyakit,
168+
}
169+
})
170+
res.status(200).json({
171+
status: res.statusCode,
172+
message: 'Berhasil memperbarui Penyakit',
173+
data: updatedpenyakit
174+
})
175+
} catch (error) {
176+
res.status(400).json({
177+
status: res.statusCode,
178+
message: 'Gagal memperbarui Penyakit'
179+
})
180+
}
181+
}
182+
183+
export const deletePenyakit = async (req, res) => {
184+
const penyakit = await Penyakit.findOne({
185+
where: {
186+
id_penyakit: req.params.id_penyakit
187+
}
188+
});
189+
if (!penyakit) return res.status(404).json({
190+
status: res.statusCode,
191+
message: 'Penyakit tidak ditemukan'
192+
})
193+
194+
try {
195+
const filePath = `./public/images/${Penyakit.image}`
196+
fs.unlinkSync(filePath)
197+
await Penyakit.destroy({
198+
where: {
199+
id_penyakit: req.params.id_penyakit
200+
}
201+
});
202+
res.status(200).json({
203+
status: res.statusCode,
204+
message: 'Berhasil menghapus Penyakit'
205+
})
206+
} catch (err) {
207+
res.status(404).json({
208+
status: res.statusCode,
209+
message: 'Gagal menghapus Penyakit'
210+
})
211+
}
212+
213+
214+
}

models/hasilpanen.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const HasilPanen = db.define('hasilpanen',{
77
},
88
tanggal: {
99
type: Date,
10-
default: Date.now()
10+
default: Date.now(),
1111
},
1212
jenis: {
1313
type: String,
@@ -23,7 +23,7 @@ const HasilPanen = db.define('hasilpanen',{
2323
},
2424
createdAt: {
2525
type: String,
26-
default: Date.now()
26+
default: Date.now(),
2727
},
2828
updatedAt: {
2929
type: Date,

models/inventaris.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ const Inventaris = db.define('inventaris',{
2222
},
2323
createdAt: {
2424
type: String,
25-
default: Date.now()
25+
default: Date.now(),
2626
},
2727
updatedAt: {
2828
type: Date,

models/keuangan.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import db from "../config/database.js";
2+
3+
const Keuangan = db.define('keuangan',{
4+
id_keuangan: {
5+
type: Int16Array,
6+
primaryKey: true,
7+
},
8+
tanggal: {
9+
type: Date,
10+
default: Date.now(),
11+
},
12+
kegiatan: {
13+
type: String,
14+
},
15+
jenis: {
16+
type: String,
17+
},
18+
catatan: {
19+
type: String,
20+
},
21+
jumlah: {
22+
type: String,
23+
},
24+
createdAt: {
25+
type: String,
26+
default: Date.now(),
27+
},
28+
updatedAt: {
29+
type: Date,
30+
default: Date.now(),
31+
}
32+
});
33+
34+
export default Keuangan
35+
// POG

0 commit comments

Comments
 (0)