feat: legacy mobile apps created
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
import 'package:graphql/client.dart';
|
||||
import 'package:injectable/injectable.dart';
|
||||
import 'package:krow/core/application/clients/api/api_client.dart';
|
||||
import 'package:krow/core/data/models/event/addon_model.dart';
|
||||
import 'package:krow/core/data/models/event/business_member_model.dart';
|
||||
import 'package:krow/core/data/models/event/hub_model.dart';
|
||||
import 'package:krow/core/data/models/event/tag_model.dart';
|
||||
import 'package:krow/core/data/models/shift/business_skill_model.dart';
|
||||
import 'package:krow/core/data/models/shift/department_model.dart';
|
||||
import 'package:krow/features/create_event/data/create_event_gql.dart';
|
||||
|
||||
@Injectable()
|
||||
class CreateEventApiProvider {
|
||||
final ApiClient _client;
|
||||
|
||||
CreateEventApiProvider({required ApiClient client}) : _client = client;
|
||||
|
||||
Future<List<HubModel>> getHubs() async {
|
||||
QueryResult result = await _client.query(
|
||||
schema: getClientHubsQuery,
|
||||
);
|
||||
if (result.hasException) {
|
||||
throw Exception(result.exception.toString());
|
||||
}
|
||||
|
||||
if (result.data == null || result.data!['client_hubs'] == null) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return (result.data!['client_hubs'] as List)
|
||||
.map((e) => HubModel.fromJson(e))
|
||||
.toList();
|
||||
}
|
||||
|
||||
Future<List<AddonModel>> getAddons() async {
|
||||
QueryResult result = await _client.query(
|
||||
schema: getClientAddonsQuery,
|
||||
);
|
||||
if (result.hasException) {
|
||||
throw Exception(result.exception.toString());
|
||||
}
|
||||
|
||||
if (result.data == null || result.data!['client_business_addons'] == null) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return (result.data!['client_business_addons'] as List)
|
||||
.map((e) => AddonModel.fromJson(e))
|
||||
.toList();
|
||||
}
|
||||
|
||||
Future<List<TagModel>> getTags() async {
|
||||
QueryResult result = await _client.query(
|
||||
schema: getClientTagsQuery,
|
||||
);
|
||||
if (result.hasException) {
|
||||
throw Exception(result.exception.toString());
|
||||
}
|
||||
|
||||
if (result.data == null || result.data!['client_tags'] == null) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return (result.data!['client_tags'] as List)
|
||||
.map((e) => TagModel.fromJson(e))
|
||||
.toList();
|
||||
}
|
||||
|
||||
Future<List<BusinessMemberModel>> getContacts() async {
|
||||
QueryResult result = await _client.query(
|
||||
schema: getClientMembersQuery,
|
||||
);
|
||||
if (result.hasException) {
|
||||
throw Exception(result.exception.toString());
|
||||
}
|
||||
|
||||
if (result.data == null || result.data!['client_shift_contacts'] == null) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return (result.data!['client_shift_contacts'] as List)
|
||||
.map((e) => BusinessMemberModel.fromJson(e))
|
||||
.toList();
|
||||
}
|
||||
|
||||
Future<List<BusinessSkillModel>> getSkill() async {
|
||||
QueryResult result = await _client.query(
|
||||
schema: getClientBusinessSkillQuery,
|
||||
);
|
||||
if (result.hasException) {
|
||||
throw Exception(result.exception.toString());
|
||||
}
|
||||
|
||||
if (result.data == null || result.data!['client_business_skills'] == null) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return (result.data!['client_business_skills'] as List)
|
||||
.map((e) => BusinessSkillModel.fromJson(e))
|
||||
.toList();
|
||||
}
|
||||
|
||||
Future<List<DepartmentModel>> getDepartments(String hubId) async {
|
||||
QueryResult result = await _client.query(
|
||||
schema: getClientDepartmentsQuery,
|
||||
body: {'hub_id': hubId},
|
||||
);
|
||||
if (result.hasException) {
|
||||
throw Exception(result.exception.toString());
|
||||
}
|
||||
if (result.data == null || result.data!['client_hub_departments'] == null) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return (result.data!['client_hub_departments'] as List)
|
||||
.map((e) => DepartmentModel.fromJson(e))
|
||||
.toList();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
const String getClientHubsQuery = r'''
|
||||
query getClientHubs() {
|
||||
client_hubs {
|
||||
id
|
||||
name
|
||||
address
|
||||
full_address {
|
||||
street_number
|
||||
zip_code
|
||||
latitude
|
||||
longitude
|
||||
formatted_address
|
||||
street
|
||||
region
|
||||
city
|
||||
country
|
||||
}
|
||||
}
|
||||
}
|
||||
''';
|
||||
|
||||
const String getClientAddonsQuery = r'''
|
||||
query getClientAddons() {
|
||||
client_business_addons {
|
||||
id
|
||||
name
|
||||
}
|
||||
}
|
||||
''';
|
||||
|
||||
const String getClientTagsQuery = r'''
|
||||
query getClientTags() {
|
||||
client_tags {
|
||||
id
|
||||
name
|
||||
slug
|
||||
}
|
||||
}
|
||||
''';
|
||||
|
||||
const String getClientBusinessSkillQuery = r'''
|
||||
query getClientSkills() {
|
||||
client_business_skills {
|
||||
id
|
||||
skill {
|
||||
id
|
||||
name
|
||||
slug
|
||||
price
|
||||
}
|
||||
price
|
||||
is_active
|
||||
}
|
||||
}
|
||||
''';
|
||||
|
||||
const String getClientMembersQuery = r'''
|
||||
query getClientMembers() {
|
||||
client_shift_contacts() {
|
||||
id
|
||||
first_name
|
||||
last_name
|
||||
title
|
||||
avatar
|
||||
auth_info {
|
||||
email
|
||||
phone
|
||||
}
|
||||
}
|
||||
}
|
||||
''';
|
||||
|
||||
const String getClientDepartmentsQuery = r'''
|
||||
query getClientSkills($hub_id: ID!) {
|
||||
client_hub_departments(hub_id: $hub_id) {
|
||||
id
|
||||
name
|
||||
}
|
||||
}
|
||||
''';
|
||||
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
import 'package:injectable/injectable.dart';
|
||||
import 'package:krow/core/data/models/event/addon_model.dart';
|
||||
import 'package:krow/core/data/models/event/business_member_model.dart';
|
||||
import 'package:krow/core/data/models/event/hub_model.dart';
|
||||
import 'package:krow/core/data/models/event/tag_model.dart';
|
||||
import 'package:krow/core/data/models/shift/business_skill_model.dart';
|
||||
import 'package:krow/core/data/models/shift/department_model.dart';
|
||||
import 'package:krow/features/create_event/data/create_event_api_provider.dart';
|
||||
import 'package:krow/features/create_event/domain/create_event_repository.dart';
|
||||
|
||||
@Singleton(as: CreateEventRepository)
|
||||
class CreateEventRepositoryImpl extends CreateEventRepository {
|
||||
final CreateEventApiProvider _apiProvider;
|
||||
|
||||
CreateEventRepositoryImpl({required CreateEventApiProvider apiProvider})
|
||||
: _apiProvider = apiProvider;
|
||||
|
||||
@override
|
||||
Future<List<HubModel>> getHubs() async {
|
||||
return _apiProvider.getHubs();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<AddonModel>> getAddons() async {
|
||||
return _apiProvider.getAddons();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<TagModel>> getTags() async {
|
||||
return _apiProvider.getTags();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<BusinessMemberModel>> getContacts() async {
|
||||
return _apiProvider.getContacts();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<BusinessSkillModel>> getSkills() {
|
||||
return _apiProvider.getSkill();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<DepartmentModel>> getDepartments(String hubId) {
|
||||
return _apiProvider.getDepartments(hubId);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user