mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-26 23:58:31 -06:00
working on canvas sync
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
public record CanvasAssignmentCreationRequest
|
||||
{
|
||||
public string? name { get; set; }
|
||||
public IEnumerable<string> submission_types { get; set; } = Enumerable.Empty<string>();
|
||||
public string? description { get; set; }
|
||||
public DateTime? lock_at { get; set; }
|
||||
public DateTime? due_at { get; set; }
|
||||
public int? points_possible { get; set; }
|
||||
}
|
||||
@@ -56,18 +56,42 @@ public class CanvasService : ICanvasService
|
||||
|
||||
public async Task<IEnumerable<CanvasAssignment>> GetAssignments(ulong courseId)
|
||||
{
|
||||
var url = $"courses/{courseId}/assignments ";
|
||||
var url = $"courses/{courseId}/assignments";
|
||||
var request = new RestRequest(url);
|
||||
var assignmentResponse = await PaginatedRequest<IEnumerable<CanvasAssignment>>(request);
|
||||
return assignmentResponse.SelectMany(c => c);
|
||||
}
|
||||
|
||||
// public async Task<CanvasAssignment> CreateAssignment(
|
||||
|
||||
// )
|
||||
// {
|
||||
|
||||
// }
|
||||
public async Task<CanvasAssignment> CreateAssignment(
|
||||
ulong courseId,
|
||||
string name,
|
||||
IEnumerable<SubmissionType> submissionTypes,
|
||||
string? description,
|
||||
DateTime? dueAt,
|
||||
DateTime? lockAt,
|
||||
int? pointsPossible
|
||||
)
|
||||
{
|
||||
System.Console.WriteLine($"creating assignment: {name}");
|
||||
var url = $"courses/{courseId}/assignments";
|
||||
var request = new RestRequest(url);
|
||||
var body = new CanvasAssignmentCreationRequest()
|
||||
{
|
||||
name = name,
|
||||
submission_types = submissionTypes.Select(t => t.ToString()),
|
||||
description = description,
|
||||
due_at = dueAt,
|
||||
lock_at = lockAt,
|
||||
points_possible = pointsPossible
|
||||
};
|
||||
request.AddHeader("Content-Type", "application/json");
|
||||
var bodyObj = new { assignment = body };
|
||||
request.AddBody(bodyObj);
|
||||
var (canvasAssignment, response) = await webRequestor.PostAsync<CanvasAssignment>(request);
|
||||
if (canvasAssignment == null)
|
||||
throw new Exception("created canvas assignment was null");
|
||||
return canvasAssignment;
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<CanvasModule>> GetModules(ulong courseId)
|
||||
{
|
||||
|
||||
@@ -15,7 +15,6 @@ public class WebRequestor : IWebRequestor
|
||||
client.AddDefaultHeader("Authorization", $"Bearer {token}");
|
||||
}
|
||||
|
||||
|
||||
public async Task<(T[]?, RestResponse)> GetManyAsync<T>(RestRequest request)
|
||||
{
|
||||
var response = await client.ExecuteGetAsync(request);
|
||||
@@ -55,19 +54,29 @@ public class WebRequestor : IWebRequestor
|
||||
System.Console.WriteLine(response.ResponseUri);
|
||||
System.Console.WriteLine(response.ErrorMessage);
|
||||
System.Console.WriteLine("error with response");
|
||||
throw new Exception("error with response");
|
||||
// Console.WriteLine(JsonSerializer.Serialize(response));
|
||||
Console.WriteLine(JsonSerializer.Serialize(response.Request?.Parameters));
|
||||
throw new Exception($"error with response to {response.ResponseUri} {response.StatusCode}");
|
||||
}
|
||||
try
|
||||
{
|
||||
var data = JsonSerializer.Deserialize<T>(response.Content!);
|
||||
|
||||
if (data == null)
|
||||
try
|
||||
{
|
||||
System.Console.WriteLine(response.Content);
|
||||
System.Console.WriteLine(response.ResponseUri);
|
||||
System.Console.WriteLine("could not parse response, got empty object");
|
||||
var data = JsonSerializer.Deserialize<T>(response.Content!);
|
||||
|
||||
if (data == null)
|
||||
{
|
||||
System.Console.WriteLine(response.Content);
|
||||
System.Console.WriteLine(response.ResponseUri);
|
||||
System.Console.WriteLine("could not parse response, got empty object");
|
||||
}
|
||||
return data;
|
||||
}
|
||||
catch (System.NotSupportedException exception)
|
||||
{
|
||||
Console.WriteLine(response.Content);
|
||||
throw exception;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
catch (JsonException ex)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user