Skip to content

Commit

Permalink
submit/expnse/ and submit/income/ web services
Browse files Browse the repository at this point in the history
  • Loading branch information
mrfathi4 committed Oct 13, 2019
1 parent 7d67af9 commit 0afb1ef
Show file tree
Hide file tree
Showing 6 changed files with 91 additions and 3 deletions.
4 changes: 3 additions & 1 deletion bestoon/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,11 @@
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import url
from django.conf.urls import url , include
from django.contrib import admin

urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'' , include('web.urls')),

]
4 changes: 3 additions & 1 deletion web/admin.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
from django.contrib import admin
from .models import Expense , Income
from .models import Expense, Income, Token

# Register your models here.

admin.site.register(Expense)
admin.site.register(Income)
admin.site.register(Token)
24 changes: 24 additions & 0 deletions web/migrations/0003_token.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Generated by Django 2.2.6 on 2019-10-13 08:05

from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('web', '0002_income'),
]

operations = [
migrations.CreateModel(
name='Token',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('token', models.CharField(max_length=45)),
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
],
),
]
9 changes: 8 additions & 1 deletion web/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,11 @@ class Income (models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)

def __str__(self):
return "{} --- {} ---> {}".format(self.date, self.text, self.amount)
return "{} --- {} ---> {}".format(self.date, self.text, self.amount)


class Token(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
token = models.CharField(max_length=45)
def __str__(self):
return '{} -- token'.format(self.user)
8 changes: 8 additions & 0 deletions web/urls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from django.conf.urls import url
from . import views

urlpatterns = [
url(r'^submit/expense/$', views.submit_expense, name='submit expense'),
url(r'^submit/income/$', views.submit_income, name='submit income'),

]
45 changes: 45 additions & 0 deletions web/views.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,48 @@
from json import JSONEncoder

from django.http import JsonResponse
from django.shortcuts import render
from django.views.decorators.csrf import csrf_exempt
from .models import User, Expense, Income, Token
from datetime import datetime


# Create your views here.
@csrf_exempt
def submit_expense(request):
#
#
print('we are here')

this_token = request.POST['token']
this_user = User.objects.filter(token__token=this_token).get()
if 'date' not in request.POST:
date = datetime.now()

Expense.objects.create(user=this_user, amount=request.POST['amount'], date=date, text=request.POST['text'])

# print(request.POST)

return JsonResponse({
'status': 'OK',
}, encoder=JSONEncoder)


@csrf_exempt
def submit_income(request):
#
#
print('we are here')

this_token = request.POST['token']
this_user = User.objects.filter(token__token=this_token).get()
if 'date' not in request.POST:
date = datetime.now()

Income.objects.create(user=this_user, amount=request.POST['amount'], date=date, text=request.POST['text'])

# print(request.POST)

return JsonResponse({
'status': 'OK',
}, encoder=JSONEncoder)

0 comments on commit 0afb1ef

Please sign in to comment.