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.runTasks, crons); } static Future> stopTasks( List crons) async { return await Http.put(Url.runTasks, crons); } static Future> inTimeLog(String cron) async { return await Http.get(Url.intimeLog(cron), null); } static Future> taskDetail(String cron) async { return await Http.get(Url.taskDetail + 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.addTask, data); } return await Http.post(Url.addTask, data); } static Future> delTask(String cron) async { return await Http.delete(Url.addTask, [cron]); } static Future> pinTask(String cron) async { return await Http.put(Url.pinTask, [cron]); } static Future> unpinTask(String cron) async { return await Http.put(Url.unpinTask, [cron]); } static Future> enableTask(String cron) async { return await Http.put(Url.enableTask, [cron]); } static Future> disableTask(String cron) async { return await Http.put(Url.disableTask, [cron]); } static Future>> files() async { return await Http.get>(Url.files, null); } static Future> content(String name) async { return await Http.get(Url.configContent + name, null); } static Future> saveFile( String name, String content) async { return await Http.post( Url.saveFile, {"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.enableEnvs, [id]); } static Future> disableEnv(String id) async { return await Http.put(Url.disableEnvs, [id]); } static Future> delEnv(String id) async { return await Http.delete(Url.delEnv, [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.addEnv, data); } return await Http.post(Url.addEnv, [data]); } static Future> moveEnv( String id, int fromIndex, int toIndex) async { return await Http.put( Url.envMove(id), {"fromIndex": fromIndex, "toIndex": toIndex}); } }