Skip to content

Commit

Permalink
Merge 9edfbd8 into 215ad47
Browse files Browse the repository at this point in the history
  • Loading branch information
dyohan9 committed Jul 23, 2019
2 parents 215ad47 + 9edfbd8 commit 24c6997
Show file tree
Hide file tree
Showing 17 changed files with 409 additions and 21 deletions.
5 changes: 4 additions & 1 deletion Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,17 @@ requests = "==2.20.1"
coreapi = "==2.3.3"
whitenoise = "==4.1.2"
pytz = "==2018.7"
celery = "*"
django-celery-results = "*"
drf-yasg = "*"
packaging = "*"
redis = "==3.2.1"

[dev-packages]
"flake8" = "*"
coverage = "*"
ipython = "*"
autopep8 = "*"
packaging = "*"

[requires]
python_version = "3.6"
83 changes: 67 additions & 16 deletions Pipfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions bothub/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from __future__ import absolute_import, unicode_literals
from .celery import app as celery_app

__all__ = ('celery_app',)
38 changes: 38 additions & 0 deletions bothub/api/v2/repository/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@

from bothub.common.models import Repository
from bothub.common.models import RepositoryVote
from bothub.common.models import RepositoryMigrate
from bothub.common.models import RepositoryCategory
from bothub.common.models import RepositoryEntityLabel
from bothub.common.models import RepositoryAuthorization
from bothub.common.models import RequestRepositoryAuthorization
from bothub.common.languages import LANGUAGE_CHOICES
from bothub.common.tasks import migrate_repository_wit
from ..request.serializers import RequestRepositoryAuthorizationSerializer


Expand Down Expand Up @@ -312,6 +314,42 @@ def create(self, validated_data):
return vote


class RepositoryMigrateSerializer(serializers.ModelSerializer):
class Meta:
model = RepositoryMigrate
fields = [
'user',
'repository',
'auth_token',
'language',
'created',
]

read_only_fields = [
'user',
'created_at',
]

def create(self, validated_data):
user = self.context.get('request').user
repository = validated_data.pop('repository')
auth_token = validated_data.pop('auth_token')
language = validated_data.pop('language')
migrate = RepositoryMigrate.objects.create(
repository=repository,
user=user,
auth_token=auth_token,
language=language
)
migrate_repository_wit.delay(
repository=repository.uuid,
auth_token=auth_token,
language=language
)

return migrate


class RepositoryContributionsSerializer(serializers.ModelSerializer):
class Meta:
model = RepositoryAuthorization
Expand Down
19 changes: 19 additions & 0 deletions bothub/api/v2/repository/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,20 @@
from rest_framework.viewsets import GenericViewSet
from rest_framework import mixins, status
from rest_framework.permissions import IsAuthenticatedOrReadOnly
from rest_framework.permissions import IsAuthenticated
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.filters import SearchFilter

from bothub.common.models import Repository
from bothub.common.models import RepositoryVote
from bothub.common.models import RepositoryMigrate
from bothub.common.models import RepositoryAuthorization

from ..metadata import Metadata
from .serializers import RepositorySerializer
from .serializers import RepositoryContributionsSerializer
from .serializers import RepositoryVotesSerializer
from .serializers import RepositoryMigrateSerializer
from .serializers import ShortRepositorySerializer
from .permissions import RepositoryPermission
from .filters import RepositoriesFilter
Expand Down Expand Up @@ -107,6 +110,22 @@ def destroy(self, request, *args, **kwargs):
return Response(status=status.HTTP_204_NO_CONTENT)


class RepositoryMigrateViewSet(
mixins.CreateModelMixin,
GenericViewSet):
"""
Repository migrate all senteces wit.
"""
queryset = RepositoryMigrate.objects.all()
lookup_field = 'repository'
lookup_fields = ['user', 'repository']
serializer_class = RepositoryMigrateSerializer
permission_classes = [
IsAuthenticated
]
metadata_class = Metadata


class RepositoriesViewSet(
mixins.ListModelMixin,
GenericViewSet):
Expand Down
2 changes: 2 additions & 0 deletions bothub/api/v2/routers.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from .repository.views import RepositoryViewSet
from .repository.views import RepositoryVotesViewSet
from .repository.views import RepositoryMigrateViewSet
from .repository.views import RepositoriesViewSet
from .repository.views import RepositoriesContributionsViewSet
from .examples.views import ExamplesViewSet
Expand Down Expand Up @@ -87,6 +88,7 @@ def get_lookup_regex(self, viewset, lookup_prefix=''):

router = Router()
router.register('repository', RepositoryViewSet)
router.register('repository-migrate', RepositoryMigrateViewSet)
router.register('repository-votes', RepositoryVotesViewSet)
router.register('repositories', RepositoriesViewSet)
router.register('repositories-contributions', RepositoriesContributionsViewSet)
Expand Down
15 changes: 15 additions & 0 deletions bothub/celery.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from __future__ import absolute_import, unicode_literals
import os
from celery import Celery

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'bothub.settings')

app = Celery('bothub_engine')
app.config_from_object('django.conf:settings', namespace='CELERY')

app.autodiscover_tasks()


@app.task(bind=True)
def debug_task(self):
print('Request: {0!r}'.format(self.request))
4 changes: 4 additions & 0 deletions bothub/common/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from __future__ import absolute_import, unicode_literals
from bothub.celery import app as celery_app

__all__ = ('celery_app',)
34 changes: 34 additions & 0 deletions bothub/common/migrations/0034_auto_20190709_0918.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Generated by Django 2.1.5 on 2019-07-09 12:18

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),
('common', '0033_auto_20190702_1443'),
]

operations = [
migrations.CreateModel(
name='RepositoryMigrate',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('auth_token', models.TextField()),
('created', models.DateTimeField(auto_now_add=True)),
('repository', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='migrate', to='common.Repository')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='repository_migrate', to=settings.AUTH_USER_MODEL)),
],
options={
'verbose_name': 'repository migrate',
'verbose_name_plural': 'repository migrates',
},
),
migrations.AlterUniqueTogether(
name='repositorymigrate',
unique_together={('user', 'repository')},
),
]
19 changes: 19 additions & 0 deletions bothub/common/migrations/0035_auto_20190717_1615.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Generated by Django 2.1.5 on 2019-07-17 19:15

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


class Migration(migrations.Migration):

dependencies = [
('common', '0034_auto_20190709_0918'),
]

operations = [
migrations.AlterField(
model_name='repositorymigrate',
name='repository',
field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='migrate', to='common.Repository'),
),
]
17 changes: 17 additions & 0 deletions bothub/common/migrations/0036_auto_20190718_0906.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Generated by Django 2.1.5 on 2019-07-18 12:06

from django.db import migrations


class Migration(migrations.Migration):

dependencies = [
('common', '0035_auto_20190717_1615'),
]

operations = [
migrations.AlterUniqueTogether(
name='repositorymigrate',
unique_together=set(),
),
]
Loading

0 comments on commit 24c6997

Please sign in to comment.