Skip to content

Commit

Permalink
members: api: Introduce Leave Record API
Browse files Browse the repository at this point in the history
- It returns the member,reason of leave and approver from a particular period of time.
  • Loading branch information
ananthanandanan committed Feb 17, 2020
1 parent 6c0997b commit 7f6922b
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 1 deletion.
53 changes: 53 additions & 0 deletions members/api/leaverecord.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import graphene
from framework.api.user import UserBasicObj
from django.contrib.auth.models import User
from members.models import LeaveRecord
from datetime import date, datetime

class LeaveRecordObj(graphene.ObjectType):
member = graphene.Field(UserBasicObj)
approver = graphene.Field(UserBasicObj)
startDate = graphene.types.datetime.Date(required=True)
endDate = graphene.types.datetime.Date(required=True)
reason = graphene.String()

def resolve_member(self,info):
return User.objects.values().get(id=self['member_id'])

class getLeaveRecordsObj(graphene.ObjectType):
leaveRecords = graphene.List(LeaveRecordObj)

def resolve_leaveRecords(self, info):
return self['leaveRecords']

class Query(object):
getLeaveRecords = graphene.Field(
getLeaveRecordsObj,
startDate = graphene.Date(required=True),
endDate = graphene.Date()
)
leaveRecords = graphene.List(LeaveRecordObj)


def resolve_getLeaveRecords(self, info, **kwargs):
startDate = kwargs.get('startDate')
endDate = kwargs.get('endDate')

leaveRecords = LeaveRecord.objects.values().all()

if startDate is not None:
leaveRecords = leaveRecords.filter(start_date__gte=startDate)
else:
raise Exception('StartDate is required')
if endDate is not None:
leaveRecords = leaveRecords.filter(end_date__lte=endDate)
else:
endDate = date.today()

data = {
'leaveRecords': leaveRecords.values()
}
return data

def resolve_leaveRecords(self, info, **kwargs):
return LeaveRecord.objects.values().all()
3 changes: 2 additions & 1 deletion members/schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from .api.profile import Query as profileQuery
from .api.group import Query as groupQuery
from .api.webspace import Query as webspaceQuery
from .api.leaverecord import Query as leaveRecordQuery
from graphql_jwt.decorators import login_required
#
# Mutations
Expand Down Expand Up @@ -81,6 +82,6 @@ class Mutation(object):
# Queries
#

class Query(profileQuery, groupQuery, webspaceQuery):
class Query(profileQuery, groupQuery,leaveRecordQuery, webspaceQuery):
pass

0 comments on commit 7f6922b

Please sign in to comment.