D2L grade category routes are inaccessible to student roles - desire2learn

When accessing the D2L Valence API as a student, /d2l/api/le/1.1/(D2LID: orgUnitId)/grades/categories/ and related GET requests return a HTTP 404 error where the orgUnitId is a class.
The route GET /d2l/api/le/1.1/(D2LID: orgUnitId)/grades/values/myGradeValues/ works however the categories and grades are displayed at the same level in the JSON hierarchy and there's nothing to associate between grade categories and grades.

On the first part of your question: the user making the call to fetch grade category information must be enrolled in the course offering with a role having permissions to see grade category data. The role permissions needed to see grade category data may not be the same as the permissions needed fetch one's own grade values. However, the '404' returned is odd, and would suggest that the orgUnitId you passed in was not found: if the user didn't have permission to retrieve the categories, then you'd expect to get a '403' error returned, not a '404'.
On the second part of your question, the call to get my grade values returns a flat array of GradeObject structures. You can distinguish between the grade object types by examining the GradeObjectTypeName property: for grade categories, it should say Category; for other grade object types, it will have the type name for that grade object (i.e. Numeric, PassFail, and so forth).

Related

Grade category creation

The Valence API documentation specifies that Grade Objects of type Category cannot be created through the API, yet later on in the documentation there is a reference to a POST action possible on Grade Categories.
What's the story here, is there something in the documentation that I'm missing?
http://docs.valence.desire2learn.com/res/grade.html
I believe this means that you shouldn't try to use the POST route to create a grade object to create a grade category; instead, you must use the POST route to create a grade category to create a grade category. Grade category objects may be characterized as a special kind of grade object, but you should use the grade category APIs to manipulate them.

Can we read grade values from grade categories through Valence?

We would like to read the calculated value of a specific Grade Category, as opposed to its configuration, through Valence.
According to the docs here, we can retrieve grade values through this endpoint:
GET /d2l/api/le/(version)/(orgUnitId)/grades/(gradeObjectId)/values/(userId)
Retrieve a specific grade value for a particular user assigned in an org unit.
Is it possible to use the above API on a Grade Category to get its value instead of a Grade Item?
Just to be clear, we would like to get the value for the category in one single shot without having to look into what grade items are inside the category.
The API doesn't currently expose the calculated value for a category in a single route. You'll have to get the category, and using the array of GradeObjects that comes back, grab the corresponding grade values, and then use the properties of the category to calculate the mark.

Getting student grade values for grade objects

I'm trying to use valence to get all students' grades for a given grade object. But, I'm only finding actions for getting the current user's grade values. Given an instructor, is there a way to get everyone's grade values for a grade object? Or, do I need to get the class list, and individually get each student's grade for a grade object?
You are correct. Currently, you must first retrieve a list of the users in the class and then iterate over them to retrieve grade values for a specific grade object (line item in the grade book). This is a gap in the Valence Learning Framework API that others have also identified, and has been called out for implementation in a future release; precise timing of when it will be released isn't yet available, though.

CreditMemo reconciliation through IDS in QuickBooks for Windows

We are using IDS to fetch all Invoices and their associated financial transactions. The goal is to match up the invoice with all transactions that are taking its balance to zero.
There seem to be 2 IDS objects that cover these transactions:
Payment
CreditMemo
While both objects are referencing the CustomerId, only the Payment references the Invoice object.
The CreditMemo is not referencing the Invoice with which it is associated.
We know there must be some internal reference between CreditMemo and Invoice, because it is shown under "Related transactions" when viewing the Invoice in QuickBooks.
How can we fetch the association information between a CreditMemo and an Invoice through IDS?
You can’t see the link between invoice and creditmemo in IDS V2. Based on the IDS V3 spec (http://developer.intuit.com/fmsv3spec/index.html), it looks like the linkedtxn will be available when it comes out and hopefully that will show the linked transactions.
You can pull all the CreditMemos - https://ipp.developer.intuit.com/0010_Intuit_Partner_Platform/0050_Data_Services/0500_QuickBooks_Windows/0600_Object_Reference/CreditMemo but they do not show the linked transaction back to the invoice like payment does.
You can see if the credit memo has been paid/used or if the creditmemo status is Payable it means the creditmemo is still available.
See this posting https://idnforums.intuit.com/messageview.aspx?catid=86&threadid=18156

What is the difference between id, ticket_id and barcode on attendee from Eventbrite API?

I am looking at documentation http://developer.eventbrite.com/doc/attendees/.
First of, it seems like the actual 'id' field in the json returned represents the attendee record id, as there is the actual 'event_id' field. Seems like a documentation issue.
I need a field I can use as an identifier to sync Eventbrite attendees with my records.
The 'id' field is the obvious candidate. Can I rely on 'id' to be unique across the whole API or it may be reused from event to event?
What is the relationship between 'id' and 'ticket_id'? Can multiple attendees with diff ids have the same 'ticket_id'?
What is the relationship between 'id' and 'barcode'? One attendee can have multiple barcodes?
Would appreciate a clarification.
Good question, I'll update the docs with some additional info.
The short answer:
The ticket_id is the ID of a specific ticket type (General Admission, VIP, etc). A user may purchase multiple tickets of multiple types in a given order. An 'attendee' record is created for each ticket that is purchased.
The attendee_id is meant to identify the mapping between a user and a ticket type within the event's context. A user's attendee_id will be different for each ticket.
There should be one barcode_id per attendee_id. Barcode values can be used to check an attendee in or out of an event.
Hope that helps!
#RyanJ

Resources