A .NET Standard/C# implementation of TalentLMS.com [Version 4.3 | /api/v1].
using System;
using TalentLMS.Client;
namespace TalentLMS.App
{
public static class Program
{
private static void Main(string[] args)
{
var client = new TalentLMSClient("https://domain.talentlms.com/api/v1/", "apikey");
var users = client.GetUsers().Result;
users.ForEach(user => Console.WriteLine($"{user.Id}. {user.FirstName} {user.LastName}"));
Console.Read();
}
}
}
-
End points only leverage
GET/POST(PUT/DELETEare MIA) -
Inconsistencies in responses / commands / models
AddUserToCourse() vs RemoveUserFromCourse()AddUserToGroup() vs RemoveUserFromGroup()UsersQuery vs UserQuery
-
Inconsistencies in Data types
[Integer(s) / DateTime(?)(s) / Boolean(s)]_jsonSerializerOptions.Converters.Add(new StringConverter());_jsonSerializerOptions.Converters.Add(new DateTimeConverter());_jsonSerializerOptions.Converters.Add(new NullableDateTimeConverter());UserQuery -> public string Id { get; set; }UpdateBranchStatus() -> string statusDeleteUserCommand -> public string IsPermanent { get; set; }
-
Inconsistencies in accepted
POSTrequests per end pointCreateUser -> PostAsJsonAsync(command) -> status 200DeleteUser -> PostAsJsonAsync(command) -> status 400{"error":{"type":"invalid_request_error","message":"Invalid arguments provided"}}
PostAsJsonAsync(command) vs PostAsync(command.GetFormUrlEncodedContent())FormUrlEncodeExtensions.GetFormUrlEncodedContent()
-
End points do not account for empty properties (lacks verification) in regards to
POSTcommand.GetFormUrlEncodedContent()- Null values are disregarded from FormUrlEncodeContents