import 'dart:ffi'; import 'package:qinglong_app/base/http/http.dart'; import 'package:qinglong_app/module/config/config_bean.dart'; import 'package:qinglong_app/module/env/env_bean.dart'; import 'package:qinglong_app/module/login/login_bean.dart'; import 'package:qinglong_app/module/task/task_bean.dart'; import 'package:qinglong_app/module/task/task_detail/task_detail_bean.dart'; import 'url.dart'; class Api { static Future> login(String userName, String passWord) async { return await Http.post( Url.LOGIN, { "username": userName, "password": passWord, }, ); } static Future>> crons() async { return await Http.get>(Url.TASKS, {"searchValue": ""}); } static Future> startTasks(List crons) async { return await Http.put(Url.RUN_TASKS, crons); } static Future> stopTasks(List crons) async { return await Http.put(Url.RUN_TASKS, crons); } static Future> inTimeLog(String cron) async { return await Http.get(Url.INTIME_LOG(cron), null); } static Future> taskDetail(String cron) async { return await Http.get(Url.TASK_DETAIL + cron, null); } static Future> addTask(String name, String command, String cron, {String? id}) async { var data = {"name": name, "command": command, "schedule": cron}; if (id != null) { data["_id"] = id; return await Http.put(Url.ADD_TASK, data); } return await Http.post(Url.ADD_TASK, data); } static Future> delTask(String cron) async { return await Http.delete(Url.ADD_TASK, [cron]); } static Future> pinTask(String cron) async { return await Http.put(Url.PIN_TASK, [cron]); } static Future> unpinTask(String cron) async { return await Http.put(Url.UNPIN_TASK, [cron]); } static Future> enableTask(String cron) async { return await Http.put(Url.ENABLE_TASK, [cron]); } static Future> disableTask(String cron) async { return await Http.put(Url.DISABLE_TASK, [cron]); } static Future>> files() async { return await Http.get>(Url.FILES, null); } static Future> content(String name) async { return await Http.get(Url.CONFIG_CONTENT + name, null); } static Future> saveFile(String name, String content) async { return await Http.post(Url.SAVE_FILE, {"content": content, "name": name}); } static Future>> envs(String search) async { return await Http.get>(Url.ENVS, {"searchValue": search}); } static Future> enableEnv(String id) async { return await Http.put(Url.ENABLE_ENVS, [id]); } static Future> disableEnv(String id) async { return await Http.put(Url.DISABLE_ENVS, [id]); } static Future> delEnv(String id) async { return await Http.delete(Url.DEL_ENV, [id]); } static Future> addEnv(String name, String value, String remarks, {String? id}) async { var data = {"value": value, "remarks": remarks, "name": name}; if (id != null) { data["_id"] = id; return await Http.put(Url.ADD_ENV, data); } return await Http.post(Url.ADD_ENV, [data]); } }