Skip to content

Commit 27bf2d2

Browse files
authored
Merge pull request cyclic-software#7 from Capstone-Bangkit/CRUD-second
Crud second
2 parents 9de5bbf + d6f26da commit 27bf2d2

File tree

10 files changed

+437
-4
lines changed

10 files changed

+437
-4
lines changed

controller/hasilpanen.js

+1
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ export const updateHasilPanen = async (req, res) => {
8383
id_hasil: req.params.id_hasil
8484
}
8585
});
86+
if (updateHasilPanen == 0) return error
8687
res.status(200).json({
8788
status: res.statusCode,
8889
message: 'Berhasil memperbarui hasil panen',

controller/inventaris.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export const postInventaris = async (req, res) => {
1616
const fileSize = file.data.length
1717
const ext = path.extname(file.name)
1818
const fileName = file.md5 + ext
19-
const url = `${req.protocol}://${req.get("host")}/images/${fileName}`
19+
const url = `${req.protocol}://${req.get("host")}/public/images/${fileName}`
2020
const allowedType = ['.png', '.jpg', '.jpeg']
2121

2222
if (!allowedType.includes(ext.toLowerCase())) return res.status(422).json({

controller/keuangan.js

+122
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
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+
try {
75+
const updateKeuangan = await Keuangan.update({
76+
tanggal: req.body.tanggal,
77+
kegiatan: req.body.kegiatan,
78+
jenis: req.body.jenis,
79+
catatan: req.body.catatan,
80+
jumlah: req.body.jumlah,
81+
},{
82+
where:{
83+
id_keuangan: req.params.id_keuangan
84+
}
85+
});
86+
if (updateKeuangan == 0) return error
87+
const dataKeuangan = await Keuangan.findOne({
88+
where: {
89+
id_keuangan: req.params.id_keuangan,
90+
}
91+
})
92+
res.status(200).json({
93+
status: res.statusCode,
94+
message: 'Berhasil memperbarui Keuangan',
95+
data: dataKeuangan
96+
})
97+
} catch (error) {
98+
res.status(400).json({
99+
status: res.statusCode,
100+
message: 'Gagal memperbarui Keuangan'
101+
})
102+
}
103+
}
104+
105+
export const deleteKeuangan = async (req, res) => {
106+
try {
107+
const deleteKeuangan = await Keuangan.destroy({
108+
where: {
109+
id_keuangan: req.params.id_keuangan
110+
}
111+
});
112+
res.status(200).json({
113+
status: res.statusCode,
114+
message: 'Berhasil menghapus Keuangan'
115+
})
116+
} catch (error) {
117+
res.status(400).json({
118+
status: res.statusCode,
119+
message: 'Gagal menghapus Keuangan'
120+
})
121+
}
122+
}

controller/penyakit.js

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

models/hasilpanen.js

+2-2
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

+1-1
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,

0 commit comments

Comments
 (0)