/
New-AeriesCourseRequest.ps1
137 lines (109 loc) · 3.78 KB
/
New-AeriesCourseRequest.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
function New-AeriesCourseRequest
{
<#
.SYNOPSIS
Add a Course Request to Aeries
.DESCRIPTION
The New-AeriesCourseRequest cmdlet is used to add a Course Request in Aeries for a given StudentID and SchoolCode
.EXAMPLE
New-AeriesCourseRequest -SchoolCode 994 -StudentID 99400001 -CourseNumber "123456"
This will create a Course Request in Aeries for StudentID 99400001 at SchoolCode 994 with Course Number 123456
#>
[Alias("Add-AeriesCourseRequest")]
[CmdletBinding()]
param (
[ValidateRange(1, [Int16]::MaxValue)]
[Parameter(Mandatory=$true)]
[Int16]
$SchoolCode,
[ValidateRange(1, [Int]::MaxValue)]
[Parameter(Mandatory=$true)]
[int]
$StudentID,
[ValidateRange(1, [Int16]::MaxValue)]
[Parameter(Mandatory=$false)]
[Int16]
$SectionNumber = -1,
[ValidateLength(1, 6)]
[Parameter(Mandatory=$true)]
[string]
$CourseNumber,
[ValidateRange(0, [Int16]::MaxValue)]
[Parameter(Mandatory=$false)]
[Int16]
$PreferredTeacherNumber = -1,
[ValidateRange(0, [Int]::MaxValue)]
[Parameter(Mandatory=$false)]
[int]
$PreferredStaffID = -1,
[ValidateLength(0, 2)]
[Parameter(Mandatory=$false)]
[string]
$RejectCode,
[ValidateSet("", "X")]
[Parameter(Mandatory=$false)]
[string]
$AlternateTag,
[ValidateLength(1, 6)]
[Parameter(Mandatory=$false)]
[string]
$ActualPrimaryCourseID,
[ValidateLength(1, 2)]
[Parameter(Mandatory=$false)]
[string]
$PermanentLockCode,
[Parameter(Mandatory=$false)]
[Int16[]]
$AlternateCourseRequestReferences = $null
)
Begin {
Write-Verbose -Message "Begin running $($MyInvocation.MyCommand)"
$Method = "Post"
$SuccessStatusCode = 201
$Endpoint = "v5/schools/$SchoolCode/students/$StudentID/courserequests"
$ContentType = "application/json"
$Body = @{}
}
Process {
$Body.CourseID = $CourseNumber
If ($SectionNumber -gt -1) {
<# Int16 Value #>
$Body.SectionNumber = $SectionNumber
}
If ($PreferredTeacherNumber -gt -1) {
<# Int16 Value #>
$Body.PreferredTeacherNumber = $PreferredTeacherNumber
}
If ($PreferredStaffID -gt -1) {
<# Int Value #>
$Body.PreferredStaffID = $PreferredStaffID
}
If (![string]::IsNullOrWhiteSpace($RejectCode)) {
<# String Value #>
$Body.RejectCode = $RejectCode
}
If (![string]::IsNullOrWhiteSpace($AlternateTag)) {
<# String Value #>
$Body.AlternateTag = $AlternateTag
}
If (![string]::IsNullOrWhiteSpace($ActualPrimaryCourseID)) {
<# String Value #>
$Body.ActualPrimaryCourseID = $ActualPrimaryCourseID
}
If (![string]::IsNullOrWhiteSpace($PermanentLockCode)) {
<# String Value #>
$Body.PermanentLockCode = $PermanentLockCode
}
If ($AlternateCourseRequestReferences.Count -gt 0) {
<# Int16[] Value #>
$Body.AlternateCourseRequestReferences = $AlternateCourseRequestReferences
}
<# Turn the $Body variable into a JSON string for sending to the server #>
$BodyJSON = ($Body | ConvertTo-Json -Compress)
$Result = (Invoke-AeriesApiCall -Method $Method -Endpoint $Endpoint -SuccessStatusCode $SuccessStatusCode -Body $BodyJSON -ContentType $ContentType)
}
End {
Write-Verbose -Message "Finish running $($MyInvocation.MyCommand)"
return $Result
}
}