MediaService.java :  » REST » kyte-api-java » com » kyte » api » service » Java Open Source

Java Open Source » REST » kyte api java 
kyte api java » com » kyte » api » service » MediaService.java
/*-----------------------------------------------------------------------------
 *  Copyright Kyte corporation 2008
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 *----------------------------------------------------------------------------*/



package com.kyte.api.service;

import com.kyte.api.model.Media;
import com.kyte.api.model.ModelFactory;
import com.kyte.api.rest.KyteSession;
import com.kyte.api.util.ApiUtil;
import com.kyte.api.util.StructHelper;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

import static com.kyte.api.rest.KyteInvoker.*;
/*--- BEGIN CUSTOM IMPORTS ---*/
import com.kyte.api.model.Media;
import com.kyte.api.util.InputStreamPartSource;
import java.io.InputStream;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.multipart.FilePart;
/*--- END CUSTOM IMPORTS ---*/


/**
 *  MediaService resource
 *
 */
public class MediaService

{

    public static final String PARAM_AUX_PARAMS = "auxParams";
    public static final String PARAM_HEIGHT = "height";
    public static final String PARAM_MEDIA = "media";
    public static final String PARAM_MEDIA_ID = "mediaId";
    public static final String PARAM_MEDIA_TYPE = "mediaType";
    public static final String PARAM_WIDTH = "width";

    /**
     *  Default constructor
     */
    public MediaService()
    {
    }

    /**
     * @return URI string that locates this service on server
     */
    public String getUri()
    {
        return "mediaService";
    }

    public String createMedia(KyteSession session, Object media, Object mediaType, Map auxParams)
    {
        Map<String, Object> _params = new HashMap<String, Object>();
        _params.put(PARAM_MEDIA, media);
        _params.put(PARAM_MEDIA_TYPE, mediaType);
        _params.put(PARAM_AUX_PARAMS, auxParams);
        Object _obj = session.invoke(getUri(), "createMedia", _params);
        return (String) _obj;
    }

    public String getMediaThumbUrl(KyteSession session, int mediaId, int width, int height)
    {
        Map<String, Object> _params = new HashMap<String, Object>();
        _params.put(PARAM_MEDIA_ID, mediaId);
        _params.put(PARAM_WIDTH, width);
        _params.put(PARAM_HEIGHT, height);
        Object _obj = session.invoke(getUri(), "getMediaThumbUrl", _params);
        return (String) _obj;
    }


/*--- BEGIN CUSTOM CODE ---*/
    public static final String FILE_PART_NAME = "media";
    
    public String createMedia(KyteSession session, Object media, Object mediaType)
    {
        return createMedia(session, media, mediaType, null);
    }
    
    public Media createMedia(KyteSession session, InputStream inputStream, long dataSize, String mediaType)
    {
        String url = "/system/mediaService.createMedia";
        PostMethod method = new PostMethod(url);

        FilePart filePart = new FilePart(FILE_PART_NAME, new InputStreamPartSource(inputStream, dataSize, UUID.randomUUID().toString()));

        Map<String, Object> params = new HashMap<String, Object>();
        params.put(PARAM_MEDIA_TYPE, mediaType);

        Object result=session.invoke(method, filePart, params);
        Media media=null;
        if (result instanceof Media){
          media = (Media) result;
        }else if (result instanceof String){
          Map<String, Object> attrMap= new HashMap<String, Object>();
          attrMap.put(Media.ATTRIBUTE_URI, (String)result);
          media= new Media(attrMap);
        }else{
          throw new RuntimeException("Unexpected Result From Server: "+media);
        }
        return media.fetchMetaData(session); 
    }

/*--- END CUSTOM CODE ---*/

}  // end MediaService.java
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.