POST /{owner}/{repo}.git/info/lfs/object/basic/verify
(c *macaron.Context, repo *database.Repository)
| 118 | |
| 119 | // POST /{owner}/{repo}.git/info/lfs/object/basic/verify |
| 120 | func (h *basicHandler) serveVerify(c *macaron.Context, repo *database.Repository) { |
| 121 | var request basicVerifyRequest |
| 122 | defer func() { _ = c.Req.Request.Body.Close() }() |
| 123 | |
| 124 | err := json.NewDecoder(c.Req.Request.Body).Decode(&request) |
| 125 | if err != nil { |
| 126 | responseJSON(c.Resp, http.StatusBadRequest, responseError{ |
| 127 | Message: strutil.ToUpperFirst(err.Error()), |
| 128 | }) |
| 129 | return |
| 130 | } |
| 131 | |
| 132 | if !lfsutil.ValidOID(request.Oid) { |
| 133 | responseJSON(c.Resp, http.StatusBadRequest, responseError{ |
| 134 | Message: "Invalid oid", |
| 135 | }) |
| 136 | return |
| 137 | } |
| 138 | |
| 139 | object, err := h.store.GetLFSObjectByOID(c.Req.Context(), repo.ID, request.Oid) |
| 140 | if err != nil { |
| 141 | if database.IsErrLFSObjectNotExist(err) { |
| 142 | responseJSON(c.Resp, http.StatusNotFound, responseError{ |
| 143 | Message: "Object does not exist", |
| 144 | }) |
| 145 | } else { |
| 146 | internalServerError(c.Resp) |
| 147 | log.Error("Failed to get object [repo_id: %d, oid: %s]: %v", repo.ID, request.Oid, err) |
| 148 | } |
| 149 | return |
| 150 | } |
| 151 | |
| 152 | if object.Size != request.Size { |
| 153 | responseJSON(c.Resp, http.StatusBadRequest, responseError{ |
| 154 | Message: "Object size mismatch", |
| 155 | }) |
| 156 | return |
| 157 | } |
| 158 | c.Status(http.StatusOK) |
| 159 | } |
| 160 | |
| 161 | type basicVerifyRequest struct { |
| 162 | Oid lfsutil.OID `json:"oid"` |
nothing calls this directly
no test coverage detected