@Summary Generate fake audit log @ID generate-fake-audit-log @Security CoderSessionToken @Accept json @Tags Audit @Param request body codersdk.CreateTestAuditLogRequest true "Audit log request" @Success 204 @Router /api/v2/audit/testgenerate [post] @x-apidocgen {"skip": true}
(rw http.ResponseWriter, r *http.Request)
| 118 | // @Router /api/v2/audit/testgenerate [post] |
| 119 | // @x-apidocgen {"skip": true} |
| 120 | func (api *API) generateFakeAuditLog(rw http.ResponseWriter, r *http.Request) { |
| 121 | ctx := r.Context() |
| 122 | |
| 123 | key := httpmw.APIKey(r) |
| 124 | user, err := api.Database.GetUserByID(ctx, key.UserID) |
| 125 | if err != nil { |
| 126 | httpapi.InternalServerError(rw, err) |
| 127 | return |
| 128 | } |
| 129 | |
| 130 | diff, err := json.Marshal(codersdk.AuditDiff{ |
| 131 | "foo": codersdk.AuditDiffField{Old: "bar", New: "baz"}, |
| 132 | }) |
| 133 | if err != nil { |
| 134 | httpapi.InternalServerError(rw, err) |
| 135 | return |
| 136 | } |
| 137 | |
| 138 | ip := net.ParseIP(r.RemoteAddr) |
| 139 | ipNet := pqtype.Inet{} |
| 140 | if ip != nil { |
| 141 | ipNet = pqtype.Inet{ |
| 142 | IPNet: net.IPNet{ |
| 143 | IP: ip, |
| 144 | Mask: net.CIDRMask(len(ip)*8, len(ip)*8), |
| 145 | }, |
| 146 | Valid: true, |
| 147 | } |
| 148 | } |
| 149 | |
| 150 | var params codersdk.CreateTestAuditLogRequest |
| 151 | if !httpapi.Read(ctx, rw, r, ¶ms) { |
| 152 | return |
| 153 | } |
| 154 | if params.Action == "" { |
| 155 | params.Action = codersdk.AuditActionWrite |
| 156 | } |
| 157 | if params.ResourceType == "" { |
| 158 | params.ResourceType = codersdk.ResourceTypeUser |
| 159 | } |
| 160 | if params.ResourceID == uuid.Nil { |
| 161 | params.ResourceID = uuid.New() |
| 162 | } |
| 163 | if params.Time.IsZero() { |
| 164 | params.Time = time.Now() |
| 165 | } |
| 166 | if len(params.AdditionalFields) == 0 { |
| 167 | params.AdditionalFields = json.RawMessage("{}") |
| 168 | } |
| 169 | |
| 170 | _, err = api.Database.InsertAuditLog(ctx, database.InsertAuditLogParams{ |
| 171 | ID: uuid.New(), |
| 172 | Time: params.Time, |
| 173 | UserID: user.ID, |
| 174 | Ip: ipNet, |
| 175 | UserAgent: sql.NullString{String: r.UserAgent(), Valid: true}, |
| 176 | ResourceType: database.ResourceType(params.ResourceType), |
| 177 | ResourceID: params.ResourceID, |
nothing calls this directly
no test coverage detected