MCPcopy Index your code
hub / github.com/coder/coder / generateFakeAuditLog

Method generateFakeAuditLog

coderd/audit.go:120–193  ·  view source on GitHub ↗

@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)

Source from the content-addressed store, hash-verified

118// @Router /api/v2/audit/testgenerate [post]
119// @x-apidocgen {"skip": true}
120func (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, &params) {
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,

Callers

nothing calls this directly

Calls 12

APIKeyFunction · 0.92
InternalServerErrorFunction · 0.92
ReadFunction · 0.92
ResourceTypeTypeAlias · 0.92
AuditActionTypeAlias · 0.92
ContextMethod · 0.65
GetUserByIDMethod · 0.65
NewMethod · 0.65
InsertAuditLogMethod · 0.65
MarshalMethod · 0.45
IsZeroMethod · 0.45
WriteHeaderMethod · 0.45

Tested by

no test coverage detected