Exemple #1
0
//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
}