Skip to content

Commit 4bb9a8a

Browse files
authored
fix: add tostring to models [#140] (#146)
* fix: add tostring to models [#140] * fix: move tostring to mixin [#140] * fix: pr changes [#140]
1 parent 57747bf commit 4bb9a8a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+181
-71
lines changed

packages/clerk_auth/lib/src/clerk_auth/auth.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -419,7 +419,7 @@ class Auth {
419419
signUp.unverifiedFields.isNotEmpty:
420420
for (final field in signUp.unverifiedFields) {
421421
await _api
422-
.prepareSignUp(signUp, strategy: Strategy.forObject(field))
422+
.prepareSignUp(signUp, strategy: Strategy.forField(field))
423423
.then(_housekeeping);
424424
}
425425

packages/clerk_auth/lib/src/clerk_auth/auth_error.dart

+3
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@ enum AuthErrorCode {
5252
/// No strategy associated with type,
5353
noAssociatedStrategy,
5454

55+
/// No code retrieval method associated with the strategy,
56+
noAssociatedCodeRetrievalMethod,
57+
5558
/// Password and password confirmation must match
5659
passwordMatchError,
5760

packages/clerk_auth/lib/src/models/api/api_error.dart

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import 'package:clerk_auth/src/models/informative_to_string_mixin.dart';
12
import 'package:json_annotation/json_annotation.dart';
23
import 'package:meta/meta.dart';
34

@@ -6,7 +7,7 @@ part 'api_error.g.dart';
67
/// [ApiError] Clerk object
78
@immutable
89
@JsonSerializable()
9-
class ApiError {
10+
class ApiError with InformativeToStringMixin {
1011
/// Constructor
1112
const ApiError({
1213
required this.message,
@@ -27,13 +28,14 @@ class ApiError {
2728
/// long message
2829
final String? longMessage;
2930

31+
/// The longer of the two messages
32+
String get fullMessage => longMessage ?? message;
33+
3034
/// fromJson
3135
static ApiError fromJson(Map<String, dynamic> json) =>
3236
_$ApiErrorFromJson(json);
3337

3438
/// toJson
35-
Map<String, dynamic> toJson() => _$ApiErrorToJson(this);
36-
3739
@override
38-
String toString() => longMessage ?? message;
40+
Map<String, dynamic> toJson() => _$ApiErrorToJson(this);
3941
}

packages/clerk_auth/lib/src/models/api/api_response.dart

+4-3
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@ import 'dart:io';
22

33
import 'package:clerk_auth/src/models/api/api_error.dart';
44
import 'package:clerk_auth/src/models/client/client.dart';
5+
import 'package:clerk_auth/src/models/informative_to_string_mixin.dart';
56
import 'package:meta/meta.dart';
67

78
/// [ApiResponse] holds parsed Clerk data from a back-end http response
89
@immutable
9-
class ApiResponse {
10+
class ApiResponse with InformativeToStringMixin {
1011
/// Constructs an instance of [ApiResponse]
1112
const ApiResponse({
1213
required this.status,
@@ -45,6 +46,7 @@ class ApiResponse {
4546
bool get hasClient => isOkay && client is Client;
4647

4748
/// toJson
49+
@override
4850
Map<String, dynamic> toJson() {
4951
return {
5052
'status': status,
@@ -54,6 +56,5 @@ class ApiResponse {
5456
}
5557

5658
/// formatted error message
57-
String get errorMessage =>
58-
errors?.isNotEmpty == true ? errors!.join('; ') : 'Unknown error';
59+
String get errorMessage => errors?.map((e) => e.fullMessage).join('; ') ?? '';
5960
}

packages/clerk_auth/lib/src/models/client/client.dart

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'package:clerk_auth/src/clerk_auth/auth_error.dart';
22
import 'package:clerk_auth/src/models/client.dart';
3+
import 'package:clerk_auth/src/models/informative_to_string_mixin.dart';
34
import 'package:clerk_auth/src/utils/extensions.dart';
45
import 'package:clerk_auth/src/utils/json_serialization_helpers.dart';
56
import 'package:json_annotation/json_annotation.dart';
@@ -10,7 +11,7 @@ part 'client.g.dart';
1011
/// [Client] Clerk object
1112
@immutable
1213
@JsonSerializable()
13-
class Client {
14+
class Client with InformativeToStringMixin {
1415
/// Constructor
1516
const Client({
1617
this.id,
@@ -55,6 +56,7 @@ class Client {
5556
static Client fromJson(Map<String, dynamic> json) => _$ClientFromJson(json);
5657

5758
/// toJson
59+
@override
5860
Map<String, dynamic> toJson() => _$ClientToJson(this);
5961

6062
/// iterable of current user ids

packages/clerk_auth/lib/src/models/client/email.dart

+1
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,6 @@ class Email extends UserIdentifyingData {
4141
static Email fromJson(Map<String, dynamic> json) => _$EmailFromJson(json);
4242

4343
/// toJson
44+
@override
4445
Map<String, dynamic> toJson() => _$EmailToJson(this);
4546
}

packages/clerk_auth/lib/src/models/client/external_account.dart

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import 'package:clerk_auth/src/models/client/verification.dart';
2+
import 'package:clerk_auth/src/models/informative_to_string_mixin.dart';
23
import 'package:clerk_auth/src/utils/json_serialization_helpers.dart';
34
import 'package:json_annotation/json_annotation.dart';
45
import 'package:meta/meta.dart';
@@ -8,7 +9,7 @@ part 'external_account.g.dart';
89
/// [ExternalAccount] Clerk object
910
@immutable
1011
@JsonSerializable()
11-
class ExternalAccount {
12+
class ExternalAccount with InformativeToStringMixin {
1213
/// Constructor
1314
const ExternalAccount({
1415
required this.id,
@@ -89,5 +90,6 @@ class ExternalAccount {
8990
_$ExternalAccountFromJson(json);
9091

9192
/// toJson
93+
@override
9294
Map<String, dynamic> toJson() => _$ExternalAccountToJson(this);
9395
}

packages/clerk_auth/lib/src/models/client/factor.dart

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import 'package:clerk_auth/src/models/client/strategy.dart';
2+
import 'package:clerk_auth/src/models/informative_to_string_mixin.dart';
23
import 'package:json_annotation/json_annotation.dart';
34
import 'package:meta/meta.dart';
45

@@ -7,7 +8,7 @@ part 'factor.g.dart';
78
/// [Factor] Clerk object
89
@immutable
910
@JsonSerializable()
10-
class Factor {
11+
class Factor with InformativeToStringMixin {
1112
/// Constructor
1213
const Factor({
1314
required this.strategy,
@@ -50,5 +51,6 @@ class Factor {
5051
static Factor fromJson(Map<String, dynamic> json) => _$FactorFromJson(json);
5152

5253
/// toJson
54+
@override
5355
Map<String, dynamic> toJson() => _$FactorToJson(this);
5456
}

packages/clerk_auth/lib/src/models/client/field.dart

+4-4
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,13 @@ class Field {
4040
/// the [name] of the [Field]
4141
final String name;
4242

43-
/// toString
44-
@override
45-
String toString() => name;
46-
4743
/// toJson
4844
String toJson() => name;
4945

46+
/// toJson
47+
@override
48+
String toString() => name;
49+
5050
/// A display title for this attribute
5151
String get title => name.replaceAll('_', ' ');
5252
}

packages/clerk_auth/lib/src/models/client/organization.dart

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import 'package:clerk_auth/src/models/informative_to_string_mixin.dart';
12
import 'package:clerk_auth/src/utils/extensions.dart';
23
import 'package:clerk_auth/src/utils/json_serialization_helpers.dart';
34
import 'package:json_annotation/json_annotation.dart';
@@ -8,7 +9,7 @@ part 'organization.g.dart';
89
/// [Organization] Clerk object
910
@immutable
1011
@JsonSerializable()
11-
class Organization {
12+
class Organization with InformativeToStringMixin {
1213
/// Constructor
1314
const Organization({
1415
this.id = '',
@@ -80,5 +81,6 @@ class Organization {
8081
_$OrganizationFromJson(json);
8182

8283
/// toJson
84+
@override
8385
Map<String, dynamic> toJson() => _$OrganizationToJson(this);
8486
}

packages/clerk_auth/lib/src/models/client/organization_membership.dart

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'package:clerk_auth/src/models/client/organization.dart';
22
import 'package:clerk_auth/src/models/client/user_public.dart';
3+
import 'package:clerk_auth/src/models/informative_to_string_mixin.dart';
34
import 'package:clerk_auth/src/utils/json_serialization_helpers.dart';
45
import 'package:json_annotation/json_annotation.dart';
56
import 'package:meta/meta.dart';
@@ -9,7 +10,7 @@ part 'organization_membership.g.dart';
910
/// [OrganizationMembership] Clerk object
1011
@immutable
1112
@JsonSerializable()
12-
class OrganizationMembership {
13+
class OrganizationMembership with InformativeToStringMixin {
1314
/// Constructor
1415
const OrganizationMembership({
1516
required this.id,
@@ -49,5 +50,6 @@ class OrganizationMembership {
4950
_$OrganizationMembershipFromJson(json);
5051

5152
/// toJson
53+
@override
5254
Map<String, dynamic> toJson() => _$OrganizationMembershipToJson(this);
5355
}

packages/clerk_auth/lib/src/models/client/passkey.dart

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import 'package:clerk_auth/src/models/client/verification.dart';
2+
import 'package:clerk_auth/src/models/informative_to_string_mixin.dart';
23
import 'package:clerk_auth/src/utils/json_serialization_helpers.dart';
34
import 'package:json_annotation/json_annotation.dart';
45
import 'package:meta/meta.dart';
@@ -8,7 +9,7 @@ part 'passkey.g.dart';
89
/// [Passkey] Clerk object
910
@immutable
1011
@JsonSerializable()
11-
class Passkey {
12+
class Passkey with InformativeToStringMixin {
1213
/// Constructor
1314
const Passkey({
1415
required this.id,
@@ -44,5 +45,6 @@ class Passkey {
4445
static Passkey fromJson(Map<String, dynamic> json) => _$PasskeyFromJson(json);
4546

4647
/// toJson
48+
@override
4749
Map<String, dynamic> toJson() => _$PasskeyToJson(this);
4850
}

packages/clerk_auth/lib/src/models/client/phone_number.dart

+1
Original file line numberDiff line numberDiff line change
@@ -50,5 +50,6 @@ class PhoneNumber extends UserIdentifyingData {
5050
_$PhoneNumberFromJson(json);
5151

5252
/// toJson
53+
@override
5354
Map<String, dynamic> toJson() => _$PhoneNumberToJson(this);
5455
}

packages/clerk_auth/lib/src/models/client/session.dart

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'package:clerk_auth/src/models/client/session_token.dart';
22
import 'package:clerk_auth/src/models/client/user.dart';
33
import 'package:clerk_auth/src/models/client/user_public.dart';
4+
import 'package:clerk_auth/src/models/informative_to_string_mixin.dart';
45
import 'package:clerk_auth/src/models/status.dart';
56
import 'package:clerk_auth/src/utils/json_serialization_helpers.dart';
67
import 'package:json_annotation/json_annotation.dart';
@@ -11,7 +12,7 @@ part 'session.g.dart';
1112
/// [Session] Clerk object
1213
@immutable
1314
@JsonSerializable()
14-
class Session {
15+
class Session with InformativeToStringMixin {
1516
/// Constructor
1617
const Session({
1718
required this.id,
@@ -59,5 +60,6 @@ class Session {
5960
static Session fromJson(Map<String, dynamic> json) => _$SessionFromJson(json);
6061

6162
/// toJson
63+
@override
6264
Map<String, dynamic> toJson() => _$SessionToJson(this);
6365
}

packages/clerk_auth/lib/src/models/client/session_token.dart

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import 'dart:convert';
22

33
import 'package:clerk_auth/src/clerk_auth/auth_error.dart';
44
import 'package:clerk_auth/src/models/client/organization.dart';
5+
import 'package:clerk_auth/src/models/informative_to_string_mixin.dart';
56
import 'package:clerk_auth/src/utils/extensions.dart';
67
import 'package:json_annotation/json_annotation.dart';
78
import 'package:meta/meta.dart';
@@ -11,7 +12,7 @@ part 'session_token.g.dart';
1112
/// [SessionToken] Clerk object
1213
@immutable
1314
@JsonSerializable()
14-
class SessionToken {
15+
class SessionToken with InformativeToStringMixin {
1516
/// Constructor
1617
SessionToken({required this.jwt});
1718

@@ -68,5 +69,6 @@ class SessionToken {
6869
_$SessionTokenFromJson(json);
6970

7071
/// toJson
72+
@override
7173
Map<String, dynamic> toJson() => _$SessionTokenToJson(this);
7274
}

packages/clerk_auth/lib/src/models/client/sign_in.dart

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import 'package:clerk_auth/src/models/client/strategy.dart';
44
import 'package:clerk_auth/src/models/client/user_public.dart';
55
import 'package:clerk_auth/src/models/client/verification.dart';
66
import 'package:clerk_auth/src/models/enums.dart';
7+
import 'package:clerk_auth/src/models/informative_to_string_mixin.dart';
78
import 'package:clerk_auth/src/models/status.dart';
89
import 'package:clerk_auth/src/utils/json_serialization_helpers.dart';
910
import 'package:json_annotation/json_annotation.dart';
@@ -14,7 +15,7 @@ part 'sign_in.g.dart';
1415
/// [SignIn] Clerk object
1516
@immutable
1617
@JsonSerializable()
17-
class SignIn {
18+
class SignIn with InformativeToStringMixin {
1819
/// Constructor
1920
const SignIn({
2021
required this.id,
@@ -70,6 +71,7 @@ class SignIn {
7071
static SignIn fromJson(Map<String, dynamic> json) => _$SignInFromJson(json);
7172

7273
/// toJson
74+
@override
7375
Map<String, dynamic> toJson() => _$SignInToJson(this);
7476

7577
/// Find a [Verification] if one exists for this [SignIn]

packages/clerk_auth/lib/src/models/client/sign_up.dart

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'package:clerk_auth/src/models/client/field.dart';
22
import 'package:clerk_auth/src/models/client/verification.dart';
3+
import 'package:clerk_auth/src/models/informative_to_string_mixin.dart';
34
import 'package:clerk_auth/src/models/status.dart';
45
import 'package:clerk_auth/src/utils/json_serialization_helpers.dart';
56
import 'package:json_annotation/json_annotation.dart';
@@ -10,7 +11,7 @@ part 'sign_up.g.dart';
1011
/// [SignUp] Clerk object
1112
@immutable
1213
@JsonSerializable()
13-
class SignUp {
14+
class SignUp with InformativeToStringMixin {
1415
/// Constructor
1516
const SignUp({
1617
required this.id,
@@ -105,6 +106,7 @@ class SignUp {
105106
static SignUp fromJson(Map<String, dynamic> json) => _$SignUpFromJson(json);
106107

107108
/// toJson
109+
@override
108110
Map<String, dynamic> toJson() => _$SignUpToJson(this);
109111

110112
/// is [field] required?

0 commit comments

Comments
 (0)