MCPcopy Create free account
hub / github.com/couchbase/sync_gateway / putReplication

Method putReplication

rest/admin_api.go:2208–2242  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

2206}
2207
2208func (h *handler) putReplication() error {
2209
2210 body, readErr := h.readBody()
2211 if readErr != nil {
2212 return readErr
2213 }
2214 body = base.ConvertBackQuotedStrings(body)
2215
2216 replicationConfig := &db.ReplicationUpsertConfig{}
2217 if err := base.JSONUnmarshal(body, replicationConfig); err != nil {
2218 return err
2219 }
2220
2221 if h.rq.Method == "PUT" {
2222 replicationID := mux.Vars(h.rq)["replicationID"]
2223
2224 if replicationConfig.ID != "" && replicationConfig.ID != replicationID {
2225 return base.HTTPErrorf(http.StatusBadRequest, "Replication ID in body %q does not match request URI", replicationConfig.ID)
2226 }
2227 replicationConfig.ID = replicationID
2228 }
2229
2230 created, err := h.db.SGReplicateMgr.UpsertReplication(h.ctx(), replicationConfig)
2231 if err != nil {
2232 return err
2233 }
2234 auditFields := base.AuditFields{base.AuditFieldReplicationID: replicationConfig.ID, base.AuditFieldPayload: string(body)}
2235 if created {
2236 h.writeStatus(http.StatusCreated, "Created")
2237 base.Audit(h.ctx(), base.AuditIDISGRCreate, auditFields)
2238 } else {
2239 base.Audit(h.ctx(), base.AuditIDISGRUpdate, auditFields)
2240 }
2241 return nil
2242}
2243
2244func (h *handler) deleteReplication() error {
2245 replicationID := mux.Vars(h.rq)["replicationID"]

Callers

nothing calls this directly

Calls 8

readBodyMethod · 0.95
ctxMethod · 0.95
writeStatusMethod · 0.95
ConvertBackQuotedStringsFunction · 0.92
JSONUnmarshalFunction · 0.92
HTTPErrorfFunction · 0.92
AuditFunction · 0.92
UpsertReplicationMethod · 0.80

Tested by

no test coverage detected