diff options
Diffstat (limited to 'Timeline/Models/Http')
-rw-r--r-- | Timeline/Models/Http/Common.cs | 51 | ||||
-rw-r--r-- | Timeline/Models/Http/Token.cs | 32 | ||||
-rw-r--r-- | Timeline/Models/Http/User.cs | 26 |
3 files changed, 109 insertions, 0 deletions
diff --git a/Timeline/Models/Http/Common.cs b/Timeline/Models/Http/Common.cs new file mode 100644 index 00000000..74959088 --- /dev/null +++ b/Timeline/Models/Http/Common.cs @@ -0,0 +1,51 @@ +namespace Timeline.Models.Http +{ + public class CommonResponse + {
+ public static class ErrorCodes
+ {
+ /// <summary>
+ /// Used when the model is invaid.
+ /// For example a required field is null.
+ /// </summary>
+ public const int InvalidModel = -100;
+ } +
+ public static CommonResponse InvalidModel(string message)
+ {
+ return new CommonResponse(ErrorCodes.InvalidModel, message);
+ } + + public CommonResponse() + { + + } + + public CommonResponse(int code, string message) + { + Code = code; + Message = message; + } + + public int Code { get; set; } + public string Message { get; set; } + } + + public static class CommonPutResponse + { + public const int CreatedCode = 0; + public const int ModifiedCode = 1; + + public static CommonResponse Created { get; } = new CommonResponse(CreatedCode, "A new item is created."); + public static CommonResponse Modified { get; } = new CommonResponse(ModifiedCode, "An existent item is modified."); + } + + public static class CommonDeleteResponse + { + public const int DeletedCode = 0; + public const int NotExistsCode = 1; + + public static CommonResponse Deleted { get; } = new CommonResponse(DeletedCode, "An existent item is deleted."); + public static CommonResponse NotExists { get; } = new CommonResponse(NotExistsCode, "The item does not exist."); + } +} diff --git a/Timeline/Models/Http/Token.cs b/Timeline/Models/Http/Token.cs new file mode 100644 index 00000000..cef679ef --- /dev/null +++ b/Timeline/Models/Http/Token.cs @@ -0,0 +1,32 @@ +using System.ComponentModel.DataAnnotations;
+
+namespace Timeline.Models.Http +{ + public class CreateTokenRequest + { + [Required] + public string Username { get; set; } + [Required] + public string Password { get; set; } + // in days, optional + [Range(1, 365)] + public int? ExpireOffset { get; set; } + } + + public class CreateTokenResponse + { + public string Token { get; set; } + public UserInfo User { get; set; } + } + + public class VerifyTokenRequest + { + [Required] + public string Token { get; set; } + } + + public class VerifyTokenResponse + { + public UserInfo User { get; set; } + } +} diff --git a/Timeline/Models/Http/User.cs b/Timeline/Models/Http/User.cs new file mode 100644 index 00000000..1de7fae2 --- /dev/null +++ b/Timeline/Models/Http/User.cs @@ -0,0 +1,26 @@ +using System.ComponentModel.DataAnnotations;
+
+namespace Timeline.Models.Http +{ + public class UserPutRequest + { + [Required] + public string Password { get; set; } + [Required] + public bool Administrator { get; set; } + } + + public class UserPatchRequest + { + public string Password { get; set; } + public bool? Administrator { get; set; } + } + + public class ChangePasswordRequest + { + [Required] + public string OldPassword { get; set; } + [Required] + public string NewPassword { get; set; } + } +} |