Example #1
0
// @Title linkedinRedirect
// @Description Redirect from Linkedin oauth.
// @Accept  json
// @Success 303 {object} response.BasicResponse "Connection linked."
// @Failure 401 {object} response.BasicResponse "Authentication required"
// @Failure 404 {object} response.BasicResponse "User is not found"
// @Failure 500 {object} response.BasicResponse "Connection not linked"
// @Resource /oauth
// @Router /oauth/linkedin/redirect [get]
func linkedinRedirect(c *gin.Context) {
	status, err := oauthService.OauthLinkedin(c)
	if err != nil {
		log.CheckErrorWithMessage(err, fmt.Sprintf("httpStatusCode : %d", status))
	}
	c.Redirect(303, config.HostURL)
}
Example #2
0
// UploadImageFile uploads an image file to a storage.
func UploadImageFile(part *multipart.Part) {

	mediatype, _, _ := mime.ParseMediaType(part.Header.Get("Content-Type"))
	log.Debugf("params %s", mediatype)
	log.Debug("fileName : " + part.FileName())
	inbuf, err := ioutil.ReadAll(part)
	if err != nil {
		log.CheckErrorWithMessage(err, "Image read failed.")
	}
	// Image resize is a bottleneck. How can we improve this?
	// https://github.com/fawick/speedtest-resize said vipsthumbnail is fastest one.
	// Currenctly goyangi uses vips(https://github.com/DAddYE/vips).

	// dst, _ := image.ResizeMedium(mediatype, bytes.NewReader(inBuf))
	var dst *bytes.Buffer
	buf, err := image.ResizeMediumVips(inbuf)
	if err != nil {
		log.CheckErrorWithMessage(err, "Image resizing failed.")
		dst = bytes.NewBuffer(inbuf)
	} else {
		dst = bytes.NewBuffer(buf)
	}

	// var thumbDst *bytes.Buffer
	// thumbBuf, err := image.ResizeThumbnailVips(buf)
	// if err != nil {
	// 	log.CheckErrorWithMessage(err, "Image thumbnailing failed.")
	// 	thumbDst = bytes.NewBuffer(buf)
	// } else {
	// 	thumbDst = bytes.NewBuffer(thumbBuf)
	// }

	switch config.UploadTarget {
	case "LOCAL":
		err = file.SaveLocal(part.FileName(), dst)
		// err = file.SaveLocal(part.FileName()+"Thumbnail", thumbDst)
	case "S3":
		err = aws.PutToMyPublicBucket(s3UploadPath, part.FileName(), dst, mediatype)
		// err = aws.PutToMyPublicBucket("images/", part.FileName()+"Thumbnail", thumbDst, mediatype)
	}
	if err != nil {
		log.CheckErrorWithMessage(err, "Uploading failed.")
	}
}