Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added missing fields to Person and CourseRun Search API #94

Merged
merged 1 commit into from
Oct 18, 2024

Conversation

manan-memon
Copy link

This PR adds the following missing fields in the course_runs and people search apis.

course_run:

subject, staff, uuid, status, announcement, external_key, is_marketable, invite_only, outcome, license, hidden, reporting_type, eligible_for_financial_aid, has_ofac_restrictions, ofac_comment, enrollment_count, recent_enrollment_count, expected_program_type, expected_program_name

people:

given_name, family_name, slug, email, major_works, published, phone_number, website, urls, urls_detailed, areas_of_expertise

Testing details:

Curl the following api endpoints to verify the changes

course_run:

curl --location 'https://edlydev.discovery.multisitesdev.edly.io/api/v1/search/course_run/' \
--header 'Authorization: JWT eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiAiZE1icHN6d2tGTVRWZHFjRnozZFJxQnR0UVFYTEI1Tkt4V0oiLCAiZXhwIjogMTcyNzEwOTUxNywgImlhdCI6IDE3MjcwNzM1MTcsICJpc3MiOiAiaHR0cHM6Ly9kZXYuY291cnNlcy5tdWx0aXNpdGVzZGV2LmVkbHkuaW8vb2F1dGgyIiwgInByZWZlcnJlZF91c2VybmFtZSI6ICJkaXNjb3Zlcnlfd29ya2VyIiwgInNjb3BlcyI6IFsicmVhZCIsICJ3cml0ZSIsICJlbWFpbCIsICJwcm9maWxlIl0sICJ2ZXJzaW9uIjogIjEuMi4wIiwgInN1YiI6ICIyOTdmOGQ0ZTYyOThjODU3MzM5ZmVkZGE5YWM1ZWQ0NiIsICJmaWx0ZXJzIjogW10sICJpc19yZXN0cmljdGVkIjogZmFsc2UsICJlbWFpbF92ZXJpZmllZCI6IHRydWUsICJlbWFpbCI6ICJkaXNjb3Zlcnlfd29ya2VyQGV4YW1wbGUuY29tIiwgIm5hbWUiOiAiZGlzY292ZXJ5X3dvcmtlciIsICJmYW1pbHlfbmFtZSI6ICIiLCAiZ2l2ZW5fbmFtZSI6ICIiLCAiYWRtaW5pc3RyYXRvciI6IHRydWUsICJzdXBlcnVzZXIiOiBmYWxzZX0.EKhGhmmonRcxYVneyPgsVjChOrJxwGF_20UE1LzRPSU' \
--header 'Cookie: sessionid=1|791hlyo9ct7qy8exhzv8jwkes7yfd419|xLk7QCOajwmw|ImY0MWJjMzg3MjA0NGFkZDNjMDAyZmUzNTc1YmJiOWI3MjFjMzAwNmE4Mzk1YzA2YzQ5ZTgxMzAzYmY4YzdhMjIi:1sOAO2:mWCkWrzx0nc4Z_ORI1fFR7grhLU; AWSALB=dL4PJgH1RJaQ1psVxjBq5r369Pumb9wcITwEu1UElQro67rI+CCOYL3qUYiFAw/dx288PhGwDVnuZNgHnrODsA3eLEkozQ2+epQKBlFvADUSWGc+CeuWxVa1NaU0; AWSALBCORS=dL4PJgH1RJaQ1psVxjBq5r369Pumb9wcITwEu1UElQro67rI+CCOYL3qUYiFAw/dx288PhGwDVnuZNgHnrODsA3eLEkozQ2+epQKBlFvADUSWGc+CeuWxVa1NaU0; sessionid=1|30ge1irho31r5o9jwnu6m1j0ojd9sx8o|Dnq7eoY3y1Ei|IjdlYTRhOTY3YTY4NzZmMmFiNmU4ZDhiMWI2MDA4N2NhM2Y2NTI4ZTc3NjJjNTZmNmIzNjIzMjcxYTg1YmU4ZTYi:1ssciT:MToY_2PAxnr1L03mnr5-Du0f5q0; AWSALB=nDxnH2ydxWsRP2ibJfpt0qtnWAKO9r59rEfk75OW4XjK+/xDEP09ThBkTI1gkqlxOvVtZ6+FssPDH+qKaCKuxSJVE0uQGSab/ic7O6qYoneT5UDq0BHQqGSNttBz; AWSALBCORS=nDxnH2ydxWsRP2ibJfpt0qtnWAKO9r59rEfk75OW4XjK+/xDEP09ThBkTI1gkqlxOvVtZ6+FssPDH+qKaCKuxSJVE0uQGSab/ic7O6qYoneT5UDq0BHQqGSNttBz'

people:

curl --location 'https://edlydev.discovery.multisitesdev.edly.io/api/v1/search/people/' \
--header 'Authorization: JWT eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiAiZE1icHN6d2tGTVRWZHFjRnozZFJxQnR0UVFYTEI1Tkt4V0oiLCAiZXhwIjogMTcyNzEwOTUxNywgImlhdCI6IDE3MjcwNzM1MTcsICJpc3MiOiAiaHR0cHM6Ly9kZXYuY291cnNlcy5tdWx0aXNpdGVzZGV2LmVkbHkuaW8vb2F1dGgyIiwgInByZWZlcnJlZF91c2VybmFtZSI6ICJkaXNjb3Zlcnlfd29ya2VyIiwgInNjb3BlcyI6IFsicmVhZCIsICJ3cml0ZSIsICJlbWFpbCIsICJwcm9maWxlIl0sICJ2ZXJzaW9uIjogIjEuMi4wIiwgInN1YiI6ICIyOTdmOGQ0ZTYyOThjODU3MzM5ZmVkZGE5YWM1ZWQ0NiIsICJmaWx0ZXJzIjogW10sICJpc19yZXN0cmljdGVkIjogZmFsc2UsICJlbWFpbF92ZXJpZmllZCI6IHRydWUsICJlbWFpbCI6ICJkaXNjb3Zlcnlfd29ya2VyQGV4YW1wbGUuY29tIiwgIm5hbWUiOiAiZGlzY292ZXJ5X3dvcmtlciIsICJmYW1pbHlfbmFtZSI6ICIiLCAiZ2l2ZW5fbmFtZSI6ICIiLCAiYWRtaW5pc3RyYXRvciI6IHRydWUsICJzdXBlcnVzZXIiOiBmYWxzZX0.EKhGhmmonRcxYVneyPgsVjChOrJxwGF_20UE1LzRPSU' \
--header 'Cookie: sessionid=1|791hlyo9ct7qy8exhzv8jwkes7yfd419|xLk7QCOajwmw|ImY0MWJjMzg3MjA0NGFkZDNjMDAyZmUzNTc1YmJiOWI3MjFjMzAwNmE4Mzk1YzA2YzQ5ZTgxMzAzYmY4YzdhMjIi:1sOAO2:mWCkWrzx0nc4Z_ORI1fFR7grhLU; AWSALB=dL4PJgH1RJaQ1psVxjBq5r369Pumb9wcITwEu1UElQro67rI+CCOYL3qUYiFAw/dx288PhGwDVnuZNgHnrODsA3eLEkozQ2+epQKBlFvADUSWGc+CeuWxVa1NaU0; AWSALBCORS=dL4PJgH1RJaQ1psVxjBq5r369Pumb9wcITwEu1UElQro67rI+CCOYL3qUYiFAw/dx288PhGwDVnuZNgHnrODsA3eLEkozQ2+epQKBlFvADUSWGc+CeuWxVa1NaU0; sessionid=1|30ge1irho31r5o9jwnu6m1j0ojd9sx8o|Dnq7eoY3y1Ei|IjdlYTRhOTY3YTY4NzZmMmFiNmU4ZDhiMWI2MDA4N2NhM2Y2NTI4ZTc3NjJjNTZmNmIzNjIzMjcxYTg1YmU4ZTYi:1ssciT:MToY_2PAxnr1L03mnr5-Du0f5q0; AWSALB=nDxnH2ydxWsRP2ibJfpt0qtnWAKO9r59rEfk75OW4XjK+/xDEP09ThBkTI1gkqlxOvVtZ6+FssPDH+qKaCKuxSJVE0uQGSab/ic7O6qYoneT5UDq0BHQqGSNttBz; AWSALBCORS=nDxnH2ydxWsRP2ibJfpt0qtnWAKO9r59rEfk75OW4XjK+/xDEP09ThBkTI1gkqlxOvVtZ6+FssPDH+qKaCKuxSJVE0uQGSab/ic7O6qYoneT5UDq0BHQqGSNttBz'

Comment on lines 2354 to 2357
return [{
'id': area_of_expertise.id,
'value': area_of_expertise.value,
} for area_of_expertise in sorted(result.object.areas_of_expertise.all(), key=attrgetter('id'))]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can break this logic. Maybe into multiple lines for better understanding. One possible sol. can be. Better to order_by it, if it's a DB query.

areas = result.object.areas_of_expertise.all()
sorted_areas = sorted(areas, key=attrgetter('id'))
return [{'id': area.id, 'value': area.value} for area in sorted_areas]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to sort here?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Broke down the logic in new commit. We need sort here because the response needs to be in order. Avoided using order_by to make additional calls to DB

course_discovery/apps/api/serializers.py Outdated Show resolved Hide resolved
course_discovery/apps/api/serializers.py Outdated Show resolved Hide resolved
course_discovery/apps/api/serializers.py Show resolved Hide resolved
Copy link

@Anas-hameed Anas-hameed left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@manan-memon manan-memon merged commit 43a3f1e into develop-koa Oct 18, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants