datadirect
Version:
Types for working with Blackbaud's front-end APIs
122 lines (121 loc) • 3.05 kB
TypeScript
import { DateString, DateTimeString, HTMLString, NumericString, TimeString, URLString } from '@battis/descriptive-types';
type Lti = {
ProviderId: NumericString;
ToolId: 154573;
LaunchUrl: URLString;
ConsumerKey: string;
SharedSecret: string;
LineItemResourceId: string;
LineItemTag: string;
fileSubmissionInd: number;
};
type Value<T> = {
value: T;
};
type Time = {
hour: number;
minute: number;
meridie: 'AM' | 'PM';
timezone: number;
/** c */
iso8601: DateTimeString;
/** G:i A */
local: DateString;
customFormat: string;
};
type MarkingPeriod = {
MarkingPeriodId: number;
MarkingPeriodDescription: string;
/** j/n/Y g:i A */
BeginDate: DateTimeString;
/** j/n/Y g:i A */
EndDate: DateTimeString;
SectionId: number;
};
type SectionLink = {
hasGrades: boolean;
HasEvaluation: boolean;
hasAssessmentResults: boolean | null;
SectionName: string;
AssignmentId: number;
AssignmentIndexId: number;
SectionId: number;
OfferingId: number;
/** m/d/Y */
AssignmentDate: DateString;
timeAssign: Time;
/** G:i:s */
AssignmentTime: TimeString;
/** c */
dateDue: DateTimeString;
/** m/d/Y */
DueDate: DateString;
timeDue: Time;
/** G:i:s */
DueTime: TimeString;
PublishInd: boolean;
PublishOnAssignedInd: boolean;
publishStatus: NumericString;
defaultPublishStatus: NumericString;
/** G:i:s */
defaultTime: TimeString;
/** G:i:s */
defaultDueTime: TimeString;
markingPeriods: MarkingPeriod[];
notification: boolean;
incGradebook: boolean;
markingPeriodId: number;
DropBoxSubmitted: boolean;
PartialInd: boolean;
PartialCount: number;
UsersList: any[];
};
type LinkItem = {
LinkId: number;
ShortDescription: string;
urlDescription: URLString;
Url: URLString;
ContextValue: number;
Delete: boolean;
};
type Assignment = {
LongDescription: HTMLString;
SendNotification: boolean;
AssignmentId: number;
ShortDescription: HTMLString;
AssignmentTypeId: number;
PublishGrade: boolean;
IncCumGrade: boolean;
ExtraCredit: boolean;
/** max length 9 */
AbbrDescription: string;
'max-points': number;
MaxPoints: number;
Factor: number;
RubricId: number;
EvaluationMethod: number;
AssignmentSkills: any[];
AssignmentCourses: any[];
'inc-rubric': boolean;
IncRubric: boolean;
gradebook_ind: boolean;
IncGradebook: boolean;
Lti: Lti[];
'inc-gradebook-lti': boolean;
OnPaperSubmission: Value<boolean>;
DropboxInd: Value<boolean>;
/** h:i:s A */
DropboxTimeLate: TimeString;
SectionLinks: SectionLink[];
AssignmentUsers: any[];
DownloadItems: any[];
LinkItems: LinkItem[];
notifBodyControl_ShortDescription: HTMLString;
notifBodyControl_LongDescription: HTMLString;
Notifications: number[];
};
export type Payload = {
id: number;
assignment: Assignment;
};
export {};