gbkannan89 commented on code in PR #7733:
URL: https://github.com/apache/trafficcontrol/pull/7733#discussion_r1311942139


##########
traffic_ops/traffic_ops_golang/origin/origins.go:
##########
@@ -487,3 +487,294 @@ func deleteQuery() string {
 WHERE id=:id`
        return query
 }
+
+// Get is the handler for GET requests to Origins of APIv5.
+func Get(w http.ResponseWriter, r *http.Request) {
+
+       var useIMS bool
+
+       inf, sysErr, userErr, errCode := api.NewInfo(r, nil, nil)
+       if sysErr != nil || userErr != nil {
+               api.HandleErr(w, r, inf.Tx.Tx, errCode, userErr, sysErr)
+               return
+       }
+       defer inf.Close()
+
+       origins, userErr, sysErr, errCode, _ := getOrigins(w.Header(), 
inf.Params, inf.Tx, inf.User, useIMS)
+
+       if userErr != nil || sysErr != nil {
+               api.HandleErr(w, r, inf.Tx.Tx, errCode, userErr, sysErr)
+               return
+       }
+
+       returnable := make([]tc.OriginV5, len(origins))
+       for i, origin := range origins {
+               returnable[i] = origin.ToOriginV5()
+       }
+
+       api.WriteResp(w, r, returnable)
+       return
+}
+
+// Create Origin with the passed data for APIv5.
+func Create(w http.ResponseWriter, r *http.Request) {
+       inf, sysError, userError, errorCode := api.NewInfo(r, nil, nil)
+       tx := inf.Tx
+       if sysError != nil || userError != nil {
+               api.HandleErr(w, r, inf.Tx.Tx, errorCode, userError, sysError)
+               return
+       }
+       defer inf.Close()
+
+       org, errorCode, readValErr := readAndValidateJsonStruct(r, tx)
+       if readValErr != nil {
+               api.HandleErr(w, r, tx.Tx, errorCode, readValErr, nil)
+               return
+       }
+
+       userErr, sysErr, errCode := checkTenancy(&org.TenantID, 
&org.DeliveryServiceID, tx, inf.User)
+       if userErr != nil || sysErr != nil {
+               api.HandleErr(w, r, tx.Tx, errCode, userErr, sysErr)
+               return
+       }
+
+       _, cdnName, _, err := dbhelpers.GetDSNameAndCDNFromID(inf.Tx.Tx, 
org.DeliveryServiceID)
+       if err != nil {
+               api.HandleErr(w, r, tx.Tx, http.StatusInternalServerError, nil, 
fmt.Errorf("database error: unable to retrieve delivery service name and cdn: 
%w", err))
+               return
+       }
+       userErr, sysErr, errCode = 
dbhelpers.CheckIfCurrentUserCanModifyCDN(tx.Tx, string(cdnName), 
inf.User.UserName)
+       if userErr != nil || sysErr != nil {
+               api.HandleErr(w, r, inf.Tx.Tx, errCode, userErr, sysErr)
+               return
+       }
+
+       resultRows, err := tx.NamedQuery(insertQuery(), org)
+       if err != nil {
+               usrErr, sysErr, code := api.ParseDBError(err)
+               api.HandleErr(w, r, tx.Tx, code, usrErr, sysErr)
+               return
+       }
+       defer resultRows.Close()
+
+       rowsAffected := 0
+       for resultRows.Next() {
+               rowsAffected++
+               if err := resultRows.Scan(&org.ID, &org.LastUpdated); err != 
nil {

Review Comment:
   yes, but that is what we have mentioned in document also.
   `{ "alerts": [
       {
           "text": "origin was created.",
           "level": "success"
       }
   ],
   "response": {
       "cachegroup": null,
       "cachegroupId": null,
       "coordinate": null,
       "coordinateId": null,
       "deliveryService": null,
       "deliveryServiceId": 2,
       "fqdn": "example.com",
       "id": 2,
       "ip6Address": null,
       "ipAddress": null,
       "isPrimary": null,
       "lastUpdated": "2018-12-11 15:14:27+00",
       "name": "example",
       "port": 80,
       "profile": null,
       "profileId": null,
       "protocol": "http",
       "tenant": null,
       "tenantId": 1
   }}`



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@trafficcontrol.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to