aboutsummaryrefslogtreecommitdiff
path: root/BackEnd/Timeline/Models/Http/CommonResponse.cs
blob: 3d0ed509c8ac3b3fd3ee1e4d96f38d08d1fd6a4f (plain)
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
using static Timeline.Resources.Models.Http.Common;

namespace Timeline.Models.Http
{
    public class CommonResponse
    {
        public CommonResponse()
        {

        }

        public CommonResponse(int code, string message)
        {
            Code = code;
            Message = message;
        }

        public int Code { get; set; }
        public string? Message { get; set; }
    }

    public class CommonDataResponse<T> : CommonResponse
    {
        public CommonDataResponse()
        {

        }

        public CommonDataResponse(int code, string message, T data)
            : base(code, message)
        {
            Data = data;
        }

        public T Data { get; set; } = default!;
    }

    public class CommonPutResponse : CommonDataResponse<CommonPutResponse.ResponseData>
    {
        public class ResponseData
        {
            public ResponseData() { }

            public ResponseData(bool create)
            {
                Create = create;
            }

            public bool Create { get; set; }
        }

        public CommonPutResponse()
        {

        }

        public CommonPutResponse(int code, string message, bool create)
            : base(code, message, new ResponseData(create))
        {

        }

        internal static CommonPutResponse Create(bool create)
        {
            return new CommonPutResponse(0, MessagePutCreate, create);
        }

        internal static CommonPutResponse Create()
        {
            return new CommonPutResponse(0, MessagePutCreate, true);
        }

        internal static CommonPutResponse Modify()
        {
            return new CommonPutResponse(0, MessagePutModify, false);
        }
    }

    /// <summary>
    /// Common response for delete method.
    /// </summary>
    public class CommonDeleteResponse : CommonDataResponse<CommonDeleteResponse.ResponseData>
    {
        /// <summary></summary>
        public class ResponseData
        {
            /// <summary></summary>
            public ResponseData() { }

            /// <summary></summary>
            public ResponseData(bool delete)
            {
                Delete = delete;
            }

            /// <summary>
            /// True if the entry is deleted. False if the entry does not exist.
            /// </summary>
            public bool Delete { get; set; }
        }

        /// <summary></summary>
        public CommonDeleteResponse()
        {

        }

        /// <summary></summary>
        public CommonDeleteResponse(int code, string message, bool delete)
            : base(code, message, new ResponseData(delete))
        {

        }

        internal static CommonDeleteResponse Create(bool delete)
        {
            return new CommonDeleteResponse(0, MessageDeleteDelete, delete);
        }

        internal static CommonDeleteResponse Delete()
        {
            return new CommonDeleteResponse(0, MessageDeleteDelete, true);
        }

        internal static CommonDeleteResponse NotExist()
        {
            return new CommonDeleteResponse(0, MessageDeleteNotExist, false);
        }
    }
}