• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mozilla / fx-private-relay / 5c21a565-f214-49dc-aa7c-394e223be5c0

02 May 2024 05:45PM CUT coverage: 84.35% (+0.02%) from 84.335%
5c21a565-f214-49dc-aa7c-394e223be5c0

push

circleci

jwhitlock
Skip documentation of 405s

3473 of 4531 branches covered (76.65%)

Branch coverage included in aggregate %.

14534 of 16817 relevant lines covered (86.42%)

10.98 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

96.43
/api/serializers/phones.py
1
from rest_framework import serializers
1✔
2

3
from phones.models import InboundContact, RealPhone, RelayNumber
1✔
4

5

6
class RealPhoneSerializer(serializers.ModelSerializer):
1✔
7
    class Meta:
1✔
8
        model = RealPhone
1✔
9
        fields = [
1✔
10
            "id",
11
            "number",
12
            "verification_code",
13
            "verification_sent_date",
14
            "verified",
15
            "verified_date",
16
            "country_code",
17
        ]
18
        read_only_fields = [
1✔
19
            "id",
20
            "verification_sent_date",
21
            "verified",
22
            "verified_date",
23
            "country_code",
24
        ]
25
        extra_kwargs = {
1✔
26
            "verification_code": {"write_only": True},
27
        }
28

29

30
class RelayNumberSerializer(serializers.ModelSerializer):
1✔
31
    class Meta:
1✔
32
        model = RelayNumber
1✔
33
        fields = [
1✔
34
            "id",
35
            "number",
36
            "location",
37
            "country_code",
38
            "enabled",
39
            "remaining_minutes",
40
            "remaining_texts",
41
            "calls_forwarded",
42
            "calls_blocked",
43
            "texts_forwarded",
44
            "texts_blocked",
45
            "calls_and_texts_forwarded",
46
            "calls_and_texts_blocked",
47
            "created_at",
48
        ]
49
        read_only_fields = [
1✔
50
            "id",
51
            "location",
52
            "country_code",
53
            "remaining_minutes",
54
            "remaining_texts",
55
            "calls_forwarded",
56
            "calls_blocked",
57
            "texts_forwarded",
58
            "texts_blocked",
59
            "calls_and_texts_forwarded",
60
            "calls_and_texts_blocked",
61
            "created_at",
62
        ]
63

64

65
class InboundContactSerializer(serializers.ModelSerializer):
1✔
66
    class Meta:
1✔
67
        model = InboundContact
1✔
68
        fields = [
1✔
69
            "id",
70
            "relay_number",
71
            "inbound_number",
72
            "last_inbound_date",
73
            "last_inbound_type",
74
            "num_calls",
75
            "num_calls_blocked",
76
            "last_call_date",
77
            "num_texts",
78
            "num_texts_blocked",
79
            "last_text_date",
80
            "blocked",
81
        ]
82
        read_only_fields = [
1✔
83
            "id",
84
            "relay_number",
85
            "inbound_number",
86
            "last_inbound_date",
87
            "last_inbound_type",
88
            "num_calls",
89
            "num_calls_blocked",
90
            "last_call_date",
91
            "num_texts",
92
            "num_texts_blocked",
93
            "last_text_date",
94
        ]
95

96

97
class TwilioInboundCallSerializer(serializers.Serializer):
1✔
98
    Caller = serializers.CharField()
1✔
99
    Called = serializers.CharField()
1✔
100

101

102
class TwilioInboundSmsSerializer(serializers.Serializer):
1✔
103
    text = serializers.CharField()
1✔
104
    from_ = serializers.CharField()
1✔
105
    to = serializers.CharField()
1✔
106

107
    def __init__(self, *args, **kwargs) -> None:
1✔
108
        super().__init__(*args, **kwargs)
1✔
109
        # Change to reserved keyword "from"
110
        self.fields["from"] = self.fields.pop("from_")
1✔
111

112

113
class TwilioMessagesSerializer(serializers.Serializer):
1✔
114
    from_ = serializers.CharField()
1✔
115
    to = serializers.CharField()
1✔
116
    date_sent = serializers.CharField()
1✔
117
    body = serializers.CharField()
1✔
118

119
    def __init__(self, *args, **kwargs) -> None:
1✔
120
        super().__init__(*args, **kwargs)
1✔
121
        # Change to reserved keyword "from"
122
        self.fields["from"] = self.fields.pop("from_")
1✔
123

124

125
class TwilioSmsStatusSerializer(serializers.Serializer):
1✔
126
    SmsStatus = serializers.CharField()
1✔
127
    MessageSid = serializers.CharField()
1✔
128

129

130
class TwilioVoiceStatusSerializer(serializers.Serializer):
1✔
131
    CallSid = serializers.CharField()
1✔
132
    Called = serializers.CharField()
1✔
133
    CallStatus = serializers.CharField()
1✔
134
    CallDuration = serializers.IntegerField(required=False)
1✔
135

136

137
class IqInboundSmsSerializer(serializers.Serializer):
1✔
138
    text = serializers.CharField()
1✔
139
    from_ = serializers.CharField()
1✔
140
    to = serializers.CharField()
1✔
141

142
    def __init__(self, *args, **kwargs) -> None:
1✔
143
        super().__init__(*args, **kwargs)
×
144
        # Change to reserved keyword "from"
145
        self.fields["from"] = self.fields.pop("from_")
×
146

147

148
class OutboundSmsSerializer(serializers.Serializer):
1✔
149
    body = serializers.CharField()
1✔
150
    destination = serializers.CharField()
1✔
151

152

153
class OutboundCallSerializer(serializers.Serializer):
1✔
154
    to = serializers.CharField()
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc