Code Monkey home page Code Monkey logo

appstoreconnect's Introduction

Hello!

I make developer productivity tools and operate infrastructure to automate away the papercuts that slow us all down. My focus has traditionally been in the iOS and Android tools space, but I like to work on lots of different things. (He/him)

  • ๐Ÿฆ My current gig is supporting the developer experience and build infrastructure for mobile engineering at Dropbox
  • ๐Ÿบ I develop Cider, a tool for automating app submission for Apple platforms to the App Store
  • ๐ŸŽ iOS, Swift, and Objective-C since 2014
  • ๐Ÿ“ฑ My first app was a US-based delivery tracking app for Windows Phone 8
  • ๐Ÿ” In addition: Rust ๐Ÿฆ€, Go ๐Ÿน, TypeScript & Node.js ๐Ÿ“ฆ, Terraform ๐Ÿ’ , Puppet ๐ŸŽญ, Python ๐Ÿ, Ruby ๐Ÿ’Ž
  • ๐Ÿ—ฃ๏ธ In my spare time, I study Japanese ๐Ÿ‡ฏ๐Ÿ‡ต, cook, and play Nintendo games!

You can read a little more about me and what I do at https://skyaaron.com.

appstoreconnect's People

Contributors

aaronsky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

appstoreconnect's Issues

Module should not require DOM as a typescript compiler option

Your library requires the dom library as a compiler option when you're using your module in TypeScript. This is because you use the type URL in your typings. You might want to consider change this into string.

node_modules/appstoreconnect/dist/v1/routes/testflight/builds/types.d.ts:300:19
error TS2304: Cannot find name 'URL'. In templateUrl?: URL;

Unable to read gzipped data from v1.financeReports

First of all, thank you for this awesome library. It's exactly what I was looking for!

Now I'm trying to get fincanceReports without any success! The response is a-gzip encoded and I don't know how to decode it by using nodes zlib module. I'm getting the error: Error: unexpected end of file. This is the adjusted code of the request:

async function call(api, path, method, options = {}) {
    let rawResponse;
    try {
        rawResponse = await got_1.default(path, {
            baseUrl: api.baseUrl,
            method,
            decompress: true,
            headers:
                 {
                    'Authorization': "Bearer" + api.token",
                    'Accept': '*/*',
                    'Content-Type': 'application/a-gzip',
                    'Accept-Encoding' : 'agzip, deflate',
                },
            query: query(options.query),
            body: options.body && JSON.stringify(options.body),
        });
    }
    catch (error) {
        throw new Error(error.response.body);
    }
    try {
        var buffer = [];
        var gunzip = zlib.createGunzip();            
        rawResponse.pipe(gunzip);
        gunzip.on('data', function(data) {
            // decompression chunk ready, add it to the buffer
            console.log(data.toString());
            buffer.push(data.toString())
        }).on("end", function() {
            // response and decompression complete, join the buffer and return
            buffer.join(""); 
            console.log(buffer);
        }).on("error", function(e) {
            console.log(e);
        })
    }
    catch (jsonError) {
        throw jsonError;
    }
    return json;
}

When I test the request with Postman I get the same response but I can then download the file over postman's UI and get a file.txt.gz. When I unzip that, I get a readable text file with the financeReport.

Do you have any idea what I am missing here?

"HTTP 204 NoContent" success response is wrongly handled as error

https://developer.apple.com/documentation/appstoreconnectapi/add_builds_to_a_beta_group
appStoreConnect.testflight.addBuildsToBetaGroup(...)

This API method returns "HTTP 204 NoContent" upon success with empty response body.
Current API does not expect it and tries to do JSON.parse() on empty body (empty string), which fails.
https://github.com/aaronsky/appstoreconnect/blob/master/lib/api/index.ts#L107

body = ""
JSON.parse(body) -> "Uncaught SyntaxError: Unexpected end of JSON input"

I have verified that call itself succeeded, because in the AppStoreConnect web I see beta group assigned to the right build.

Add Provisioning Endpoints

It would be really useful to add the provisioning endpoints to this package.

eg:

GET|POST https://api.appstoreconnect.apple.com/v1/bundleIds
GET https://api.appstoreconnect.apple.com/v1/bundleIds/{id}
GET https://api.appstoreconnect.apple.com/v1/bundleIds/{id}/relationships/profiles
and more

API docs for additional APIs:

If I was a more knowledgeable JavaScript/TypeScript developer I'd start this work myself. But kinda need some guidance in order to do that.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.