CRUD via Django REST Framework
diff --git a/AppMgr/serializers.py b/AppMgr/serializers.py
new file mode 100644
index 0000000..fc669e4
--- /dev/null
+++ b/AppMgr/serializers.py
@@ -0,0 +1,53 @@
+from rest_framework import serializers
+
+from custom_user.models import EmailUser
+
+from AppMgr.models import UserProfile, Organization, Membership, Application, AppVersion
+
+class MembershipSerializer(serializers.ModelSerializer):
+ user = serializers.PrimaryKeyRelatedField(queryset=UserProfile.objects.all())
+ org = serializers.PrimaryKeyRelatedField(queryset=Organization.objects.all())
+ class Meta:
+ model = Membership
+ fields = ('org', 'user', 'join_date')
+
+class UserSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = EmailUser
+ fields = ('id', 'email', 'date_joined',
+ 'is_staff', 'is_active', )
+
+class UserProfileSerializer(serializers.ModelSerializer):
+ memberships = MembershipSerializer(source='membership_set', many=True)
+ user_details = UserSerializer(source='user', many=False)
+ class Meta:
+ model = UserProfile
+ fields = ('id', 'user_details', 'memberships')
+
+class OrganizationSerializer(serializers.ModelSerializer):
+ memberships = MembershipSerializer(source='membership_set', many=True)
+ class Meta:
+ model = Organization
+ fields = ('id', 'name', 'memberships')
+
+class OwnerRelatedField(serializers.RelatedField):
+ def to_representation(self, value):
+ if isinstance(value, UserProfile):
+ serializer = UserProfileSerializer(value)
+ elif isinstance(value, Organization):
+ serializer = OrganizationSerializer(value)
+ else:
+ raise Exception('Unexpected type for owner')
+
+ return serializer.data
+
+class AppVersionSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = AppVersion
+ fields = ('id', 'name', 'domain', 'aliases')
+
+class ApplicationSerializer(serializers.ModelSerializer):
+ versions = AppVersionSerializer(source='appversion_set', many=True)
+ class Meta:
+ model = Application
+ fields = ('id', 'name', 'isPublic', 'versions')