starwork_flutter/lib/api/service/team_api_service.dart
2025-10-14 13:53:01 +08:00

239 lines
7.8 KiB
Dart

import 'package:get/get.dart';
import 'package:starwork_flutter/api/api_path.dart';
import 'package:starwork_flutter/api/api_response.dart';
import 'package:starwork_flutter/api/base_api_service.dart';
import 'package:starwork_flutter/api/model/team/request/bind_team_star_cloud_account_request.dart';
import 'package:starwork_flutter/api/model/team/request/change_current_team_request.dart';
import 'package:starwork_flutter/api/model/team/request/create_new_depart_request.dart';
import 'package:starwork_flutter/api/model/team/request/create_new_person.dart';
import 'package:starwork_flutter/api/model/team/request/create_new_role_request.dart';
import 'package:starwork_flutter/api/model/team/request/create_team_request.dart';
import 'package:starwork_flutter/api/model/team/request/edit_person_info_request.dart';
import 'package:starwork_flutter/api/model/team/request/get_depart_list_request.dart';
import 'package:starwork_flutter/api/model/team/request/invite_info_request.dart';
import 'package:starwork_flutter/api/model/team/request/pserson_list_request.dart';
import 'package:starwork_flutter/api/model/team/request/role_list_request.dart';
import 'package:starwork_flutter/api/model/team/request/update_invite_parameter_config_request.dart';
import 'package:starwork_flutter/api/model/team/request/update_team_info_request.dart';
import 'package:starwork_flutter/api/model/team/response/all_team_list_response.dart';
import 'package:starwork_flutter/api/model/team/response/create_team_response.dart';
import 'package:starwork_flutter/api/model/team/response/depart_list_reponse.dart';
import 'package:starwork_flutter/api/model/team/response/invite_info_response.dart';
import 'package:starwork_flutter/api/model/team/response/person_details_response.dart';
import 'package:starwork_flutter/api/model/team/response/person_list_response.dart';
import 'package:starwork_flutter/api/model/team/response/role_list_response.dart';
import 'package:starwork_flutter/api/model/team/response/scene_info_response.dart';
import 'package:starwork_flutter/api/model/team/response/team_details_response.dart';
import 'package:starwork_flutter/api/model/team/response/team_invite_parameter_config_response.dart';
import 'package:starwork_flutter/api/model/user/request/validation_code_login.dart';
import 'package:starwork_flutter/api/model/user/response/token_response.dart';
import 'package:starwork_flutter/common/constant/http_constant.dart';
class TeamApiService {
final BaseApiService _api;
TeamApiService(this._api); // 通过构造函数注入
// 创建团队
Future<ApiResponse<CreateTeamResponse>> requestCreateTeam({
required CreateTeamRequest request,
}) {
return _api.makeRequest(
path: ApiPath.createTeam,
method: HttpConstant.post,
data: request.toJson(),
fromJson: (data) => CreateTeamResponse.fromJson(data),
);
}
// 所有团队列表
Future<ApiResponse<AllTeamListResponse>> requestAllTeamInfoList() {
return _api.makeRequest(
path: ApiPath.allTeamList,
method: HttpConstant.post,
fromJson: (data) => AllTeamListResponse.fromJson(data),
);
}
// 所有团队使用场景列表
Future<ApiResponse<SceneInfoResponseList>> requestAllSceneInfoList() {
return _api.makeRequest(
path: ApiPath.sceneList,
method: HttpConstant.post,
fromJson: (data) => SceneInfoResponseList.fromJson(data),
);
}
// 切换当前团队
Future<ApiResponse<void>> requestChangeCurrentTeam({
required ChangeCurrentTeamRequest request,
}) {
return _api.makeRequest(
path: ApiPath.changeTeam,
method: HttpConstant.post,
data: request.toJson(),
fromJson: (data) {},
);
}
// 团队绑定星云账号
Future<ApiResponse<void>> requestBindTeamStarCloudAccount({
required BindTeamStarCloudAccountRequest request,
}) {
return _api.makeRequest(
path: ApiPath.bindTeamStarCloudAccount,
method: HttpConstant.post,
data: request.toJson(),
fromJson: (data) {},
);
}
// 修改团队信息
Future<ApiResponse<void>> requestUpdateTeamInfo({
required UpdateTeamInfoRequest request,
}) {
return _api.makeRequest(
path: ApiPath.updateTeamInfo,
method: HttpConstant.post,
data: request.toJson(),
fromJson: (data) {},
);
}
// 查询团队详情
Future<ApiResponse<TeamDetailsResponse>> requestTeamDetails() {
return _api.makeRequest(
path: ApiPath.teamDetail,
method: HttpConstant.post,
fromJson: (data) => TeamDetailsResponse.fromJson(data),
);
}
// 查询人员详情
Future<ApiResponse<PersonDetailsResponse>> requestPersonDetails({
required String personNo,
}) {
return _api.makeRequest(
path: ApiPath.teamPersonDetail,
method: HttpConstant.post,
data: {"personNo": personNo},
fromJson: (data) => PersonDetailsResponse.fromJson(data),
);
}
/// 获取邀请信息
Future<ApiResponse<InviteInfoResponse>> requestInviteInfo({
required InviteInfoRequest request,
}) {
return _api.makeRequest(
path: ApiPath.getInviteInfo,
method: HttpConstant.post,
data: request.toJson(),
fromJson: (data) => InviteInfoResponse.fromJson(data),
);
}
// 请求邀请参数信息配置
Future<ApiResponse<TeamInviteParameterConfigResponse>> requestInviteParameterConfig() {
return _api.makeRequest(
path: ApiPath.getTeamInviteConfig,
method: HttpConstant.post,
fromJson: (data) => TeamInviteParameterConfigResponse.fromJson(data),
);
}
// 请求邀请参数信息修改
Future<ApiResponse<void>> requestUpdateInviteParameterConfig({
required UpdateInviteParameterConfigRequest request,
}) {
return _api.makeRequest(
path: ApiPath.updateTeamInviteConfig,
method: HttpConstant.post,
data: request.toJson(),
fromJson: (data) {},
);
}
// 获取组织列表
Future<ApiResponse<DepartListResponse>> requestDepartList({
required GetDepartListRequest request,
}) {
return _api.makeRequest(
path: ApiPath.departList,
method: HttpConstant.post,
data: request.toJson(),
fromJson: (data) => DepartListResponse.fromJson(data),
);
}
// 创建新的组织
Future<ApiResponse<void>> requestCreateDepart({
required CreateNewDepartRequest request,
}) {
return _api.makeRequest(
path: ApiPath.departCreate,
method: HttpConstant.post,
data: request.toJson(),
fromJson: (data) {},
);
}
// 获取团队角色列表
Future<ApiResponse<List<RoleListResponse>>> requestTeamRoleList() {
return _api.makeRequest(
path: ApiPath.roleList,
method: HttpConstant.post,
fromJson: (data) => RoleListResponse.fromJsonList(data),
);
}
// 创建新的角色
Future<ApiResponse<void>> requestCreateTeamRole({
required CreateNewRoleRequest request,
}) {
return _api.makeRequest(
path: ApiPath.roleCreate,
method: HttpConstant.post,
data: request.toJson(),
fromJson: (data) {},
);
}
// 添加新的人员
Future<ApiResponse<void>> requestAddPerson({
required CreateNewPerson request,
}) {
return _api.makeRequest(
path: ApiPath.createPerson,
method: HttpConstant.post,
data: request.toJson(),
fromJson: (data) {},
);
}
// 编辑人员信息
Future<ApiResponse<void>> requestEditPersonInfo({
required EditPersonInfoRequest request,
}) {
return _api.makeRequest(
path: ApiPath.updatePerson,
method: HttpConstant.post,
data: request.toJson(),
fromJson: (data) {},
);
}
// 获取人员列表
Future<ApiResponse<PersonListResponse>> requestPersonList({
required PersonListRequest request,
}) {
return _api.makeRequest(
path: ApiPath.personList,
method: HttpConstant.post,
data: request.toJson(),
fromJson: (data) => PersonListResponse.fromJson(data),
);
}
}