def registerOrganization(self, request): """Regiter the Organization with Details""" user = endpoints.get_current_user() user_id = helper.getUserId() registeredUser = helper.getRegisteredUser() if registeredUser: raise endpoints.NotFoundException('User already registered') else: registeredUser = RegisteredUsers() globalOrganization = GlobalOrganization() orgCount = GlobalOrganization.query().count() globalOrganization.organizationNamespace = orgCount + 888 organization = Organization() if request: for field in ('orgName', 'phoneNumber'): if hasattr(request, field): val = getattr(request, field) if val: setattr(organization, field, str(val)) organization.uniqueOrganizationName = globalOrganization.organizationNamespace organization.userID = user_id organization.emailID = user.email() organization.key = ndb.Key(Organization, globalOrganization.organizationNamespace) registeredUser.mainEmail = user.email() registeredUser.userName = user.nickname() self._saveOrganization(organization, registeredUser, globalOrganization, user_id) return message_types.VoidMessage()
def selfRegistration(self, request): user = endpoints.get_current_user() user_id = helper.getUserId() registeredUser = helper.getRegisteredUser() token = Token() if not registeredUser: registeredUser = RegisteredUsers() if request.orgKey: registeredUser.orgKey = ndb.Key(Organization, request.orgKey) else: raise endpoints.NotFoundException( 'Please give Organization key') else: raise endpoints.InternalServerErrorException( "User Already Registered") if request.studentKey: registeredUser.studentKey = ndb.Key(Student, request.studentKey) token.tokenNumber = random.randint(10000, 99999) token.studentKey = registeredUser.studentKey elif request.empKey: registeredUser.employeeKey = ndb.Key(Employee, request.empKey) token.tokenNumber = random.randint(10000, 99999) token.employeeKey = registeredUser.employeeKey registeredUser.key = ndb.Key(RegisteredUsers, user_id) print registeredUser registeredUser.put() token.put() return message_types.VoidMessage()
def getStudent(self, request): user = endpoints.get_current_user() user_id = helper.getUserId() registeredUser = helper.getRegisteredUser() sectionKeyList = [] if not registeredUser: raise endpoints.NotFoundException( 'User is not registered to perform operation') namespace_manager.set_namespace(self._getNamespace(registeredUser)) if not request.websafeKey: raise endpoints.NotFoundException('Not Valid Key') studentOutputForm1 = StudentOutputForm1() student = ndb.Key(urlsafe=request.websafeKey).get() studentOutputForm1.studentName = student.studentName studentOutputForm1.studentAge = student.studentAge studentOutputForm1.studentFees = student.studentFees studentOutputForm1.grade = self._copyGradestoForm( student.gradeKey.get()) studentOutputForm1.subjects = self._getSubjectFormFromSubjetcKeyList( student.subjectKey) print 'student.sectionKey' print student.sectionKey sectionKeyList.append(student.sectionKey) print "sectionKeyList" print sectionKeyList studentOutputForm1.section = self._getSectionFormFromSectioncKeyList( sectionKeyList)[0] return studentOutputForm1
def registerSubject(self, request): user = endpoints.get_current_user() user_id = helper.getUserId() registeredUser = helper.getRegisteredUser() if not registeredUser: raise endpoints.NotFoundException( 'User is not registered to perform operation') print "registeredUser.orgKey.urlsafe()" print registeredUser.orgKey namespace_manager.set_namespace(self._getNamespace(registeredUser)) if request.subjectWebSafeKey: subject_key = ndb.Key(urlsafe=request.subjectWebSafeKey) subject = subject_key.get() if request.code: subject = Subject() subject_key = ndb.Key(Subject, str(request.code)) subject.key = subject_key else: raise endpoints.NotFoundException('Not a valid code') if request: if request.name: setattr(subject, 'name', str(request.name)) else: raise endpoints.BadRequestException("Section Name Required") if request.code: setattr(subject, 'code', str(request.code)) else: raise endpoints.BadRequestException("Subject Code Required") subject.put() return message_types.VoidMessage()
def registerEmployee(self, request): user = endpoints.get_current_user() user_id = helper.getUserId() registeredUser = helper.getRegisteredUser() if not registeredUser: raise endpoints.NotFoundException( 'User is not registered to perform operation') namespace_manager.set_namespace(self._getNamespace(registeredUser)) organization = registeredUser.orgKey.get() if request.employeeWebSafeKey: employee = ndb.Key(urlsafe=request.employeeWebSafeKey).get() else: employee = Employee() organization.employeeCount = organization.employeeCount + 1 employee.enrollementNumber = organization.employeeCount if request: for field in ('name', 'address'): if hasattr(request, field): val = getattr(request, field) if val: setattr(employee, field, str(val)) employee.orgKey = registeredUser.orgKey employee.createdBy = registeredUser.key employee.key = ndb.Key(Employee, organization.employeeCount) kind = [] kind.append(employee) kind.append(organization) self._saveKinds(kind) return message_types.VoidMessage()
def registerSectionToGrade(self, request): user = endpoints.get_current_user() user_id = helper.getUserId() registeredUser = helper.getRegisteredUser() if not registeredUser: raise endpoints.NotFoundException( 'User is not registered to perform operation') namespace_manager.set_namespace(self._getNamespace(registeredUser)) if request.sectionWebSafeKey: section = ndb.Key(urlsafe=request.sectionWebSafeKey).get() else: if request.gradeWebSafeKey: section = Section() section_id = Section.allocate_ids( size=1, parent=ndb.Key( urlsafe=getattr(request, 'gradeWebSafeKey')))[0] section_key = ndb.Key( Section, section_id, parent=ndb.Key( urlsafe=getattr(request, 'gradeWebSafeKey'))) section.key = section_key else: raise endpoints.NotFoundException('Not a valid Grade') if request: if request.name: setattr(section, 'name', str(request.name)) setattr(section, 'nameUpper', str(request.name).upper()) else: raise endpoints.BadRequestException("Section Name Required") section.put() return message_types.VoidMessage()
def registerOrganization(self, request): """Regiter the Organization with Details""" user = endpoints.get_current_user() user_id = helper.getUserId() registeredUser = helper.getRegisteredUser() if registeredUser: raise endpoints.NotFoundException('User already registered') else: registeredUser = RegisteredUsers() organization = Organization() if request: for field in ('orgName', 'phoneNumber'): if hasattr(request, field): val = getattr(request, field) if val: setattr(organization, field, str(val)) uniqueOrganizationName = str(request.orgName).upper() for i in range(1000): if Organization.query(Organization.uniqueOrganizationName == uniqueOrganizationName).fetch(): uniqueOrganizationName = uniqueOrganizationName + str(i) else: break organization.uniqueOrganizationName = uniqueOrganizationName organization.userID = user_id organization.emailID = user.email() self._saveOrganization(organization, registeredUser, user_id) return message_types.VoidMessage()
def registerSubject(self, request): user = endpoints.get_current_user() user_id = helper.getUserId() registeredUser = helper.getRegisteredUser() if not registeredUser: raise endpoints.NotFoundException( 'User is not registered to perform operation') print "registeredUser.orgKey.urlsafe()" print registeredUser.orgKey namespace_manager.set_namespace(self._getNamespace(registeredUser)) if request.subjectWebSafeKey: subject_key = ndb.Key(urlsafe=request.subjectWebSafeKey) subject = subject_key.get() else: if request.code: subject = Subject() # subject_id = Subject.allocate_ids(size=1, parent=ndb.Key(urlsafe=getattr(request, 'gradeWebSafeKey')))[0] subject_key = ndb.Key(Subject, str(request.code)) subject.key = subject_key else: raise endpoints.NotFoundException('Not a valid code') if request: for field in ('name', 'code', 'book'): if hasattr(request, field): val = getattr(request, field) if val: setattr(subject, field, val) if not request.mandatory: subject.mandatory = request.mandatory subject.nameUpper = str(request.name).upper() subject.organizerUserId = registeredUser.orgKey subject.put() return message_types.VoidMessage()
def getStudents(self, request): user = endpoints.get_current_user() user_id = helper.getUserId() registeredUser = helper.getRegisteredUser() if not registeredUser: raise endpoints.NotFoundException( 'User is not registered to perform operation') namespace_manager.set_namespace(self._getNamespace(registeredUser)) students = Student.query().fetch() return StudentsOutputForm(students=[ self._copyStudentsToForm(student) for student in students ])
def giveAttendenceToStudent(self, request): user = endpoints.get_current_user() user_id = helper.getUserId() registeredUser = helper.getRegisteredUser() if not registeredUser: raise endpoints.ForbiddenException("Not Allowed to update user") if not (registeredUser.isAdmin == True or registeredUser.isOwner == True or registeredUser.isTeacher == True): raise endpoints.ForbiddenException("Not Allowed to update user") namespace_manager.set_namespace(self._getNamespace(registeredUser)) print request.studentWebSafeKey studentAttendenceKey = ndb.Key( StudentAttendence, request.date, parent=ndb.Key(urlsafe=request.studentWebSafeKey)) print studentAttendenceKey studentAttendence = studentAttendenceKey.get() print studentAttendence if not studentAttendence: studentAttendence = StudentAttendence() print studentAttendence studentAttendence.isPresent = True if request.isPresent == True else False studentAttendence.date = datetime.datetime.strptime( request.date, '%d-%m-%Y').date() studentAttendence.employeeKey = registeredUser.key studentAttendence.key = studentAttendenceKey studentAttendence.studentKey = ndb.Key( urlsafe=request.studentWebSafeKey) # student = ndb.Key(urlsafe=request.studentWebSafeKey).get() # attendencePercentage = StudentAttendence.all() # attendencePercentage = attendencePercentage.ancestor(ndb.Key(urlsafe=request.studentWebSafeKey)) studentAttendence1 = StudentAttendence.query(ancestor=ndb.Key( urlsafe=request.studentWebSafeKey)) totalAttendence = 0.0 totalPresent = 0.0 for s in studentAttendence1: totalAttendence = totalAttendence + 1 print s.isPresent if s.isPresent == True: totalPresent = totalPresent + 1 print totalAttendence print totalPresent attendencePercentage = (totalPresent / totalAttendence) * 100 student = ndb.Key(urlsafe=request.studentWebSafeKey).get() student.attendencePercentage = attendencePercentage kind = [] kind.append(student) kind.append(studentAttendence) self._saveKinds(kind) print datetime.date.today() print studentAttendence return message_types.VoidMessage()
def registerStudent(self, request): user = endpoints.get_current_user() user_id = helper.getUserId() registeredUser = helper.getRegisteredUser() if not registeredUser: raise endpoints.NotFoundException( 'User is not registered to perform operation') namespace_manager.set_namespace(self._getNamespace(registeredUser)) organization = registeredUser.orgKey.get() if request.studentWebSafeKey: student = ndb.Key(urlsafe=request.studentWebSafeKey).get() else: student = Student() organization.studentCount = organization.studentCount + 1 setattr(student, 'serialNumber', organization.studentCount) setattr(student, 'key', ndb.Key(Student, organization.studentCount)) if request: if request.studentName: setattr(student, 'studentName', str(request.studentName)) else: raise endpoints.BadRequestException( "studentName Name Required") if request.studentAge: setattr(student, 'studentAge', str(request.studentAge)) else: raise endpoints.BadRequestException("studentAge Name Required") if request.gradeWebSafeKey: setattr(student, 'gradeKey', ndb.Key(urlsafe=request.gradeWebSafeKey)) if request.sectionWebSafeKey: setattr(student, 'sectionKey', ndb.Key(urlsafe=request.sectionWebSafeKey)) if request.subjectWebSafeKey: for subjectWebSafeKey in request.subjectWebSafeKey: if ndb.Key(urlsafe=subjectWebSafeKey ) not in student.subjectKey: student.subjectKey.append( ndb.Key(urlsafe=subjectWebSafeKey)) setattr(student, 'createdBy', registeredUser.key) setattr(student, 'createdOn', datetime.datetime.now()) kind = [] kind.append(student) kind.append(organization) self._saveKinds(kind) d = self._create_document() d.studentAge = student.studentAge d.studentName = student.studentAge index = search.Index('student') index.put(d) return message_types.VoidMessage()
def registerSection(self, request): user = endpoints.get_current_user() user_id = helper.getUserId() registeredUser = helper.getRegisteredUser() if not registeredUser: raise endpoints.NotFoundException( 'User is not registered to perform operation') namespace_manager.set_namespace(self._getNamespace(registeredUser)) if request.delete == True: if request.sectionWebSafeKey: section_key = ndb.Key(urlsafe=request.sectionWebSafeKey) section_key.delete() else: endpoints.NotFoundException('Not a valid section key') return message_types.VoidMessage() if request.sectionWebSafeKey: section = ndb.Key(urlsafe=request.sectionWebSafeKey).get() else: if request.gradeWebSafeKey: section = Section() section_id = Section.allocate_ids( size=1, parent=ndb.Key( urlsafe=getattr(request, 'gradeWebSafeKey')))[0] section_key = ndb.Key( Section, section_id, parent=ndb.Key( urlsafe=getattr(request, 'gradeWebSafeKey'))) section.key = section_key else: raise endpoints.NotFoundException('Not a valid Grade') if request: for field in ('name', 'none'): if hasattr(request, field): if field == 'name': val = getattr(request, field) if val: setattr(section, field, str(val)) section.nameUpper = str(val).upper() else: raise endpoints.NotFoundException( 'Not a valid name') else: val = getattr(request, field) if val: setattr(section, field, str(val)) section.organizerUserId = registeredUser.orgKey section.put() return message_types.VoidMessage()
def getUser(self, request): user = endpoints.get_current_user() user_id = helper.getUserId() registeredUser = helper.getRegisteredUser() registeredUsersOutputForm = RegisteredUsersOutputForm() if not registeredUser: registeredUsersOutputForm.isUser = False else: registeredUsersOutputForm.userName = registeredUser.userName registeredUsersOutputForm.mainEmail = registeredUser.mainEmail # registeredUsersOutputForm.userAddress = registeredUser.userAddress # registeredUsersOutputForm.isOwner = True if registeredUser.isOwner else False registeredUsersOutputForm.isPrincipal = True if registeredUser.isPrincipal else False registeredUsersOutputForm.isAdmin = True if registeredUser.isAdmin else False registeredUsersOutputForm.isStudent = True if registeredUser.isStudent else False registeredUsersOutputForm.isActive = True if registeredUser.isActive else False return registeredUsersOutputForm
def approveUser(self, request): user = endpoints.get_current_user() user_id = helper.getUserId() registeredUser = helper.getRegisteredUser() if not registeredUser: raise endpoints.ForbiddenException("Not Allowed to update user") if not (registeredUser.isAdmin == True or registeredUser.isOwner == True): raise endpoints.ForbiddenException("Not Allowed to update user") # tokenFromDatabase = Token.query(ndb.GenericProperty(str(Token.employeeKey)) == str(request.registeredUserKey)).fetch(projection=["tokenNumber"]) tokenFromDatabaseQuery = Token.query() print tokenFromDatabaseQuery if request.empId: regiteredUserToApprove = RegisteredUsers.query( RegisteredUsers.orgKey == registeredUser.orgKey and RegisteredUsers.employeeKey == ndb.Key( Employee, request.empId)).fetch() tokenFromDatabase = tokenFromDatabaseQuery.filter( Token.employeeKey == ndb.Key(Employee, request.empId)).fetch( projection=["tokenNumber"]) if not tokenFromDatabase: raise endpoints.BadRequestException("Not a valid tEnployee ID") elif request.studentId: regiteredUserToApprove = RegisteredUsers.query( RegisteredUsers.orgKey == registeredUser.orgKey and RegisteredUsers.studentKey == ndb.Key( Student, request.studentId)).fetch() tokenFromDatabase = tokenFromDatabaseQuery.filter( Token.studentKey == ndb.Key(Student, request.studentId)).fetch( projection=["tokenNumber"]) if not tokenFromDatabase: raise endpoints.BadRequestException("Not a valid tEnployee ID") regiteredUserToApprove = regiteredUserToApprove[0] tokenFromDatabase = tokenFromDatabase[0] if tokenFromDatabase.tokenNumber == request.tokenNumber: print regiteredUserToApprove.isActive = True regiteredUserToApprove.put() tokenFromDatabaseQuery.fetch()[0].key.delete() else: raise endpoints.BadRequestException("Not a valid token Number") return message_types.VoidMessage()
def giveRolesToUser(self, request): user = endpoints.get_current_user() user_id = helper.getUserId() registeredUser = helper.getRegisteredUser() if not registeredUser: raise endpoints.ForbiddenException("Not Allowed to update user") if not (registeredUser.isAdmin == True or registeredUser.isOwner == True): raise endpoints.ForbiddenException("Not Allowed to update user") userToUpdate = RegisteredUsers.query(RegisteredUsers.key == ndb.Key( urlsafe=request.registeredUserKey)).fetch() if not userToUpdate: raise endpoints.ForbiddenException("Enter Correct Key") userToUpdate = userToUpdate[0] userToUpdate.isAdmin = True if request.isAdmin == True else False userToUpdate.isTeacher = True if request.isTeacher == True else False userToUpdate.isStudent = True if request.isStudent == True else False userToUpdate.isPrincipal = True if request.isPrincipal == True else False userToUpdate.put()
def registerStudent(self, request): user = endpoints.get_current_user() user_id = helper.getUserId() registeredUser = helper.getRegisteredUser() if not registeredUser: raise endpoints.NotFoundException( 'User is not registered to perform operation') namespace_manager.set_namespace(self._getNamespace(registeredUser)) organization = registeredUser.orgKey.get() if request.studentWebSafeKey: student = ndb.Key(urlsafe=request.studentWebSafeKey).get() else: student = Student() organization.studentCount = organization.studentCount + 1 student.rollNumber = organization.studentCount if request: for field in ('studentFees', 'studentName', 'studentAge', 'sectionWebSafeKey', 'subjectWebSafeKey'): if hasattr(request, field): val = getattr(request, field) if val: setattr(student, field, str(val)) if request.gradeWebSafeKey: student.gradeKey = ndb.Key(urlsafe=request.gradeWebSafeKey) if request.sectionWebSafeKey: student.sectionKey = ndb.Key(urlsafe=request.sectionWebSafeKey) subject_keys = [] if request.subjectWebSafeKey: for key in request.subjectWebSafeKey: print key if ndb.Key(urlsafe=key) not in subject_keys: subject_keys.append(ndb.Key(urlsafe=key)) student.subjectKey = subject_keys student.orgKey = registeredUser.orgKey student.createdBy = registeredUser.key self._saveStudent(student, organization) return message_types.VoidMessage()