// -*- mode: java; c-basic-offset: 2; -*- // Copyright 2009-2011 Google, All Rights reserved // Copyright 2011-2012 MIT, All rights reserved // Released under the Apache License, Version 2.0 // http://www.apache.org/licenses/LICENSE-2.0 package com.google.appinventor.shared.rpc.project; import com.google.gwt.user.client.rpc.IsSerializable; /** * GallerySettings is the shared class holding gallery settings (enabled, bucket) */ public class GallerySettings implements IsSerializable { private String APPSDIR="/gallery/apps/"; private String APPSDIRFIXED="gallery/apps/"; private String USERDIR="/user/"; private String USERDIRFIXED="user/"; private String GALLERYPROJECTDIR="/gallery/projects/"; // we put images here pre-publish private String GALLERYPROJECTDIRFIXED="gallery/projects/"; // we put images here pre-publish private String SOURCEDIR="/aia"; private String IMAGEDIR="/image"; private String GCSSERVERURLSTART= "/gs/"; private String GCSCLIENTURLSTARTDEVSERVER="/gs/"; private String GCSCLIENTURLSTART="http://storage.googleapis.com/"; private boolean enabled; private String bucket; private String environment; private String adminEmail; /** * default constructor */ public GallerySettings() { this.enabled = false; this.bucket = ""; this.environment = ""; this.adminEmail = ""; } /** * constructor with given parameters * @param enabled * @param bucket */ public GallerySettings(boolean enabled, String bucket, String environment, String adminEmail) { this.enabled = enabled; this.bucket = bucket; this.environment = environment; this.adminEmail = adminEmail; } @Override public String toString() { return this.enabled + ","+this.bucket; } /** * get the gallery bucket * @return */ public String getBucket() { return bucket; } /** * checck if gallery is enabled * @return */ public boolean galleryEnabled() { return enabled; } /** * get the gallery environment */ public String getEnvironment() { return environment; } /** * get the gallery admin email */ public String getAdminEmail() { return adminEmail; } /** * get the source url based on given galleryid * @param galleryId gallery id * @return url of the source */ public String getSourceURL(long galleryId) { String url = GCSSERVERURLSTART + getBucket() + "/" + getSourceKey(galleryId); return url; } /** * get the source key based on given galleryid * @param galleryId gallery id * @return source key */ public String getSourceKey(long galleryId) { String key = APPSDIRFIXED + galleryId + SOURCEDIR; return key; } /** * get the cloud image url based on given galleryid (Production Server) * should be of form: http://storage.googleapis.com/galleryai2/gallery/apps/4796462844084224/image * @param galleryId * @return the url of cloud image */ public String getCloudImageURL(long galleryId) { String url; url = GCSCLIENTURLSTART + getBucket() + APPSDIR + galleryId + IMAGEDIR; return url; } /** * get the cloud image location based on given galleryid (Development Server) * @param galleryId * @return the location of cloud image */ public String getCloudImageLocation(long galleryId) { String url; url = GCSCLIENTURLSTARTDEVSERVER + getBucket() + APPSDIR + galleryId + IMAGEDIR; return url; } /** * get the image url based on given galleryid * @param galleryId gallery id * @return image url */ public String getImageURL(long galleryId) { return GCSSERVERURLSTART + getBucket() +getImageKey(galleryId); } /** * get the image key based on given galleryid * @param galleryId gallery id * @return image key */ public String getImageKey(long galleryId) { return APPSDIRFIXED + galleryId + IMAGEDIR; } /** * get the project image url based on given projectId (Production Server) * @param projectId project id * @return url of project image */ public String getProjectImageURL(long projectId) { String url; url = GCSCLIENTURLSTART+ getBucket() + GALLERYPROJECTDIR+ projectId + IMAGEDIR; return url; } /** * get the project image location based on given projectId (Development Server) * @param location location on Development Server * @return location of project image */ public String getProjectImageLocation(long projectId) { String url; url = GCSCLIENTURLSTARTDEVSERVER+ getBucket() + GALLERYPROJECTDIR+ projectId + IMAGEDIR; return url; } /** * get the project image path based on given projectId * @param projectId project id * @return path of the project image */ public String getProjectImagePath(long projectId) { String url = GCSSERVERURLSTART + this.getBucket() + GALLERYPROJECTDIR + projectId + "/image"; return url; } /** * get the project image key based on given projectId * @param projectId project id * @return project image key */ public String getProjectImageKey(long projectId) { String url = GALLERYPROJECTDIRFIXED + projectId + IMAGEDIR; return url; } /** * get the user image key based on given userId * @param userId user id * @return user image key */ public String getUserImageKey(String userId) { String url = USERDIRFIXED + userId + IMAGEDIR; return url; } // http://storage.googleapis.com/gallerai2/user/xxxx/image /** * get the user image url based on given userid (Production Server) * @param userid user id * @return url of user image */ public String getUserImageURL(String userid) { String url; url = GCSCLIENTURLSTART + getBucket() + USERDIR + userid + IMAGEDIR; return url; } /** * get the user image location based on given userid (Development Server) * @param location location of image on development server * @return location of user image */ public String getUserImageLocation(String userid) { String location; location = GCSCLIENTURLSTARTDEVSERVER + getBucket() + USERDIR + userid + IMAGEDIR; return location; } }