예제 #1
0
func (msg *Message) SaveMessage(conversationId string) RD.ReturnData {
	returnData := RD.ReturnData{}
	dbSession := Connection.GetDBSession()
	dbSession.SetMode(mgo.Monotonic, true)
	dataBase := strings.SplitAfter(os.Getenv("MONGOHQ_URL"), "/")
	c := dbSession.DB(dataBase[3]).C("conversation")
	msg.CreatedOn = time.Now()

	err := c.Update(bson.M{"_id": bson.ObjectIdHex(conversationId)}, bson.M{
		"$push": bson.M{"messages": bson.M{
			"_id":         bson.NewObjectId(),
			"msg_text":    msg.MsgText,
			"user_id":     msg.UserId,
			"user_handle": msg.UserHandle,
			"created_on":  msg.CreatedOn,
		}}})

	if err != nil {
		log.Println(err.Error())
		returnData.ErrorMsg = err.Error()
		returnData.Success = false
		returnData.Status = "422"
	} else {
		jsonData := []byte("{}")
		returnData.Success = true
		returnData.JsonData = jsonData
		returnData.Status = "201"
	}
	return returnData
}
예제 #2
0
func (u *UserMetaData) SaveUserMetaData() RD.ReturnData {
	returnData := RD.ReturnData{}
	dbSession := Connection.GetDBSession()
	dbSession.SetMode(mgo.Monotonic, true)
	dataBase := strings.SplitAfter(os.Getenv("MONGOHQ_URL"), "/")
	c := dbSession.DB(dataBase[3]).C("jove")

	u.Id = bson.NewObjectId()
	u.Created_on = time.Now()

	err := c.Insert(u)
	if err != nil {
		log.Print(err.Error())
		returnData.ErrorMsg = err.Error()
		returnData.Success = false
		returnData.Status = "422"
	} else {
		returnData.Success = true
		jsonData, _ := json.Marshal(&u)
		returnData.JsonData = jsonData
		returnData.Status = "201"
	}

	return returnData
}
예제 #3
0
func GetDialoguesForLocation(locationId string) RD.ReturnData {
	returnData := RD.ReturnData{}
	dbSession := Connection.GetDBSession()
	dbSession.SetMode(mgo.Monotonic, true)
	dataBase := strings.SplitAfter(os.Getenv("MONGOHQ_URL"), "/")
	c := dbSession.DB(dataBase[3]).C("Dialogue")

	res := []Dialogue{}
	err := c.Find(bson.M{"venue.fourid": locationId}).All(&res)
	if err != nil {
		log.Println("Found Nothing Or Something went wrong fetching the Dialogue")
		returnData.ErrorMsg = err.Error()
		returnData.Status = "400"
		returnData.Success = false
	} else {
		log.Println(res)
		returnData.ErrorMsg = "All is well"
		returnData.Status = "200"
		returnData.Success = true
		jsonRes, _ := json.Marshal(res)
		returnData.JsonData = jsonRes
		log.Println(string(jsonRes))
	}
	return returnData
}
예제 #4
0
func (conv *Conversation) CreateConversation() (RD.ReturnData, Conversation) {
	returnData := RD.ReturnData{}
	dbSession := Connection.GetDBSession()
	dbSession.SetMode(mgo.Monotonic, true)
	dataBase := strings.SplitAfter(os.Getenv("MONGOHQ_URL"), "/")
	c := dbSession.DB(dataBase[3]).C("conversation")
	conv.Id = bson.NewObjectId()
	conv.Created_On = time.Now()
	conv.Is_Approved = true

	err := c.Insert(&conv)
	if err != nil {
		log.Print(err.Error())
		returnData.ErrorMsg = err.Error()
		returnData.Success = false
		returnData.Status = "422"
	} else {

		returnData.Success = true
		jsonData, _ := json.Marshal(&conv)
		returnData.JsonData = jsonData
		returnData.Status = "201"
	}

	return returnData, *conv
}
예제 #5
0
파일: main.go 프로젝트: jmadan/go-msgstory
func (serv ConversationService) GetConversationsForLocation(locationId string) string {
	var data ReturnData.ReturnData
	response, err := Conversation.GetConversationsForLocation(locationId)
	if err != nil {
		data.ErrorMsg = err.Error()
		data.Status = "400"
		data.Success = false
		serv.ResponseBuilder().SetResponseCode(400).WriteAndOveride([]byte(data.ToString()))
	} else {
		data.Status = "200"
		data.Success = true
		data.JsonData = response
		serv.ResponseBuilder().SetResponseCode(200)
	}

	return string(data.ToString())
}
예제 #6
0
파일: main.go 프로젝트: jmadan/go-msgstory
func (serv UserService) GetUser(userid string) string {
	var response string
	var err error
	var data ReturnData.ReturnData
	response, err = User.GetUserById(userid)
	if err != nil {
		data.Status = "400"
		data.Success = false
		data.ErrorMsg = err.Error()
		serv.ResponseBuilder().SetResponseCode(200)
	} else {
		data.ErrorMsg = "All is well"
		data.Status = "200"
		data.Success = true
		data.JsonData = []byte(response)
		serv.ResponseBuilder().SetResponseCode(400).WriteAndOveride([]byte(data.ToString()))
	}

	return string(data.ToString())
}
예제 #7
0
파일: main.go 프로젝트: jmadan/go-msgstory
func (serv MsgService) GetMessage(msgId string) string {
	var data ReturnData.ReturnData
	data.Success = true
	data.JsonData = []byte("Get Message call")
	data.Status = "200"
	if data.Success {
		serv.ResponseBuilder().SetResponseCode(200)
	} else {
		serv.ResponseBuilder().SetResponseCode(400).WriteAndOveride([]byte(data.ToString()))
	}
	return string(data.ToString())
}
예제 #8
0
func DeleteConversation(conversationId string) RD.ReturnData {
	returnData := RD.ReturnData{}
	dbSession := Connection.GetDBSession()
	dbSession.SetMode(mgo.Monotonic, true)
	dataBase := strings.SplitAfter(os.Getenv("MONGOHQ_URL"), "/")
	c := dbSession.DB(dataBase[3]).C("conversation")

	err := c.Remove(bson.ObjectIdHex(conversationId))
	// err := c.Find(bson.M{"venue.fourid": locationId}).One(&res)
	if err != nil {
		log.Println("Found Nothing. Something went wrong fetching the Conversation document")
		log.Println(err)
		returnData.ErrorMsg = err.Error()
		returnData.Status = "400"
		returnData.Success = false
	} else {
		returnData.ErrorMsg = "All is well"
		returnData.Status = "200"
		returnData.Success = true
		returnData.JsonData = nil
	}
	return returnData
}
예제 #9
0
func (D *Dialogue) CreateDialogue() (RD.ReturnData, Dialogue) {
	returnData := RD.ReturnData{}
	dbSession := Connection.GetDBSession()
	dbSession.SetMode(mgo.Monotonic, true)
	dataBase := strings.SplitAfter(os.Getenv("MONGOHQ_URL"), "/")
	c := dbSession.DB(dataBase[3]).C("Dialogue")
	D.Id = bson.NewObjectId()
	D.CreatedOn = time.Now()
	D.IsApproved = true

	err := c.Insert(&D)
	if err != nil {
		log.Print(err.Error())
		returnData.ErrorMsg = err.Error()
		returnData.Success = false
		returnData.Status = "422"
	} else {
		returnData.Success = true
		returnData.JsonData = []byte(D.DialogueToJSON())
		returnData.Status = "201"
	}

	return returnData, *D
}
예제 #10
0
func (D *Dialogue) DeleteDialogue() RD.ReturnData {
	returnData := RD.ReturnData{}
	dbSession := Connection.GetDBSession()
	dbSession.SetMode(mgo.Monotonic, true)
	dataBase := strings.SplitAfter(os.Getenv("MONGOHQ_URL"), "/")
	c := dbSession.DB(dataBase[3]).C("Dialogue")

	// err := c.Remove(bson.ObjectIdHex(DialogueId))
	err := c.Remove(D.Id)

	if err != nil {
		log.Println("Found Nothing. Something went wrong fetching the Dialogue document")
		log.Println(err)
		returnData.ErrorMsg = err.Error()
		returnData.Status = "400"
		returnData.Success = false
	} else {
		returnData.ErrorMsg = "All is well"
		returnData.Status = "200"
		returnData.Success = true
		returnData.JsonData = nil
	}
	return returnData
}
예제 #11
0
func GetMessages(conversationId string) RD.ReturnData {
	returnData := RD.ReturnData{}
	dbSession := Connection.GetDBSession()
	dbSession.SetMode(mgo.Monotonic, true)
	dataBase := strings.SplitAfter(os.Getenv("MONGOHQ_URL"), "/")
	c := dbSession.DB(dataBase[3]).C("conversation")

	Msgs := []Message{}
	m := Messages{}
	err := c.Find(bson.M{"_id": bson.ObjectIdHex(conversationId)}).Select(bson.M{"messages": 1}).One(&m)
	if err != nil {
		log.Println(err.Error())
		returnData.ErrorMsg = err.Error()
		returnData.Success = false
		returnData.Status = "422"
	} else {
		log.Println(Msgs)
		jsonData, _ := json.Marshal(&m)
		returnData.Success = true
		returnData.JsonData = jsonData
		returnData.Status = "201"
	}
	return returnData
}