Refactor staff data models to use List<String> for skills and industries
- Updated GetStaffByIdStaff, GetStaffByUserIdStaffs, ListStaffStaffs, and UpdateStaffVariablesBuilder classes to replace AnyValue with List<String> for skills and industries. - Modified JSON serialization and deserialization logic accordingly. - Adjusted ExperienceRepositoryImpl to handle List<String> for industries and skills. - Updated GraphQL mutations and schema to reflect changes in data types for skills and industries.
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -15,8 +15,8 @@ class CreateStaffVariablesBuilder {
|
||||
Optional<int> _cancellationCount = Optional.optional(nativeFromJson, nativeToJson);
|
||||
Optional<int> _reliabilityScore = Optional.optional(nativeFromJson, nativeToJson);
|
||||
Optional<String> _bio = Optional.optional(nativeFromJson, nativeToJson);
|
||||
Optional<AnyValue> _skills = Optional.optional(AnyValue.fromJson, defaultSerializer);
|
||||
Optional<AnyValue> _industries = Optional.optional(AnyValue.fromJson, defaultSerializer);
|
||||
Optional<List<String>> _skills = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson));
|
||||
Optional<List<String>> _industries = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson));
|
||||
Optional<List<String>> _preferredLocations = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson));
|
||||
Optional<int> _maxDistanceMiles = Optional.optional(nativeFromJson, nativeToJson);
|
||||
Optional<AnyValue> _languages = Optional.optional(AnyValue.fromJson, defaultSerializer);
|
||||
@@ -84,11 +84,11 @@ class CreateStaffVariablesBuilder {
|
||||
_bio.value = t;
|
||||
return this;
|
||||
}
|
||||
CreateStaffVariablesBuilder skills(AnyValue? t) {
|
||||
CreateStaffVariablesBuilder skills(List<String>? t) {
|
||||
_skills.value = t;
|
||||
return this;
|
||||
}
|
||||
CreateStaffVariablesBuilder industries(AnyValue? t) {
|
||||
CreateStaffVariablesBuilder industries(List<String>? t) {
|
||||
_industries.value = t;
|
||||
return this;
|
||||
}
|
||||
@@ -262,8 +262,8 @@ class CreateStaffVariables {
|
||||
late final Optional<int>cancellationCount;
|
||||
late final Optional<int>reliabilityScore;
|
||||
late final Optional<String>bio;
|
||||
late final Optional<AnyValue>skills;
|
||||
late final Optional<AnyValue>industries;
|
||||
late final Optional<List<String>>skills;
|
||||
late final Optional<List<String>>industries;
|
||||
late final Optional<List<String>>preferredLocations;
|
||||
late final Optional<int>maxDistanceMiles;
|
||||
late final Optional<AnyValue>languages;
|
||||
@@ -339,12 +339,16 @@ class CreateStaffVariables {
|
||||
bio.value = json['bio'] == null ? null : nativeFromJson<String>(json['bio']);
|
||||
|
||||
|
||||
skills = Optional.optional(AnyValue.fromJson, defaultSerializer);
|
||||
skills.value = json['skills'] == null ? null : AnyValue.fromJson(json['skills']);
|
||||
skills = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson));
|
||||
skills.value = json['skills'] == null ? null : (json['skills'] as List<dynamic>)
|
||||
.map((e) => nativeFromJson<String>(e))
|
||||
.toList();
|
||||
|
||||
|
||||
industries = Optional.optional(AnyValue.fromJson, defaultSerializer);
|
||||
industries.value = json['industries'] == null ? null : AnyValue.fromJson(json['industries']);
|
||||
industries = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson));
|
||||
industries.value = json['industries'] == null ? null : (json['industries'] as List<dynamic>)
|
||||
.map((e) => nativeFromJson<String>(e))
|
||||
.toList();
|
||||
|
||||
|
||||
preferredLocations = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson));
|
||||
|
||||
@@ -51,7 +51,7 @@ class FilterStaffStaffs {
|
||||
final int? totalShifts;
|
||||
final String? ownerId;
|
||||
final bool? isRecommended;
|
||||
final AnyValue? skills;
|
||||
final List<String>? skills;
|
||||
final EnumValue<BackgroundCheckStatus>? backgroundCheckStatus;
|
||||
final EnumValue<EmploymentType>? employmentType;
|
||||
final String? initial;
|
||||
@@ -72,7 +72,9 @@ class FilterStaffStaffs {
|
||||
totalShifts = json['totalShifts'] == null ? null : nativeFromJson<int>(json['totalShifts']),
|
||||
ownerId = json['ownerId'] == null ? null : nativeFromJson<String>(json['ownerId']),
|
||||
isRecommended = json['isRecommended'] == null ? null : nativeFromJson<bool>(json['isRecommended']),
|
||||
skills = json['skills'] == null ? null : AnyValue.fromJson(json['skills']),
|
||||
skills = json['skills'] == null ? null : (json['skills'] as List<dynamic>)
|
||||
.map((e) => nativeFromJson<String>(e))
|
||||
.toList(),
|
||||
backgroundCheckStatus = json['backgroundCheckStatus'] == null ? null : backgroundCheckStatusDeserializer(json['backgroundCheckStatus']),
|
||||
employmentType = json['employmentType'] == null ? null : employmentTypeDeserializer(json['employmentType']),
|
||||
initial = json['initial'] == null ? null : nativeFromJson<String>(json['initial']),
|
||||
@@ -147,7 +149,7 @@ class FilterStaffStaffs {
|
||||
json['isRecommended'] = nativeToJson<bool?>(isRecommended);
|
||||
}
|
||||
if (skills != null) {
|
||||
json['skills'] = skills!.toJson();
|
||||
json['skills'] = skills?.map((e) => nativeToJson<String>(e)).toList();
|
||||
}
|
||||
if (backgroundCheckStatus != null) {
|
||||
json['backgroundCheckStatus'] =
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -37,8 +37,8 @@ class GetStaffByIdStaff {
|
||||
final AnyValue? badges;
|
||||
final bool? isRecommended;
|
||||
final String? bio;
|
||||
final AnyValue? skills;
|
||||
final AnyValue? industries;
|
||||
final List<String>? skills;
|
||||
final List<String>? industries;
|
||||
final List<String>? preferredLocations;
|
||||
final int? maxDistanceMiles;
|
||||
final AnyValue? languages;
|
||||
@@ -77,8 +77,12 @@ class GetStaffByIdStaff {
|
||||
badges = json['badges'] == null ? null : AnyValue.fromJson(json['badges']),
|
||||
isRecommended = json['isRecommended'] == null ? null : nativeFromJson<bool>(json['isRecommended']),
|
||||
bio = json['bio'] == null ? null : nativeFromJson<String>(json['bio']),
|
||||
skills = json['skills'] == null ? null : AnyValue.fromJson(json['skills']),
|
||||
industries = json['industries'] == null ? null : AnyValue.fromJson(json['industries']),
|
||||
skills = json['skills'] == null ? null : (json['skills'] as List<dynamic>)
|
||||
.map((e) => nativeFromJson<String>(e))
|
||||
.toList(),
|
||||
industries = json['industries'] == null ? null : (json['industries'] as List<dynamic>)
|
||||
.map((e) => nativeFromJson<String>(e))
|
||||
.toList(),
|
||||
preferredLocations = json['preferredLocations'] == null ? null : (json['preferredLocations'] as List<dynamic>)
|
||||
.map((e) => nativeFromJson<String>(e))
|
||||
.toList(),
|
||||
@@ -204,10 +208,10 @@ class GetStaffByIdStaff {
|
||||
json['bio'] = nativeToJson<String?>(bio);
|
||||
}
|
||||
if (skills != null) {
|
||||
json['skills'] = skills!.toJson();
|
||||
json['skills'] = skills?.map((e) => nativeToJson<String>(e)).toList();
|
||||
}
|
||||
if (industries != null) {
|
||||
json['industries'] = industries!.toJson();
|
||||
json['industries'] = industries?.map((e) => nativeToJson<String>(e)).toList();
|
||||
}
|
||||
if (preferredLocations != null) {
|
||||
json['preferredLocations'] = preferredLocations?.map((e) => nativeToJson<String>(e)).toList();
|
||||
|
||||
@@ -36,8 +36,8 @@ class GetStaffByUserIdStaffs {
|
||||
final AnyValue? badges;
|
||||
final bool? isRecommended;
|
||||
final String? bio;
|
||||
final AnyValue? skills;
|
||||
final AnyValue? industries;
|
||||
final List<String>? skills;
|
||||
final List<String>? industries;
|
||||
final List<String>? preferredLocations;
|
||||
final int? maxDistanceMiles;
|
||||
final AnyValue? languages;
|
||||
@@ -75,8 +75,12 @@ class GetStaffByUserIdStaffs {
|
||||
badges = json['badges'] == null ? null : AnyValue.fromJson(json['badges']),
|
||||
isRecommended = json['isRecommended'] == null ? null : nativeFromJson<bool>(json['isRecommended']),
|
||||
bio = json['bio'] == null ? null : nativeFromJson<String>(json['bio']),
|
||||
skills = json['skills'] == null ? null : AnyValue.fromJson(json['skills']),
|
||||
industries = json['industries'] == null ? null : AnyValue.fromJson(json['industries']),
|
||||
skills = json['skills'] == null ? null : (json['skills'] as List<dynamic>)
|
||||
.map((e) => nativeFromJson<String>(e))
|
||||
.toList(),
|
||||
industries = json['industries'] == null ? null : (json['industries'] as List<dynamic>)
|
||||
.map((e) => nativeFromJson<String>(e))
|
||||
.toList(),
|
||||
preferredLocations = json['preferredLocations'] == null ? null : (json['preferredLocations'] as List<dynamic>)
|
||||
.map((e) => nativeFromJson<String>(e))
|
||||
.toList(),
|
||||
@@ -198,10 +202,10 @@ class GetStaffByUserIdStaffs {
|
||||
json['bio'] = nativeToJson<String?>(bio);
|
||||
}
|
||||
if (skills != null) {
|
||||
json['skills'] = skills!.toJson();
|
||||
json['skills'] = skills?.map((e) => nativeToJson<String>(e)).toList();
|
||||
}
|
||||
if (industries != null) {
|
||||
json['industries'] = industries!.toJson();
|
||||
json['industries'] = industries?.map((e) => nativeToJson<String>(e)).toList();
|
||||
}
|
||||
if (preferredLocations != null) {
|
||||
json['preferredLocations'] = preferredLocations?.map((e) => nativeToJson<String>(e)).toList();
|
||||
|
||||
@@ -36,8 +36,8 @@ class ListStaffStaffs {
|
||||
final AnyValue? badges;
|
||||
final bool? isRecommended;
|
||||
final String? bio;
|
||||
final AnyValue? skills;
|
||||
final AnyValue? industries;
|
||||
final List<String>? skills;
|
||||
final List<String>? industries;
|
||||
final List<String>? preferredLocations;
|
||||
final int? maxDistanceMiles;
|
||||
final AnyValue? languages;
|
||||
@@ -74,8 +74,12 @@ class ListStaffStaffs {
|
||||
badges = json['badges'] == null ? null : AnyValue.fromJson(json['badges']),
|
||||
isRecommended = json['isRecommended'] == null ? null : nativeFromJson<bool>(json['isRecommended']),
|
||||
bio = json['bio'] == null ? null : nativeFromJson<String>(json['bio']),
|
||||
skills = json['skills'] == null ? null : AnyValue.fromJson(json['skills']),
|
||||
industries = json['industries'] == null ? null : AnyValue.fromJson(json['industries']),
|
||||
skills = json['skills'] == null ? null : (json['skills'] as List<dynamic>)
|
||||
.map((e) => nativeFromJson<String>(e))
|
||||
.toList(),
|
||||
industries = json['industries'] == null ? null : (json['industries'] as List<dynamic>)
|
||||
.map((e) => nativeFromJson<String>(e))
|
||||
.toList(),
|
||||
preferredLocations = json['preferredLocations'] == null ? null : (json['preferredLocations'] as List<dynamic>)
|
||||
.map((e) => nativeFromJson<String>(e))
|
||||
.toList(),
|
||||
@@ -197,10 +201,10 @@ class ListStaffStaffs {
|
||||
json['bio'] = nativeToJson<String?>(bio);
|
||||
}
|
||||
if (skills != null) {
|
||||
json['skills'] = skills!.toJson();
|
||||
json['skills'] = skills?.map((e) => nativeToJson<String>(e)).toList();
|
||||
}
|
||||
if (industries != null) {
|
||||
json['industries'] = industries!.toJson();
|
||||
json['industries'] = industries?.map((e) => nativeToJson<String>(e)).toList();
|
||||
}
|
||||
if (preferredLocations != null) {
|
||||
json['preferredLocations'] = preferredLocations?.map((e) => nativeToJson<String>(e)).toList();
|
||||
|
||||
@@ -16,8 +16,8 @@ class UpdateStaffVariablesBuilder {
|
||||
Optional<int> _cancellationCount = Optional.optional(nativeFromJson, nativeToJson);
|
||||
Optional<int> _reliabilityScore = Optional.optional(nativeFromJson, nativeToJson);
|
||||
Optional<String> _bio = Optional.optional(nativeFromJson, nativeToJson);
|
||||
Optional<AnyValue> _skills = Optional.optional(AnyValue.fromJson, defaultSerializer);
|
||||
Optional<AnyValue> _industries = Optional.optional(AnyValue.fromJson, defaultSerializer);
|
||||
Optional<List<String>> _skills = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson));
|
||||
Optional<List<String>> _industries = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson));
|
||||
Optional<List<String>> _preferredLocations = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson));
|
||||
Optional<int> _maxDistanceMiles = Optional.optional(nativeFromJson, nativeToJson);
|
||||
Optional<AnyValue> _languages = Optional.optional(AnyValue.fromJson, defaultSerializer);
|
||||
@@ -93,11 +93,11 @@ class UpdateStaffVariablesBuilder {
|
||||
_bio.value = t;
|
||||
return this;
|
||||
}
|
||||
UpdateStaffVariablesBuilder skills(AnyValue? t) {
|
||||
UpdateStaffVariablesBuilder skills(List<String>? t) {
|
||||
_skills.value = t;
|
||||
return this;
|
||||
}
|
||||
UpdateStaffVariablesBuilder industries(AnyValue? t) {
|
||||
UpdateStaffVariablesBuilder industries(List<String>? t) {
|
||||
_industries.value = t;
|
||||
return this;
|
||||
}
|
||||
@@ -274,8 +274,8 @@ class UpdateStaffVariables {
|
||||
late final Optional<int>cancellationCount;
|
||||
late final Optional<int>reliabilityScore;
|
||||
late final Optional<String>bio;
|
||||
late final Optional<AnyValue>skills;
|
||||
late final Optional<AnyValue>industries;
|
||||
late final Optional<List<String>>skills;
|
||||
late final Optional<List<String>>industries;
|
||||
late final Optional<List<String>>preferredLocations;
|
||||
late final Optional<int>maxDistanceMiles;
|
||||
late final Optional<AnyValue>languages;
|
||||
@@ -357,12 +357,16 @@ class UpdateStaffVariables {
|
||||
bio.value = json['bio'] == null ? null : nativeFromJson<String>(json['bio']);
|
||||
|
||||
|
||||
skills = Optional.optional(AnyValue.fromJson, defaultSerializer);
|
||||
skills.value = json['skills'] == null ? null : AnyValue.fromJson(json['skills']);
|
||||
skills = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson));
|
||||
skills.value = json['skills'] == null ? null : (json['skills'] as List<dynamic>)
|
||||
.map((e) => nativeFromJson<String>(e))
|
||||
.toList();
|
||||
|
||||
|
||||
industries = Optional.optional(AnyValue.fromJson, defaultSerializer);
|
||||
industries.value = json['industries'] == null ? null : AnyValue.fromJson(json['industries']);
|
||||
industries = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson));
|
||||
industries.value = json['industries'] == null ? null : (json['industries'] as List<dynamic>)
|
||||
.map((e) => nativeFromJson<String>(e))
|
||||
.toList();
|
||||
|
||||
|
||||
preferredLocations = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson));
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
import 'package:firebase_auth/firebase_auth.dart';
|
||||
import 'package:firebase_data_connect/firebase_data_connect.dart' as fdc;
|
||||
import 'package:krow_data_connect/krow_data_connect.dart' as dc;
|
||||
import 'package:krow_domain/krow_domain.dart';
|
||||
import '../../domain/repositories/experience_repository_interface.dart';
|
||||
|
||||
/// Implementation of [ExperienceRepositoryInterface] that delegates to Data Connect.
|
||||
@@ -10,7 +8,7 @@ class ExperienceRepositoryImpl implements ExperienceRepositoryInterface {
|
||||
// ignore: unused_field
|
||||
final FirebaseAuth _firebaseAuth;
|
||||
|
||||
/// Creates a [ExperienceRepositoryImpl] using Data Connect and Auth.
|
||||
/// Creates a [ExperienceRepositoryImpl] using Da a Connect and Auth.
|
||||
ExperienceRepositoryImpl({
|
||||
required dc.ExampleConnector dataConnect,
|
||||
required FirebaseAuth firebaseAuth,
|
||||
@@ -28,13 +26,13 @@ class ExperienceRepositoryImpl implements ExperienceRepositoryInterface {
|
||||
@override
|
||||
Future<List<String>> getIndustries(String staffId) async {
|
||||
final staff = await _getStaff(staffId);
|
||||
return ExperienceAdapter.fromDynamicList(staff.industries?.value);
|
||||
return staff.industries ?? [];
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<String>> getSkills(String staffId) async {
|
||||
final staff = await _getStaff(staffId);
|
||||
return ExperienceAdapter.fromDynamicList(staff.skills?.value);
|
||||
return staff.skills ?? [];
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -45,8 +43,8 @@ class ExperienceRepositoryImpl implements ExperienceRepositoryInterface {
|
||||
) async {
|
||||
await _dataConnect
|
||||
.updateStaff(id: staffId)
|
||||
.industries(fdc.AnyValue(industries))
|
||||
.skills(fdc.AnyValue(skills))
|
||||
.industries(industries)
|
||||
.skills(skills)
|
||||
.execute();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,16 +17,16 @@ dependencies:
|
||||
|
||||
# Architecture Packages
|
||||
krow_domain:
|
||||
path: ../../../../../../domain
|
||||
path: ../../../../../domain
|
||||
krow_core:
|
||||
path: ../../../../../../core
|
||||
path: ../../../../../core
|
||||
krow_data_connect:
|
||||
path: ../../../../../../data_connect
|
||||
firebase_auth: ^5.0.0
|
||||
path: ../../../../../data_connect
|
||||
firebase_auth: ^6.1.2
|
||||
design_system:
|
||||
path: ../../../../../../design_system
|
||||
path: ../../../../../design_system
|
||||
core_localization:
|
||||
path: ../../../../../../core_localization
|
||||
path: ../../../../../core_localization
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
||||
@@ -15,8 +15,8 @@ mutation CreateStaff(
|
||||
$reliabilityScore: Int
|
||||
|
||||
$bio: String
|
||||
$skills: Any
|
||||
$industries: Any
|
||||
$skills: [String!]
|
||||
$industries: [String!]
|
||||
$preferredLocations: [String!]
|
||||
$maxDistanceMiles: Int
|
||||
$languages: Any
|
||||
@@ -106,8 +106,8 @@ mutation UpdateStaff(
|
||||
$reliabilityScore: Int
|
||||
|
||||
$bio: String
|
||||
$skills: Any
|
||||
$industries: Any
|
||||
$skills: [String!]
|
||||
$industries: [String!]
|
||||
$preferredLocations: [String!]
|
||||
$maxDistanceMiles: Int
|
||||
$languages: Any
|
||||
|
||||
@@ -61,8 +61,8 @@ type Staff @table(name: "staffs") {
|
||||
|
||||
# Profile
|
||||
bio: String
|
||||
skills: Any #changed it for staffRole
|
||||
industries: Any
|
||||
skills: [String] #changed it for staffRole
|
||||
industries: [String]
|
||||
preferredLocations: [String]
|
||||
maxDistanceMiles: Int
|
||||
languages: Any
|
||||
|
||||
Reference in New Issue
Block a user