@@ -77,3 +77,56 @@ func Register(handlerData web.HandlerData, w http.ResponseWriter, r *http.Reques
7777
7878 return nil
7979}
80+
81+ // Stats for a user
82+ func Stats (handlerData web.HandlerData , w http.ResponseWriter , r * http.Request ) error {
83+ var request libdm.StatsRequestStruct
84+ if ! readRequestLimited (w , r , & request , handlerData .Config .Webserver .MaxRequestBodyLength ) {
85+ return nil
86+ }
87+
88+ // With deleted
89+ totalFileCount , err := handlerData .User .GetTotalFileCount (handlerData .Db )
90+ if err != nil {
91+ return err
92+ }
93+
94+ // Without deleted
95+ fileCount , err := handlerData .User .GetFileCount (handlerData .Db )
96+ if err != nil {
97+ return err
98+ }
99+
100+ totalFileSize , err := handlerData .User .GetTotalFilesize (handlerData .Db )
101+ if err != nil {
102+ return err
103+ }
104+
105+ namespaceCount , err := handlerData .User .GetNamespaceCount (handlerData .Db )
106+ if err != nil {
107+ return err
108+ }
109+
110+ tagCount , err := handlerData .User .GetTagCount (handlerData .Db )
111+ if err != nil {
112+ return err
113+ }
114+
115+ groupCount , err := handlerData .User .GetGroupCount (handlerData .Db )
116+ if err != nil {
117+ return err
118+ }
119+
120+ respones := libdm.StatsResponse {
121+ FilesUploaded : totalFileCount ,
122+ FileCount : fileCount ,
123+ DeletedFiles : (totalFileCount - fileCount ),
124+ NamespaceCount : namespaceCount ,
125+ GroupCount : groupCount ,
126+ TagCount : tagCount ,
127+ TotalFileSize : totalFileSize ,
128+ }
129+
130+ sendResponse (w , libdm .ResponseSuccess , "" , respones )
131+ return nil
132+ }
0 commit comments