func (self *Topics) Post(request *gottp.Request) { newTopic := new(db.AvailableTopic) newTopic.Channels = []string{"email", "web", "push"} request.ConvertArguments(newTopic) newTopic.PrepareSave() if !utils.ValidateAndRaiseError(request, newTopic) { log.Println("Validation Failed") return } if _, err := available_topics.Get(newTopic.Ident); err == nil { request.Raise(gottp.HttpError{ http.StatusConflict, "Topic already exists"}) return } else { if err != mgo.ErrNotFound { log.Println(err) request.Raise(gottp.HttpError{ http.StatusInternalServerError, "Unable to fetch data, Please try again later.", }) return } } available_topics.Insert(newTopic) request.Write(utils.R{ StatusCode: http.StatusCreated, Data: newTopic.Id, Message: "Created", }) return }