RoutineApi.java 1.49 KB
Newer Older
1
package web.multitask.trismegistoservices.api;
Paolo committed
2

3
import lombok.AllArgsConstructor;
Paolo committed
4 5
import org.json.JSONArray;
import org.json.JSONObject;
6
import org.springframework.http.ResponseEntity;
Paolo committed
7
import org.springframework.web.bind.annotation.*;
8
import web.multitask.trismegistoservices.mysql.RoutineSql;
9
import web.multitask.trismegistoservices.repository.UserRepository;
Paolo committed
10 11 12 13

@RestController
@CrossOrigin("*")
@RequestMapping("/api")
14
@AllArgsConstructor
15
public class RoutineApi {
Paolo committed
16

17
    final RoutineSql procedureMysql;
Paolo committed
18

19 20
    @PostMapping("/public/routine")
    public ResponseEntity<?> callRoutine(@RequestBody String body) {
Paolo committed
21
        JSONObject json = new JSONObject(body);
22
        if (json.has("routine")) {
Paolo committed
23 24
            try {
                JSONArray params = json.isNull("params") ? new JSONArray() : json.getJSONArray("params");
25 26 27 28 29
                String routine = json.getString("routine");
                String database = json.optString("database");
                JSONObject response = procedureMysql.routineExecutor(routine,
                        database,
                        params.toList().toArray());
30
                return ResponseEntity.ok(response.toMap());
Paolo committed
31
            } catch (Exception e) {
32
                return ResponseEntity.internalServerError().body(new JSONObject().put("message", e.getMessage()).put("status", false).toMap());
Paolo committed
33 34
            }
        } else {
35
            return ResponseEntity.badRequest().body(new JSONObject().put("message", "Invalid Request").put("status", false).toMap());
Paolo committed
36 37 38 39
        }
    }

}