Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions api_volontaria/apps/donation/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from django.contrib import admin

# Register your models here.
from .models import BankConnection
admin.site.register(BankConnection)

from .models import StripeConnection
admin.site.register(StripeConnection)

from .models import Donation
admin.site.register(Donation)
5 changes: 5 additions & 0 deletions api_volontaria/apps/donation/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from django.apps import AppConfig


class DonationConfig(AppConfig):
name = 'donation'
85 changes: 85 additions & 0 deletions api_volontaria/apps/donation/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
from django.db import models
from api_volontaria import settings
#import stripe
##stripe.api_key =settings.STRIPE_API_KEY
from django.contrib.auth import get_user_model
#from datetime import datetime, timedelta
#from babel.dates import format_date
# # Create your models here.

User = get_user_model()

class BankConnection(models.Model):
"""
Name of the transaction.
"""

class Meta:
verbose_name = ("Bankconnection")

name = models.CharField(max_length=30)

def __str__(self):
return self.name


class StripeConnection(BankConnection):
"""
Details of the credit card.
"""
## stripe.api_key =settings.STRIPE_API_KEY

class Meta:
verbose_name = ("Stripeconnection")

# public_key=models.TextField(
# default=None,
# blank=True,
# null=True,
# )
# private_key=models.TextField(
# default=None,
# blank=True,
# null=True,
# )
public_key='pk_test_51HRPCFEmFI9ybcIhusAAdKJEABBRczFyrffAL8Em8OmfZh8EFagYgy3tMyBmwCIq3851bmnKgPkaLp6gNt9aQ05M00lJ6na6sa'
private_key=settings.STRIPE_API_KEY

class Donation(models.Model):
"""
Information about the user.
"""
class Meta:
verbose_name = ("Donation")

email=models.CharField(
max_length=30,
default=None,
blank=True,
null=True,
)
user = models.ForeignKey(
User, blank=True,
null=True,
on_delete=models.CASCADE,
)
amount=models.IntegerField(
default=None,
blank=True,
null=True,
)
message=models.TextField(
max_length=120,
default=None,
blank=True,
null=True,
)
created_at=models.DateTimeField(
verbose_name=("Created at"),
auto_now_add=True,
blank=True,
null=True,
)

def __str__(self):
return self.user
66 changes: 66 additions & 0 deletions api_volontaria/apps/donation/serializers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# -*- coding: utf-8 -*-
"""
Created on Mon Oct 19 16:46:05 2020

@author: Nathalie
"""
import stripe
from rest_framework import serializers
from api_volontaria.apps.donation.models import (
BankConnection,
StripeConnection,
Donation,
)

class BankConnectionSerializer(serializers.Serializer):
id = serializers.IntegerField(read_only=True)

class Meta:
model = BankConnection
fields = '__all__'

class StripeConnectionSerializer(serializers.Serializer):
id = serializers.IntegerField(read_only=True)

class Meta:
model = StripeConnection
fields = '__all__'

class DonationSerializer(serializers.Serializer):
## id = serializers.IntegerField(read_only=True)

def __init__(self, number, exp_month, exp_year, cvc):
self.number=number
self.exp_month=exp_month
self.exp_year=exp_year
self.cvc=cvc

def get_number(self):
return self.number
def get_exp_month(self):
return self.exp_month
def get_exp_year(self):
return self.exp_year
def get_cvc(self):
return self.cvc

created_token=stripe.Token.create(
card={
"number":get_number(),
"exp_month":get_exp_month(),
"exp_year":get_exp_year(),
"cvc":get_cvc(),},
)

id = serializers.IntegerField(read_only=True)

class Meta:
model = Donation
fields = [
'email',
'user',
'amount',
'message',
'created_at',
'created_token'
]
14 changes: 14 additions & 0 deletions api_volontaria/apps/donation/urls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# -*- coding: utf-8 -*-
"""
Created on Wed Nov 11 16:24:41 2020

@author: Nathalie
"""
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
path('donation/', include('donation.urls')),
path('admin/', admin.site.urls),
]

39 changes: 39 additions & 0 deletions api_volontaria/apps/donation/views.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
from django.shortcuts import render
from django.contrib.auth import get_user_model
from django_filters.rest_framework import DjangoFilterBackend
from dry_rest_permissions.generics import DRYPermissions, \
DRYPermissionFiltersBase
from rest_framework import viewsets

from api_volontaria.apps.donation.models import (
BankConnection,
StripeConnection,
Donation,
)
from api_volontaria.apps.donation.serializers import (
BankConnectionSerializer,
StripeConnectionSerializer,
DonationSerializer,
)
# Create your views here.

class BankConnectionViewSet(viewsets.ModelViewSet):

queryset = BankConnection.objects.all()
serializer_class = BankConnectionSerializer
filter_fields = '__all__'
## permission_classes = (DRYPermissions,)

class StripeConnectionViewSet(viewsets.ModelViewSet):

queryset = StripeConnection.objects.all()
serializer_class = StripeConnectionSerializer
filter_fields = '__all__'
## permission_classes = (DRYPermissions,)

class DonationViewSet(viewsets.ModelViewSet):

queryset = Donation.objects.all()
serializer_class = DonationSerializer
filter_fields = '__all__'
## permission_classes = (DRYPermissions,)
56 changes: 56 additions & 0 deletions api_volontaria/projectdonation.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""

# Set your secret key. Remember to switch to your live secret key in production!
# See your keys here: https://dashboard.stripe.com/account/apikeys
import stripe
stripe.api_key = ''
##import factory
##src="https://js.stripe.com/v3/"
from django.db import models
from django.contrib.auth import get_user_model
# from api_volontaria import settings
# stripe.api_key =settings.STRIPE_API_KEY


class BankConnection(object):
##
# Comments here
##
name = models.CharField(max_length=30)

# def __str__(self):
# return self.name

class StripeConnection(BankConnection):
##
# Comments here
##
number=input('Card number:')
exp_month=int(input('Expiration month:'))
exp_year=int(input('Expiration year:'))
cvc= int(input('Card security code:'))
stripe.Token.create(
card={"number": number,"exp_month": exp_month,"exp_year": exp_year,"cvc": cvc,},)

source=stripe.Token.retrieve["id"]
amount=int(input('Amount'))
currency=input('Currency')
description=input('Description')

stripe.Charge.create(amount, currency,source, description,)

class Donation(object):
##
# Comments here
##
email=models.CharField(max_length=30)
User=get_user_model()
user = models.ForeignKey(User, models.SET_NULL, blank=True, null=True,)
amount=models.IntegerField(max_length=6)
message=models.TextField(max_length=120)
created_at= models.DatetimeField