//AppcPostACIV1Handler is func AppcPostACIV1Handler(ctx *macaron.Context) (int, []byte) { namespace := ctx.Params(":namespace") repository := ctx.Params(":repository") aci := ctx.Params(":aci") //TODO: Decode aci file name with template. version := strings.Split(aci, "-")[1] r := new(models.AppcV1) if err := r.Put(namespace, repository); err != nil { log.Errorf("[%s] put AppcV1 repository error: %s", ctx.Req.RequestURI, err.Error()) result, _ := json.Marshal(map[string]string{"message": "Post Appc Repository Error."}) return http.StatusBadRequest, result } prefix := fmt.Sprintf("https://%s/appc/%s/%s/push", setting.Domains, namespace, repository) appc := AppcPUTDetails{ ACIPushVersion: "0.0.1", Multipart: false, ManifestURL: fmt.Sprintf("%s/%s/manifest/%s", prefix, version, aci), SignatureURL: fmt.Sprintf("%s/%s/asc/%s", prefix, version, aci), ACIURL: fmt.Sprintf("%s/%s/aci/%s", prefix, version, aci), CompletedURL: fmt.Sprintf("%s/%s/complete/%s", prefix, version, aci), } result, _ := json.Marshal(appc) return http.StatusOK, result }