Skip to content

Commit ba5225c

Browse files
committed
bug fix 0.4.0 release
1 parent 6ea986f commit ba5225c

File tree

7 files changed

+65
-16
lines changed

7 files changed

+65
-16
lines changed

README.md

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@ DRF_FCM = {
2424
}
2525
```
2626

27+
urls.py
28+
29+
```python
30+
url(r'^fcm/', include('drf_fcm.urls')),
31+
```
32+
2733
# Docs
2834

2935
**Available Endpoints**:
@@ -49,8 +55,7 @@ Request Body:
4955
"name": "Lenovo Vibe",
5056
"device_id": "<IMEI>",
5157
"reg_id": "<gcm reg id>",
52-
"is_active": true,
53-
"user": 1
58+
"is_active": true
5459
}
5560
```
5661

@@ -69,14 +74,13 @@ Request Body:```
6974
previous: null,
7075
results: [
7176
{
72-
id: 1,
73-
created_at: "2016-10-26T14:00:50.422635Z",
74-
updated_at: "2016-10-26T14:00:50.422664Z",
75-
name: "Lenovo Vibe",
76-
device_id: "123456789",
77-
reg_id: "cOQHI1sddd:reg_id",
77+
id: 2,
78+
name: "My LG Optimus Black",
79+
device_id: "[email protected]",
80+
reg_id: "12346767777",
7881
is_active: true,
79-
user: 1
82+
created_at: "2017-03-16T14:36:42.404759Z",
83+
updated_at: "2017-03-16T14:36:42.404800Z"
8084
}
8185
]
8286
}

drf_fcm/admin.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
11
from django.contrib import admin
2+
from models import Device
23

3-
# Register your models here.
4+
class DeviceAdmin(admin.ModelAdmin):
5+
list_display = ('name', 'device_id', 'reg_id', 'is_active', 'user')
6+
fields = ('name', 'device_id', 'reg_id', 'is_active', 'user')
7+
ordering = ('name',)
8+
9+
10+
admin.site.register(Device, DeviceAdmin)
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# -*- coding: utf-8 -*-
2+
# Generated by Django 1.10.4 on 2017-03-16 14:11
3+
from __future__ import unicode_literals
4+
5+
from django.conf import settings
6+
from django.db import migrations, models
7+
import django.db.models.deletion
8+
9+
10+
class Migration(migrations.Migration):
11+
12+
dependencies = [
13+
('drf_fcm', '0001_initial'),
14+
]
15+
16+
operations = [
17+
migrations.AlterField(
18+
model_name='device',
19+
name='is_active',
20+
field=models.BooleanField(default=True),
21+
),
22+
migrations.AlterField(
23+
model_name='device',
24+
name='user',
25+
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='User'),
26+
),
27+
]

drf_fcm/models.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ class Device(BaseModel):
4040
max_length=50)
4141
reg_id = models.CharField(verbose_name=_("GCM Registration id"),
4242
max_length=255, unique=True)
43-
is_active = models.BooleanField(default=False)
44-
user = models.ForeignKey(AUTH_USER_MODEL)
43+
is_active = models.BooleanField(default=True)
44+
user = models.ForeignKey(AUTH_USER_MODEL, on_delete=models.CASCADE, verbose_name=_("User"))
4545
objects = FCMDeviceManager()
4646

4747
def __str__(self):

drf_fcm/serializers.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,29 @@
11
from rest_framework import serializers
2+
from django.utils.translation import ugettext_lazy as _
23

34
from .settings import get_device_model
45

56
Device = get_device_model()
67

78

89
class DeviceSerializer(serializers.ModelSerializer):
10+
name = serializers.CharField(label=_("Device Name"), required=False, allow_blank=False,)
11+
device_id = serializers.CharField(label=_("Device Unique ID or IMEI"), required=True,)
12+
reg_id = serializers.CharField(label=_("GCM Registration ID"), required=True,)
13+
914
default_error_messages = {
1015
'inactive_device': 'Inactive Device',
16+
'duplicate_device': 'This device is already registered in your account',
1117
}
1218

19+
def validate_device_id(self, value):
20+
if self.Meta.model.objects.filter(device_id=value, user=self.context.user).exists():
21+
raise serializers.ValidationError(self.error_messages['duplicate_device'])
22+
return value
23+
1324
class Meta:
1425
model = Device
15-
fields = '__all__'
26+
fields = ('id','name', 'device_id', 'reg_id', 'is_active', 'created_at', 'updated_at')
1627
read_only_fields = ('id', 'created_at', 'updated_at')
1728

1829

drf_fcm/views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ def get_queryset(self):
2323
return self.queryset
2424

2525
def post(self, request, *args, **kwargs):
26-
serializer = self.serializer_class(data=request.data)
26+
serializer = self.serializer_class(data=request.data, context=self.request)
2727
if serializer.is_valid(raise_exception=True):
28-
serializer.save()
28+
serializer.save(user=self.request.user)
2929
return Response(
3030
data=serializer.data,
3131
status=status.HTTP_201_CREATED)

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from setuptools import setup, find_packages
22

33
setup(name='drf-fcm',
4-
version='0.1.0',
4+
version='0.4.0',
55
description='Firebase Cloud Messaging Server in Django Rest FrameWork',
66
packages=find_packages(),
77
author='Naveen Subramani',

0 commit comments

Comments
 (0)