299 lines
10 KiB
Python
299 lines
10 KiB
Python
from flask import Blueprint, jsonify, render_template, request
|
|
from app import mapController
|
|
from app.apiController import apiController
|
|
from app.utils import toRupiah
|
|
import mysql.connector
|
|
from contextlib import contextmanager
|
|
|
|
main = Blueprint('main', __name__)
|
|
|
|
# conn = mysql.connector.connect(
|
|
# host="192.168.91.102",
|
|
# database="dbwarehouse",
|
|
# user="dwhadmin",
|
|
# password="K3m3nd3s4@2025"
|
|
# )
|
|
|
|
@contextmanager
|
|
def get_connection():
|
|
conn = None
|
|
try:
|
|
conn = mysql.connector.connect(
|
|
# 192.168.91.102
|
|
host="localhost",
|
|
database="dbwarehouse",
|
|
# dwhadmin
|
|
user="root",
|
|
# K3m3nd3s4@2025
|
|
password="asalada123"
|
|
)
|
|
yield conn
|
|
finally:
|
|
if conn is not None and conn.is_connected():
|
|
conn.close()
|
|
|
|
@main.route('/api/status/danadesa/<level>/<kode>')
|
|
def get_total_dana_by_level(level,kode):
|
|
with get_connection() as conn:
|
|
result = apiController.getTotalDana(conn,level,kode )
|
|
return jsonify(result)
|
|
|
|
#========================================================
|
|
# MAIN ROUTE
|
|
#========================================================
|
|
@main.route('/')
|
|
def index():
|
|
with get_connection() as conn:
|
|
data = apiController.provinsi(conn)
|
|
print(data)
|
|
return render_template('index.html', provinsis=data)
|
|
|
|
@main.route("/geojson/provinsi")
|
|
def get_provinsi():
|
|
with get_connection() as conn:
|
|
data = mapController.fetch_geojson(conn,'provinsi')
|
|
return jsonify(data)
|
|
|
|
@main.route("/geojson/kabupaten/<kode_provinsi>")
|
|
def get_kabupaten(kode_provinsi):
|
|
with get_connection() as conn:
|
|
print("PRovinsi kode: ", kode_provinsi)
|
|
data = mapController.fetch_geojson(conn,'kabupaten', kode_provinsi)
|
|
return jsonify(data)
|
|
|
|
@main.route("/geojson/kecamatan/<kode_kabupaten>")
|
|
def get_kecamatan(kode_kabupaten):
|
|
with get_connection() as conn:
|
|
data = mapController.fetch_geojson(conn,'kecamatan', kode_kabupaten)
|
|
return jsonify(data)
|
|
|
|
@main.route("/geojson/desa/<kode_kecamatan>")
|
|
def get_desa(kode_kecamatan):
|
|
with get_connection() as conn:
|
|
data = mapController.fetch_geojson(conn,'desa', kode_kecamatan)
|
|
return jsonify(data)
|
|
|
|
|
|
|
|
|
|
#=========================================================
|
|
# API DATA
|
|
#=============================================================
|
|
@main.route('/api/desa/total-dana-desa')
|
|
def get_total_dd():
|
|
with get_connection() as conn:
|
|
datas = apiController.getTotalPersentaseSerapan(conn)
|
|
data = datas['jumlah_per_m']
|
|
return jsonify(data)
|
|
|
|
@main.route("/api/desa/total-serapan-dana")
|
|
def get_total_Serapan():
|
|
with get_connection() as conn:
|
|
data = apiController.getTotalPersentaseSerapan(conn)
|
|
return jsonify(data)
|
|
|
|
@main.route('/api/geojson/<level>')
|
|
def get_geojson(level):
|
|
print(level)
|
|
allowed = ['wil_provinsi', 'wil_kabupaten_kota', 'wil_kecamatan', 'wil_kelurahan_desa']
|
|
if level not in allowed:
|
|
return jsonify({"error": "Invalid level"}), 400
|
|
|
|
geojson_data = mapController.fetch_geojson(conn,level)
|
|
return jsonify(geojson_data)
|
|
|
|
|
|
#Informasi desa per provinsi
|
|
@main.route('/api/status-provinsi/<kode_provinsi>')
|
|
def get_status_provinsi(kode_provinsi):
|
|
with get_connection() as conn:
|
|
data = apiController.getStatusProvinsi(conn,kode_provinsi)
|
|
return jsonify(data)
|
|
|
|
#informasi desa per kabupaten/kota
|
|
@main.route('/api/status-kabupatenkota/<kode_prov>/<kode_kabkota>')
|
|
def get_status_kabkota(kode_prov, kode_kabkota):
|
|
with get_connection() as conn:
|
|
data = apiController.getStatusKabkota(conn,kode_prov, kode_kabkota)
|
|
return jsonify(data)
|
|
|
|
#informasi desa per kecamatan
|
|
@main.route('/api/status-kecamatan/<kode_provinsi>/<kode_kabupatenkota>/<kode_kecamatan>')
|
|
def get_status_kecamatan(kode_provinsi, kode_kabupatenkota, kode_kecamatan):
|
|
print(kode_provinsi, kode_kabupatenkota, kode_kecamatan)
|
|
with get_connection() as conn:
|
|
data = apiController.getStatusKecamatan(conn,kode_provinsi, kode_kabupatenkota, kode_kecamatan)
|
|
data = jsonify(data)
|
|
return data
|
|
@main.route("/api/status-bumdes")
|
|
def get_status_bumdes():
|
|
with get_connection() as conn:
|
|
data = apiController.getBumdes(conn)
|
|
return jsonify(data[0])
|
|
|
|
#informasi bumdes Bersama
|
|
@main.route("/api/status-bumdes-bersama")
|
|
def get_status_bumdes_bersma():
|
|
with get_connection() as conn:
|
|
data = apiController.getBumdes(conn)
|
|
return jsonify(data[1])
|
|
|
|
#informasi pendamping
|
|
@main.route('/api/pendamping-desa')
|
|
def get_pendamping():
|
|
with get_connection() as conn:
|
|
data = apiController.getPendamping(conn)
|
|
return jsonify(data[1])
|
|
#informasi pendamping per desa
|
|
@main.route('/api/pendamping-per-desa')
|
|
def get_pendamping_perdesa():
|
|
with get_connection() as conn:
|
|
data = apiController.getPendampingPerDesa(conn)
|
|
return jsonify(data[0])
|
|
|
|
#=======================================================================
|
|
#=======================================================================
|
|
#informasi Koperasi
|
|
@main.route('/api/provinsi/koperasi/<kode_prov>')
|
|
def get_koperasi_by_provinsi(kode_prov):
|
|
with get_connection() as conn:
|
|
data = apiController.getDesaDenganAtauTanpaKopmerKab(conn, kode_prov)
|
|
return jsonify(data)
|
|
|
|
@main.route('/api/provinsi/pendamping/<kode_prov>')
|
|
def get_pendamping_per_provinsi(kode_prov):
|
|
with get_connection() as conn:
|
|
data = apiController.getPendampingPerProv(conn, kode_prov)
|
|
return jsonify(data)
|
|
|
|
#informasi bumdes per provinsi
|
|
@main.route("/api/provinsi/bumdes/<kode_provinsi>")
|
|
def get_status_bumdes_prov(kode_provinsi):
|
|
with get_connection() as conn:
|
|
data = apiController.getBumdesProv(conn,kode_provinsi)
|
|
return jsonify(data)
|
|
|
|
#informasi serapan per provinsi
|
|
@main.route("/api/provinsi/serapan/<kode_provinsi>")
|
|
def get_provinsi_serapan(kode_provinsi):
|
|
with get_connection() as conn:
|
|
data = apiController.getTotalSerapanProv(conn,kode_provinsi)
|
|
return jsonify(data)
|
|
|
|
#=======================================================================
|
|
#=======================================================================
|
|
#informasi Koperasi
|
|
@main.route('/api/kabkota/koperasi/<kode_kabkota>')
|
|
def get_koperasi_by_kabkota(kode_kabkota):
|
|
with get_connection() as conn:
|
|
data = apiController.getDesaDenganAtauTanpaKopmerKab(conn, kode_kabkota)
|
|
return jsonify(data)
|
|
|
|
@main.route('/api/kabkota/pendamping/<kode_kabkota>')
|
|
def get_pendamping_per_kabkota(kode_kabkota):
|
|
with get_connection() as conn:
|
|
data = apiController.getPendampingPerKab(conn, kode_kabkota)
|
|
return jsonify(data)
|
|
|
|
#informasi bumdes
|
|
@main.route("/api/kabkota/bumdes/<kode_kabkota>")
|
|
def get_status_bumdes_kabkota(kode_kabkota):
|
|
with get_connection() as conn:
|
|
data = apiController.getBumdesKab(conn,kode_kabkota)
|
|
return jsonify(data)
|
|
|
|
#informasi serapan
|
|
@main.route("/api/kabkota/serapan/<kode_kabkota>")
|
|
def get_kabkota_serapan(kode_kabkota):
|
|
with get_connection() as conn:
|
|
data = apiController.getTotalSerapanKab(conn,kode_kabkota)
|
|
return jsonify(data)
|
|
|
|
#=======================================================================
|
|
#=======================================================================
|
|
#informasi Koperasi
|
|
@main.route('/api/kecamatan/koperasi/<kode_kecamatan>')
|
|
def get_koperasi_by_kecamatan(kode_kecamatan):
|
|
with get_connection() as conn:
|
|
data = apiController.getDesaDenganAtauTanpaKopmerKec(conn, kode_kecamatan)
|
|
return jsonify(data)
|
|
|
|
@main.route('/api/kecamatan/pendamping/<kode_kecamatan>')
|
|
def get_pendamping_per_kecamatan(kode_kecamatan):
|
|
with get_connection() as conn:
|
|
data = apiController.getPendampingPerKec(conn, kode_kecamatan)
|
|
return jsonify(data)
|
|
|
|
#informasi bumdes
|
|
@main.route("/api/kecamatan/bumdes/<kode_kecamatan>")
|
|
def get_status_bumdes_kecamatan(kode_kecamatan):
|
|
with get_connection() as conn:
|
|
data = apiController.getBumdesKec(conn,kode_kecamatan)
|
|
return jsonify(data)
|
|
|
|
#informasi serapan
|
|
@main.route("/api/kecamatan/serapan/<kode_kecamatan>")
|
|
def get_kecamatan_serapan(kode_kecamatan):
|
|
with get_connection() as conn:
|
|
data = apiController.getTotalSerapanKec(conn,kode_kecamatan)
|
|
return jsonify(data)
|
|
|
|
#=======================================================================
|
|
#=======================================================================
|
|
#informasi Koperasi
|
|
@main.route('/api/desa/status/<kode_prov>/<kode_kabkota>/<kode_kecamatan>/<kode_desa>')
|
|
def get_status_by_desa(kode_prov, kode_kabkota, kode_kecamatan, kode_desa):
|
|
with get_connection() as conn:
|
|
data = apiController.getStatusDesaByDesa(conn, kode_prov, kode_kabkota, kode_kecamatan, kode_desa)
|
|
return jsonify(data)
|
|
|
|
@main.route('/api/desa/koperasi/<kode_desa>')
|
|
def get_koperasi_by_desa(kode_desa):
|
|
with get_connection() as conn:
|
|
data = apiController.getDesaDenganAtauTanpaKopmerDesa(conn, kode_desa)
|
|
return jsonify(data)
|
|
|
|
@main.route('/api/desa/pendamping/<kode_desa>')
|
|
def get_pendamping_per_desa(kode_desa):
|
|
with get_connection() as conn:
|
|
data = apiController.getPendampingPerDesa(conn, kode_desa)
|
|
return jsonify(data)
|
|
|
|
#informasi bumdes
|
|
@main.route("/api/desa/bumdes/<kode_desa>")
|
|
def get_status_bumdes_desa(kode_desa):
|
|
with get_connection() as conn:
|
|
data = apiController.getBumdesDesa(conn,kode_desa)
|
|
return jsonify(data)
|
|
|
|
#informasi serapan
|
|
@main.route("/api/desa/serapan/<kode_desa>")
|
|
def get_pdesa_serapan(kode_desa):
|
|
with get_connection() as conn:
|
|
data = apiController.getTotalSerapanDesa(conn,kode_desa)
|
|
return jsonify(data)
|
|
|
|
#==================
|
|
# MASTER
|
|
#===============
|
|
|
|
@main.route('/app/master/provinsi')
|
|
def get_master_provinsi():
|
|
with get_connection() as conn:
|
|
data = apiController.provinsi(conn)
|
|
return data
|
|
|
|
@main.route('/api/master/kabkota/')
|
|
def get_master_kabkota():
|
|
provinsi_id = request.args.get('provinsi_id')
|
|
with get_connection() as conn:
|
|
data = apiController.kabkota(conn, provinsi_id)
|
|
return jsonify(data)
|
|
|
|
@main.route('/api/master/kecamatan')
|
|
def get_master_kecamatan():
|
|
kabkota_id = request.args.get('kabkota_id')
|
|
with get_connection() as conn:
|
|
data = apiController.kecamatan(conn,kabkota_id)
|
|
return jsonify(data)
|